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@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

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

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an