Zum Inhalt springen

interne und externe Links in Fluid Template

Erstellt am 13. August 2013 · 6 Antworten · letzte Antwort am 13. Juli 2015

Tags: ViewHelper, Links, Frage

karlchen ·

Hi,

ich bin gerade bei einem SeitenRelaunch und aktualisiere dabei auch eine bestehende Extensions.
Die Ausgabe möchte ich hier nun gerne komplett mit Fluid übernehmen, da durch die Viewhelper hier einiges einfacher geworden ist.

Mit den Links habe ich allerdings einige Schwierigkeiten, ein Redakteur kann über den LinkWizard einen internen oder externen Link setzen. Das Feld wird auch an das Fluid Template übergeben, doch wie unterscheide ich zwischen intern und extern, da ich hier zwei verschiedene Viewhelper nutzen muss?

<f:link.page> ...
<f:link.external> ...

Früher sind die Links mit typolink generiert worden.

rayphi ·

Falls du flux / vhs / fluidcontent / fluidpages (fedext.net) benutzt ist folgendes möglich

<!-- wurde eine interne Seite ausgewählt so ist {target} in diesem Fall eine UID und die folgende condition wird eintreffen -->
<f:if condition="{target -> v:math.round()} > 0">
  <f:then>
    <f:link.page pageUid="{target}" title="{title}">
      <span>{title}</span>
    </f:link.page>
  </f:then>
  <!-- andernfalls enthält target den link zur externen Seite und f:link.external kann verwendet werden. -->
  <f:else>
    <f:link.external uri="{target}" title="{title}">
      <span>{title}</span>
    </f:link.external>
  </f:else>
</f:if>

Besten Gruß
Raphael

karlchen ·

Hi rayphi, danke für deinen Vorschlag 🙂
Es ist zwar ne Lösung für das Problem, aber langfristig irgendwie nicht praktikabel...

rayphi ·

Ich hab den Vorschlag aus der fluidcontent_bootstrap "Example Extenision" ...Du hast schon recht das es nicht praktikabel ist aber irgendwie ist mir auch keine andere Lösung bekannt eigentlich bräuchte man einen ViewHelper der erkennt was für ein link da gerade ankommt... weil wenn der Redakteur bei meinem oben genannten beispiel ein mailto auswählt gibt es bestimmt auch Probleme -.-

Mit bestem Gruß
Rapahel

Unbekannter Benutzer ·

Ich würde mir im Zweifelsfall ein TypoScript Snippet dafür bauen und den cObject Viewhelper benutzen und da dann einfach das target übergeben. (Und dann im TypoScript eben typolink benutzen) Oder halt einen eigenen Viewhelper der genau das macht.

karlchen ·

Hallo rayphi,

irgendwie fehlt mir bei fluid und extbase auch noch ein wenig "Best Practice" Erfahrung, zum funktionieren bekommt man es meistens "irgendwie", aber wie du schon sagst, ändert sich die Situation nur ein wenig, weil der Redakteur z,B. ne E-Mail auswählt, dann fällt wieder alles auseinder.. 🙁

@kitsunet,
ja, den Link außerhalb vom Fluid Template zu erzeugen scheint im Moment wirklich der "einfachste" Weg zu sein. Wie wird sowas denn eigentlich in FLOW3 gelöst, die Fluid Templates kommen doch von dort, oder ?