[TYPO3-german] DCE Typolink Parameter variabel füllen

Ben Ner b.goetze at trendsetzer.eu
Fri Aug 18 15:36:55 CEST 2017


Reif fürs Lexikon, vielen dank!!!!


Quote: Dr. Dieter Porth wrote on Thu, 17 August 2017 19:26
----------------------------------------------------
> Hallo Ben
> 
> Fluid-Konvertierungsregeln, die man meines Wissens so nicht in der 
> Dokumentration findet. Es gibt einen Online-Service, glaube ich, einen 
> Service zur Konvertierung von Fluid-Ausdrücken. Aber ich habe den Link 
> leider vergessen, wvielleicht kann dazu einer der Mitleser hier helfen.
> 
> 0. Regel Tags ohne Inhalt <a></a> konvertiert man zu <a/>
> 
> 1. Inhalte werden zu Attributen subject="" (Kann bei Viewhelper 
> unterschiedlich sein - Am besten in den Sourcode die Kommentare lesen
> 
> 2. aus < >wird {}
> 
> 3. Attribute werden in () aufgezählt
> 
> 4. a="b" wird zu a:'b'
> 
> 5. Regel findet man in ' '-String  noch ein ' so ist das zu escapen zu \'
> 
> 
> Start
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode><f:cObject 
> typoscriptObjectPath="lib.pageUrl"> 
> </f:cObject>#c429!<f:format.raw>{field.category}</f:format.raw>!<f:format.raw>{contentObject.uid}</f:format.raw>-<f:format.raw>{iterator.cycle}</f:format.raw>-<f:format.raw>{eintrag.content}</f:format.raw></f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> 0. regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode><f:cObject 
> typoscriptObjectPath="lib.pageUrl" /> 
> #c429!<f:format.raw>{field.category}</f:format.raw>!<f:format.raw>{contentObject.uid}</f:format.raw>-<f:format.raw>{iterator.cycle}</f:format.raw>-<f:format.raw>{eintrag.content}</f:format.raw></f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> 1. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode><f:cObject 
> typoscriptObjectPath="lib.pageUrl" /> #c429!<f:format.raw 
> subject="{field.category}" />!<f:format.raw 
> subject="{contentObject.uid}" /><f:format.raw 
> subject="{iterator.cycle}"><f:format.raw 
> subject="{eintrag.content}"></f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> 2. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode>{f:cObject 
> typoscriptObjectPath="lib.pageUrl" } #c429!{f:format.raw 
> subject="{field.category}" }!{f:format.raw subject="{contentObject.uid}" 
> ]{f:format.raw subject="{iterator.cycle}"]{f:format.raw 
> (subject="{eintrag.content}"}</f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> 3. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode>{f:cObject 
> (typoscriptObjectPath="lib.pageUrl" )} #c429!{f:format.raw 
> (subject="{field.category}" )}!{f:format.raw ( 
> subject="{contentObject.uid}") ]{f:format.raw 
> (subject="{iterator.cycle}")}{f:format.raw 
> (subject="{eintrag.content}")}</f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> 4. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode>{f:cObject(typoscriptObjectPath:'lib.pageUrl' 
> )} #c429!{f:format.raw (subject:'{field.category}' )}!{f:format.raw ( 
> subject:'{contentObject.uid}') ]{f:format.raw 
> (subject:'{iterator.cycle}')}{f:format.raw 
> (subject:'{eintrag.content}')}</f:format.urlencode>" 
> target="_blank">teilen</dce:typolink>
> 
> Wenn noch <x:... in <y: enmthalten sind, die regel nochmal
> 
> 0. regel
> 
> ----
> 
> 1. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode 
> subject=" {f:cObject(typoscriptObjectPath:'lib.pageUrl' )} 
> #c429!{f:format.raw (subject:'{field.category}' )}!{f:format.raw ( 
> subject:'{contentObject.uid}') ]{f:format.raw 
> (subject:'{iterator.cycle}')}{f:format.raw 
> (subject:'{eintrag.content}')}" />" target="_blank">teilen</dce:typolink>
> 
> 2. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u={f:format.urlencode 
> subject=" {f:cObject(typoscriptObjectPath:'lib.pageUrl' )} 
> #c429!{f:format.raw (subject:'{field.category}' )}!{f:format.raw ( 
> subject:'{contentObject.uid}') ]{f:format.raw 
> (subject:'{iterator.cycle}')}{f:format.raw 
> (subject:'{eintrag.content}')}"}" target="_blank">teilen</dce:typolink>
> 
> 3. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u={f:format.urlencode( 
> subject=" {f:cObject(typoscriptObjectPath:'lib.pageUrl' )} 
> #c429!{f:format.raw (subject:'{field.category}' )}!{f:format.raw ( 
> subject:'{contentObject.uid}') ]{f:format.raw 
> (subject:'{iterator.cycle}')}{f:format.raw 
> (subject:'{eintrag.content}')}")}" target="_blank">teilen</dce:typolink>
> 
> 4. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u={f:format.urlencode( 
> subject:'{f:cObject(typoscriptObjectPath:'lib.pageUrl' )} 
> #c429!{f:format.raw (subject:'{field.category}' )}!{f:format.raw ( 
> subject:'{contentObject.uid}') ]{f:format.raw 
> (subject:'{iterator.cycle}')}{f:format.raw 
> (subject:'{eintrag.content}')} ')}" target="_blank">teilen</dce:typolink>
> 
> 5. Regel
> 
> <dce:typolink class="link_to" 
> parameter="https://www.facebook.com/sharer/sharer.php?u={f:format.urlencode( 
> subject:'{f:cObject(typoscriptObjectPath:\'lib.pageUrl'\ )} 
> #c429!{f:format.raw (subject:\'{field.category}\' )}!{f:format.raw ( 
> subject:\'{contentObject.uid}\') ]{f:format.raw 
> (subject:\'{iterator.cycle}\')}{f:format.raw 
> (subject:\'{eintrag.content}\')} ')}" target="_blank">teilen</dce:typolink>
> 
> So ungefähr könnte dein Kram aussehen, wobei ich nicht weiß, ob subject 
> richtig ist.
> 
> 
> Grundsätzlich gilt, dass du dir
> 
> {f:format.raw (subject:\'{iterator.cycle}\')}
> 
> genauso anzeigen lassen kannst wie
> 
> <f:format.raw>{iterator.cycle}</f:format.raw>
> 
> 
> Wenn dir das ganze zu unübersichtlich ist, könntest du auch f:alias zur 
> Strukturierung verwenden Oft kann man gemäß auch eine Regel 6 anwenden. 
> (Gilt z.B. nicht in Conditions vom if-Viewhelper)
> 
> Regel 6. Werden reine Objekte als String übergeben, wie in {f:format.raw 
> (subject:\'{eintrag.content}\')}, so kann man '{ }' weglassen und 
> {f:format.raw (subject:eintrag.content)} schreiben.
> 
> <f:alias map="{ myLinkstart: 
> 'https://www.facebook.com/sharer/sharer.php?u=',
>    paraOne :{f:cObject(typoscriptObjectPath:'lib.pageUrl' )},
>     paraTwo: ' #c429!{f:format.raw (subject:field.category )}',
>     paraThree:'!{f:format.raw ( subject:contentObject.uid) 
> }{f:format.raw (subject:iterator.cycle)}{f:format.raw 
> (subject:eintrag.content)}'
> }">
> 
> <dce:typolink class="link_to" 
> parameter="{myLinkstart}{{f:format.urlencode( 
> subject:'{partOne}{partTw}{partThree}')}
> 
> </f:alias>
> 
> 
> Du könntest natürlich auch, was ich früher gerne gemacht habe, dir die 
> String per TypoScript zusammenbauen lassen und das Typoscript inklusive 
> der Argumente per cObject ausgebene lassen. Man muss nur wissen, was in 
> der Dokumentation von TYPO3 leider nicht zu finden ist, dass man über 
> 'field' auf die Werte in den Benannten Argumenten zugreifen kann.
> 
> Aber TypoScript ist eher doof, weil es schwer zu debuggen ist.
> 
> Mit besten Grüßen
> 
>     Dieter
> 
> 
> 
> Am 17.08.2017 um 09:31 schrieb Ben Ner:
> 
> > ich habe ein DCE und dazu ein Template, in dem Template versuche ich 
> > via <dce:typolink> einen Link zu erzeugen. Als Parameter wird mir 
> > überall immer nur "{link}" genannt der den fertigen String enthält mit 
> > der URL. Wie aber kann ich diesen Link innerhalb des DCE Templates 
> > zusammen setzen?
> >
> > Mein aktueller Versuch:
> > <dce:typolink class="link_to" 
> > parameter="https://www.facebook.com/sharer/sharer.php?u=<f:format.urlencode><f:cObject 
> > typoscriptObjectPath="lib.pageUrl"> 
> > </f:cObject>#c429!<f:format.raw>{field.category}</f:format.raw>!<f:format.raw>{contentObject.uid}</f:format.raw>-<f:format.raw>{iterator.cycle}</f:format.raw>-<f:format.raw>{eintrag.content}</f:format.raw></f:format.urlencode>" 
> > target="_blank">teilen</dce:typolink>
> >
> > Hier meckert er mir sofort das innerhalb kein <f: ... > vorkommen 
> > darf, kann ich den Rückgabewert von urlencode in einer eigenen 
> > Variable speichern und diese dann an typolink übergeben?
> > _______________________________________________
> > 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