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

Matthew Colton mat.colton at web-xs.de
Fri Aug 18 18:02:31 CEST 2017


Na, das nenne ich mal eine umfangreiche Antwort. Respekt und Hut ab! :)

Cheers,
Matthew

Am 17.08.2017 um 19:26 schrieb Dr. Dieter Porth:
> 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
>



More information about the TYPO3-german mailing list