File / Download ViewHelper [Gelöst]

  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2012, 08:23

    Hallo Zusammen,

    irre ich mich oder gibt es keinen Standard ViewHelper für Files in Typo3 4.5.11/Fluid1.3.0???

    Ich möchte ein Produkt Plugin schreigen, bei dem zu einem Produkt auch Datenblätte, Bedinungsanleitungen, usw. angehängt werden können.

    Ich kann natürlich auch einen ViewHelper selbst schreiben, aber das ist doch eine immer wieder auftauchende Aufgabenstellung und nichts außergewöhnliches.


  • 1
  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    08. 02. 2012, 16:02

    Nach dem mir wohl keiner helfen kann habe ich selbst eine Lösung gefunden:

    Ich habe einen eigenen ViewHelper geschieben, der sich der filelink function von Typo3 bedient und somit auch jumpurl und vorallem auch jumpurl.secure nutzen kann.
    Dadurch kann man in der eigenen Extbase/Fluid Extension gesicherte Links verwenden, die von Typo3 Core erstellt werden und somit nicht von einer zusätzlichen Extension abhängen.

    Wenn das jemand braucht kann ich den Code gerne auf Anfrage veröffentlichen. -> kurze PN
    Hab nur jetzt keine Zeit den hier zu poste...

  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    19. 03. 2012, 11:42

    Hallo loft,
    du hast mich gebeten den Viewhelper zu veröffentlichen... und hier ist er:

    1. /**
    2.  * A view helper for creating links to files using filelink function.
    3.  *
    4.  * = Examples =
    5.  *
    6.  * <code>
    7.  * {namespace pd=Tx_ProductDownloads_ViewHelpers}
    8.  * <pd:filelink uri="fileadmin/secure/datasheet.pdf" label="Datasheet XY" />
    9.  * </code>
    10.  * <output>
    11.  * <a href="index.php?jumpurl=fileadmin/secure/datasheet.pdf&locationData=1&juSecure=1&juHash=1234567890">Datasheet XY</a>
    12.  * </output>
    13.  *
    14.  * @package product_downloads
    15.  * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
    16.  */
    17. class Tx_ProductDownloads_ViewHelpers_FilelinkViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
    18.  
    19. /**
    20. * @param string $uri the URI that will be put in the href attribute of the rendered link tag
    21. * @param string $label
    22. * @return string Rendered link
    23. */
    24. public function render($uri, $label) {
    25.  
    26. //get filelinkconf from typoscript setup plugin.tx_productdownloads.settings.filelink
    27. $filelinkconf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_productdownloads.']['settings.']['filelink.'];
    28.  
    29. if (!is_array($filelinkconf)){
    30. $filelinkconf = array();
    31. $filelinkconf['jumpurl'] = 1;
    32. $filelinkconf['jumpurl.']['secure'] = 1;
    33. $filelinkconf['icon'] = 1;
    34. $filelinkconf['icon_link'] = 1;
    35. $filelinkconf['size'] = 1;
    36. $filelinkconf['size.']['wrap'] = '&nbsp;|';
    37. $filelinkconf['size.']['bytes'] = 1;
    38. $filelinkconf['size.']['bytes.']['labels'] = ' B| KByte| MB| GB';
    39. }
    40. //replace the link label with the param $label
    41. $filelinkconf['labelStdWrap.']['cObject'] = 'TEXT';
    42. $filelinkconf['labelStdWrap.']['cObject.']['value'] = $label;
    43.  
    44. $output = $GLOBALS['TSFE']->cObj->filelink($uri,$filelinkconf);
    45.  
    46. return $output;
    47. }
    48. }

    Dieser viewhelper erzeugt einen Link als Jumpurl.

    Allerdings muss ich sagen, dass die endgültige Lösung im Projekt als DownloadAction umgesetzt wurde. Hierbei wird noch zu jedem Download ein Eintrag im Log erzeugt und falls die Datei nicht vorhanden ist (TCA 'internal_type' => 'file_reference', zwegs FTP Upload) eine Email an den Verantwortlichen gesendet wird.

  • 1