rbitdd
Returning Responder

Problem mit PageGroup in 3.0

Hallo zusammen,

zu erst: JA, es ist wirklich FS 3.0

Ich habe eine Frage zur PageGroup:

Wir möchten die erste Seite nicht in der Navigation nicht anzeigen und die letzte Seite mit einer gesonderten Klasse auszeichnen.

Das Problem ist jetzt, dass das xxxx nie angezeigt wird.

Wir haben auch schon mit firstAvailable etc. experimentiert, aber sind damit auch auf keinen grünen Zweig gekommen.

Hat jemand nen Hinweis oder (natürlich besser noch Smiley Wink ) ne Lösung für das Problem?

Beste Grüße

<CMS_HEADER>

<CMS_FUNCTION name="if" resultname="fr-isFirst"> 

    <CMS_VALUE_PARAM name="conditionVar" value="firstPage"/> 

     <CMS_PARAM name="compareValue" value="1"/>

    <CMS_CDATA_PARAM name="trueValue">

        <![CDATA[XXXX]]>

    </CMS_CDATA_PARAM>   

    <CMS_CDATA_PARAM name="falseValue">

        <![CDATA[-$CMS_VALUE(navPos)$-]]>

    </CMS_CDATA_PARAM>

</CMS_FUNCTION>

<CMS_FUNCTION name="genericPageGroup" resultname="fr-navi">

          <CMS_PARAM name="cycle" value="0"/>

          <CMS_CDATA_PARAM name="directoryRendering">

            $CMS_SET(navPos,%pos%)$

            $CMS_VALUE(fr-isFirst)$

        </CMS_CDATA_PARAM>

        <CMS_CDATA_PARAM name="directoryRenderingSelected">

            $CMS_SET(navPos,%pos%)$

            $CMS_VALUE(fr-isFirst)$

        </CMS_CDATA_PARAM>

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_VALUE(pageGroupDirectory)$

0 Kudos
4 Replies
hoebbel
Crownpeak employee

Hallo rbitdd,

klappt das hier vielleicht:

<CMS_HEADER>

<CMS_FUNCTION name="genericPageGroup" resultname="fr-navi">

          <CMS_PARAM name="cycle" value="0"/>

          <CMS_CDATA_PARAM name="directoryRendering">

            $CMS_IF(<CONDITION variable="const:%pos%" op="==" value="1"/>

              <THEN>XXX</THEN>

              <ELSE><CONDITION variable="pageGroupSize" op="!==" value="%pos%"/>

                <THEN>-$CMS_VALUE(navPos)$-</THEN>

                <ELSE>Hier Ausgabe mit Klasse</ELSE>

              </ELSE>)$

          </CMS_CDATA_PARAM>

        <CMS_CDATA_PARAM name="directoryRenderingSelected">

            Analog zu oben

        </CMS_CDATA_PARAM>

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_VALUE(pageGroupDirectory)$

Meine 3er Syntax ist leider etwas eingerostet und ich habe keine Zeit es auszuprobieren Smiley Sad

Aber wenn es nicht auf Anhieb klappt, ist es hoffentlich der Denkanstoß in die richtige Richtung Smiley Happy

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos
rbitdd
Returning Responder

Hallo Herr Höbbel,

vielen Dank.

Hilft aber leider nicht wirklich, da die CMS_IF's nicht ausgewertet werden. Die werden ignoriert. Smiley Sad

Es gibt auch keine Fehler der Vorschau, oder sonstiges was mir auf die Sprünge helfen könnte...

Habe ich das richtig in Erinnerung, dass bei der Navigation noch wichtig war, in welcher Reihenfolge die Elemente geparst werden?!?

LG aus dem Rheinland

0 Kudos
hoebbel
Crownpeak employee

Hallo,

wie befürchtet ist meine 3er Syntax wohl exrem eingerostet. In einem CDATA Param sollte man auch CDATA Tags benutzen...

<CMS_HEADER>
<CMS_FUNCTION name="genericPageGroup" resultname="fr-navi">
          <CMS_PARAM name="cycle" value="0"/>
          <CMS_CDATA_PARAM name="directoryRendering"><![CDATA[
            $CMS_IF(<CONDITION variable="const:%pos%" op="==" value="1"/>
              <THEN>XXX</THEN>
              <ELSE><CONDITION variable="pageGroupSize" op="!==" value="%pos%"/>
                <THEN>-%pos%-</THEN>
                <ELSE>Hier Ausgabe mit Klasse</ELSE>
              </ELSE>)$]]>
          </CMS_CDATA_PARAM>
        <CMS_CDATA_PARAM name="directoryRenderingSelected">
           
<![CDATA[Analog zu oben]]>
        </CMS_CDATA_PARAM>
</CMS_FUNCTION>
</CMS_HEADER>
$CMS_VALUE(pageGroupDirectory)$

Klappt das besser?

Wenn nicht, geben Sie doch mal die Werte der Bedingungen einzeln innerhalb der Funktion aus

%pos% -- $CMS_VALUE(pageGroupSize)$

Sorry,

Holger Höbbel

rbitdd
Returning Responder

Hallo Herr Höbbel,

kein Problem, hätte ich ja auch noch sehen können! Smiley Wink

So geht's:

<CMS_HEADER>

<CMS_FUNCTION name="genericPageGroup" resultname="fr-navi">

      <CMS_PARAM name="cycle" value="0"/>

    <CMS_CDATA_PARAM name="directoryRendering"><![CDATA[

      $CMS_SET(navPos,%pos%)$

      $CMS_IF(<CONDITION variable="const:%pos%" op="==" value="1"/>

              <THEN>erstes Element $CMS_VALUE(%pos%)$</THEN>

              <ELSE><CONDITION variable="const:%pos%" op="!=" value="var:pageGroupSize"/>

                <THEN>-$CMS_VALUE(navPos)$-</THEN>

                <ELSE>Letztes Element</ELSE>

              </ELSE>)$]]>

    </CMS_CDATA_PARAM>

    <CMS_CDATA_PARAM name="directoryRenderingSelected"><![CDATA[

      $CMS_SET(navPos,%pos%)$

      $CMS_IF(<CONDITION variable="const:%pos%" op="==" value="1"/>

              <THEN>erstes Element</THEN>

              <ELSE><CONDITION variable="const:%pos%" op="!=" value="var:pageGroupSize"/>

               <THEN>-$CMS_VALUE(navPos)$-</THEN>

                <ELSE>Letztes Element</ELSE>

              </ELSE>)$]]>

    </CMS_CDATA_PARAM>

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_VALUE(pageGroupDirectory)$

Das zweite IF hat irgendwie noch nicht richtig geklappt. So läuft's aber!

Danke für die Hilfe.

Viele Grüße

0 Kudos