Questions & Answers

christina
I'm new here

WEBeditInplaceBody nicht in For-Schleife einsetzbar Alternative?

Hallo,

eine Frage zu Content Highlighting:

Durch WEBeditInplaceBody kรถnnen ja Inhaltsbereichen hervorgehoben werden und die jeweiligen Inhaltsbereiches werden direkt ausgegeben.

Wird nun der Inhaltsbereich nicht wie normalerweise รผber $CMS_VALUE(#globa.page.body("content"))$

sondern รผber eine For-Schleife eingebunden:

               $CMS_FOR(myContent,#global.page.body("content").children.toList)$

                     $CMS_VALUE(myContent)$

                         .....

                        $CMS_VALUE(myContent)$

                $CMS_END_IF$

ersetzt der $CMS_RENDER(template:"WEBeditInplaceBody", name:"content")$ Highlighting-Renderaufruf nicht die For-Schleife.

wie kann ich denn die Inhaltsbereiche die รผber eine For-Schleife eingebunden werden, dennoch Highlighten?

Schรถne GrรผรŸe

Christina

0 Kudos
5 Replies
MarcusDau
Occasional Collector

Ich wรผrde die einzelnen Bereiche folgendermaรŸen highlighten:

$CMS_RENDER(template:"WEBeditInplaceEditBegin")$$CMS_RENDER(template:"WEBeditInplaceAttributeBegin", name:"myContentLAUFENDENUMMER")$$CMS_VALUE(myContent)$$CMS_RENDER(template:"WEBeditInplaceAttributeEnd")$$CMS_RENDER(template:"WEBeditInplaceEditEnd")$

Code ungetestet, sollte aber so ungefรคhr funktionieren.

GrรผรŸe

Marcus

0 Kudos

Hallo Marcus,

Danke fรผr die schnelle Antwort, aber leider funktioniert es nicht.

Und ich denke es wรผrde auch eher die einzelnen Absรคtze, die in diesem Inhaltsbereich enthalten sind, Highlighten,

aber nicht den gesamten Inhaltsbereich, wenn man auf diesen klickt.

Sonst noch irgendwelche Ideen?

Schรถne GrรผรŸe

Christina

0 Kudos
gockel
Crownpeak employee

Hallo Christina,

$CMS_FOR(myContent,#global.page.body("content").children.toList)$

    $CMS_VALUE(myContent)$ 

       .....

    $CMS_VALUE(myContent)$

$CMS_END_IF$

abgesehen davon, dass ich nicht weiss ob das abschlieรŸende $CMS_END_IF$ hier vielleicht ein $CMS_END_FOR$ sein sollte, frage ich mich, warum man sowas macht.

wie kann ich denn die Inhaltsbereiche die รผber eine For-Schleife eingebunden werden, dennoch Highlighten?

Genau das passiert ja durch den obigen Templatecode NICHT, sondern es werden die Absรคtze in der Schleife ausgegeben und das sogar noch mehrfach (doppeltes $CMS_VALUE(myContent)$).

Also: welcher Anwendungsfall steckt dahinter, die Absatziteration selbst zu machen und nicht FirstSpirit zu รผberlassen?

Noch ein genereller Hinweis:

Das $CMS_FOR kann mit dem Iterable welches von der Methode "children" zurรผckgeliefert wird, direkt umgehen. Es sollte also vermieden werden #toList() aufzurufen.

Ist:

$CMS_FOR(myContent,#global.page.body("content").children.toList)$

Soll:

$CMS_FOR(myContent,#global.page.body("content").children)$
0 Kudos

Guten Morgen Herr Gockel,

Ich habe mich leider verschrieben in der Eile, das $CMS_END_IF$ sollte natรผrlich ein $CMS_END_FOR$ sein ๐Ÿ™‚

Nun zu Ihrer Frage, mein Anwendungsfall ist dieser, ich habe in meiner Marginalspalte immer das gleiche CSS fรผr die eingebundenen Absรคtze, bis auf der letzte Absatz, der soll ein eigenes CSS erhalten deshalb die FOR-Schleife in der abgefragt wird, ob es die letzte Iteration ist und dann wird eine Variable gesetzt.

$CMS_FOR(myMargin,#global.page.body("marginal").children)$

    $CMS_IF(#for.isLast)$$CMS_SET(setLast,"last")$$CMS_END_IF$

    $CMS_VALUE(myMargin,default:"")$

$CMS_END_FOR$

vielleicht ist es auch ganz einfach, aber ich entwickle noch nicht lange in FirstSpirit und habe schon das ein oder andere ausprobiert, aber leider noch nicht den gewรผnschten Erfolg gehabt.

und danke fรผr den Tipp mit #toList(). Das wusste ich gar nicht.

Schรถne GrรผรŸe

Christina

0 Kudos

Hallo Christina,

ich wรผrde das so lรถsen:

Im Seitentemplate die ID des letzten Absatzes ermitteln:

$CMS_FOR(section,#global.page.body("marginal").children)$

$CMS_IF(section.isInOutputIncluded(#global.language) && section.isInLifespan())$

$CMS_SET(lastSectionId,section.id)$

$CMS_END_IF$

$CMS_END_FOR$

Die Absรคtze ganz normal ausgeben mittels $CMS_VALUE(#global.page.body("marginal"))$

Bei der Angabe des CSS fรผr die Absรคtze prรผfen, ob die ID des aktuellen Absatzes die ID des letzten Absatzes ist und entsprechend das korrekte CSS ausgeben.

$CMS_IF(#global.section.id=lastSectionId)$

  "CSS des letzten Absatzes"

$CMS_ELSE$

  "Standard CSS"

$CMS_END_IF$

Tipp: Beim manuellen Iterieren รผber Kinder jeder Art sollte immer berรผcksichtigt werden, ob diese Kinder wirklich alle gรผltig sind.

Absรคtze kรถnnen sprachabhรคngig ausgeblendet werden, zeitlich begrenzte Anzeigedauern haben {ist nun beides im Beispiel berรผcksichtigt}, Menรผebenen kรถnnen aus der Navigation und/oder Sitemap ausgeblendet werden, Seiten mรผssen nicht immer รผbersetzt sein...

Viele Grรผsse aus Dortmund,

  Holger

0 Kudos

Type a product name