2017-05-10 2 views
0

Étant nouveau pour fluide TYPO3 je me demandais s'il existe un moyen facile de créer un lien vers un fichier PDF qui se trouve dans la liste de fichiers comme vous en html simple, comme suit:TYPO3 fluide: comment créer un lien vers le fichier PDF (pas de téléchargement, pas d'affichage)

<a href="filePathOnServer/file.pdf">Click here to open pdf (in a new window)</a> 

Je ne pouvais pas trouver une solution à ce jour qui ne nécessiterait pas une extension ou qui ne serait pas rendre le pdf direclty sur la page (<flux:field.inline.fal name="settings.image" required="1" maxItems="1" minItems="1"/>)

si/Est-ce que cela peut être fait avec <f:link.external href="filePathOnServer/file.pdf">? (Je l'ai eu un autre problème au moment qui me empêche de vérifier si cela fonctionne ...)

EDIT

J'ai essayé d'utiliser <f:link.external> qui ne fonctionne pas. Pour le moment j'utilise le (non-fluide) <a>-tag ...

+0

Pourquoi voulez-vous un ViewHelper fluide si le lien est statique? Utilisez 'Click here to open pdf (in a new window)' comme chemin absolu peut-être avec '' pour la partie texte "Cliquez ici pour ouvrir le pdf (dans une nouvelle fenêtre)". –

+0

@HeinzSchilling Je me demandais juste s'il y avait un moyen ... Je pensais qu'il pourrait y avoir un moyen plus facile d'utiliser les étiquettes de fluide ... Comme je l'ai déjà dit, je suis nouveau à typo3-fluide ;-) – Kathara

Répondre

1

Je devais faire la même chose et je l'ai résolu en écrivant un ViewHelper personnalisé juste pour obtenir l'URL du site.

ViewHelper:

class InternalViewHelper extends AbstractViewHelper 
{ 
    /** 
    * Renders a link to a specific path from the root path of TYPO3. 
    * 
    * @param string $path The path to an internal resource relative to the TYPO3 site URL. 
    * @return string The absolute URL to the given resource. 
    */ 
    public function render($path) 
    { 
     $siteUrl = GeneralUtility::getIndpEnv('TYPO3_SITE_URL'); 
     return htmlspecialchars($siteUrl . $path); 
    } 
} 

Modèle de fluide:

{namespace ext = Vendor\MyExt\ViewHelpers} 

<f:link.external target="_blank" 
    uri="{ext:internal(path: 'uploads/tx_myext/myfile.pdf')}"> 
    Link 
</f:link.external> 
+0

Merci pour votre belle solution. Je crois pour ce que je veux que je vais avec le simple a-tag mais cela pourrait être utile un certain temps. :) – Kathara