[TYPO3-german] ViewHelper-Rückgabe erneut in FLUID rendern?

Dr. Dieter Porth web37p2 at web59550.greatnet-hosting.de
Tue Jul 25 19:17:21 CEST 2017


Hallo Manuel,

beim MVC-Konzept trennt man strikt zwischen Logik und Ausgabe. Der 
Viewhelper  gehört zur Ausgabe und kann bestenfalls noch das Format für 
ein Objekt in einen Sting gießen. Man kann vermutlich allen möglich Kram 
zusammenstricken, aber die rächst spätestens beim nächsten Update.

Wenn das Template gelesen wird, wird von TYPO3 festgestellt, welche 
Viewhelper benötigt werden. Wenn dein Viewhelper noch einen zusätzlichen 
Viewhelper-Text generiert, dann interpretiert TYPO3 ihn als Text. So 
stellt TYPO3 sicher, dass es nicht zu unendlischen Schleifen während der 
Ausgabe kommt. Ein String wird nicht zum Objekt zurückverwandelt.

Vielleicht solltest du deine Logik vorher erledigen. Eine Möglichkeit 
wäre das DataProzessing im Fluidtemplate. Wenn die Information im Rahmen 
eine Plugin ausgegeben wird, dann ist dein Controller dafür zuständig, 
die Richtigen Daten zu liefern. Die Nutzung vom Viewhelper ist 
Flickschusterei, die zwar oft auf die Schnelle geht, aber einem auch in 
Zukunft sicher Ärger/Arbeit bereiten wird.

Mit besten Grüßen
Dieter

Am 25.07.2017 um 16:32 schrieb Manuel Raaf:
> Hallo zusammen,
>
> ich habe folgendes Problem und bisher keine Lösung dazu finden können:
>
> ein eigener ViewHelper generiert u.a. <f:link.action> für gewisse 
> Textmuster. Die Rückgabe des ViewHelpers wird im Template dann leider 
> als String bzw. ungültiges HTML aufgenommen und nicht gerendert. Genau 
> das brauche ich allerdings zwingend. Ich kann mir nicht vorstellen, 
> dass noch nie jemand vom ViewHelper bzw. Widget ausgehend FLUID-Tags 
> zurückgeben lässt, die dann erneut gerendert werden sollen. Gibt's 
> doch nicht...
>
> Weder das Setzen des Codes in ein Widget noch <f:render> bzw. 
> <f:renderChildren> haben mir (in jedweder Kombination) geholfen. Der 
> ViewHelper funktioniert - das sehe ich im HTML-Quelltext, in dem eben 
> leider <f:link.action.....> enthalten ist und natürlich ignoriert 
> wird. Auch das direkte generieren der <f:link.action>'s im Repository 
> (anstatt im Template mithilfe des ViewHelpers) bringt nichts; das 
> Ergebnis ist das gleiche.
> Hat jemand eine Idee dazu?
> Viele (verzweifelte) Grüße,
> Manuel
>
>
> ps.: aus dem ViewHelper kommt z. B. die Ausgabe
> Übersetzung zu <f:link.action action="list" controller="Literatur" 
> arguments="{searchSubmitted : 1, sigel : 'XYZ'}"/> vorhanden"
>
> und innerhalb dieser soll schlichtweg der f-link gerendert werden. 
> Eigentlich ne sehr banale Anforderung -.-
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
----
Dr. Dieter Porth - Web-Entwickler



More information about the TYPO3-german mailing list