[TYPO3-german] Viehelper für Ausgabe der Endung einer Datei

Philipp Holdener philipp.holdener at me.com
Tue Nov 4 17:33:32 CET 2014


Hallo Bernd


> das erinnert mich an was [1].
> das habe ich aber nicht per fluid gelöst, sondern nacktes Typoscript
>
>
> in typoscript ist die Größenberechnung für Dateien nämlich sehr viel
> einfacher:
>
> für den f:cObject-Viewhelper:
> lib.filesize = TEXT
> lib.filesize {
>    current = 1
>    bytes = 1
>    bytes.labels = " Bytes| KB| MB| GB"
> }
>
> und die datei-Extension habe ich relativ hardcoded entfernt (ich hatte
> ja auch nur Dateien mit genau dreistelligen Erweiterungen ausgewählt).
>
> genauso könnte man sie natürlich auch extrahieren:
>
> lib.fileExtension = TEXT
> lib.fileExtension {
>    current = 1
>    orderedStdWrap {
>      # nur Dateiendung:
>      10.substring = -3,255
>      20.case = upper
>    }
> }
>
> natürlich könnte man das auch ganz dynamisch lösen.
> dazu nimmt man ein split an Punkten und nimmt nur das letzte Element
> (ungetestet)
>
> lib.fileExtension = TEXT
> lib.fileExtension {
>    current = 1
>    split {
>      token = .
>      cObjNum = 1 |*| 1 |*| 2
>      2 {
>        current = 1
>        case = upper
>      }
>    }
> }
>
> Falls man schon irgendwo eigene Viewhelper definiert hat ist allerdings
> auch ein eigener Viewhelper nicht so kompliziert:
>
> class Tx_MyVh_ViewHelpers_File_ExtensionViewHelper extends
> Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
>
>      /**
>       * Returns name component of path without extension
>       *
>       * @param string $data given path
>       *
>       * @return string trailing name.
>       */
>      public function render( $data = NULL ) {
>          if( $data === null ) {
>              $data = $this->renderChildren();
>              if( $data === null ) {
>                  return '';
>              }
>          }
>          $path_parts = pathinfo( $data );
>          return $path_parts['extension'];
>      }
> }
>
>
>
>
> [1] http://pi-phi.de/343.html
>



Besten Dank für deine Antwort.
Ich bin leider erst gerade von Templavoila und FCE auf Fluid/DCE 
umgestiegen und kenn mich damit noch nicht wirklich aus.
Eigene Viewhelper wüsste ich zbsp nicht wie anlegen.

Müsste es denn nicht mit diesem Viewhelper gehen?
https://fluidtypo3.org/viewhelpers/vhs/master/Media/ExtensionViewHelper.html

Analog berechne ich ja die Grösse der Datei mit vhs:media.size


Gruss
Philipp





More information about the TYPO3-german mailing list