daniel_philippi
Occasional Collector

$CMS_TRIM(level:4)$ erzeugt nicht das gewünschte Ergebnis

Hallo Zusammen.

Folgendes Linktemplate:

$CMS_IF(!lt_link.isEmpty)$

    $CMS_TRIM(level:4)$

        <span class="contact">

            $CMS_IF(!lt_text.isEmpty && !lt_link.equals(lt_text))$

                <span class="linktext">

                    $CMS_VALUE(lt_text)$

                    <span class="separator">:</span>

                </span>

            $CMS_END_IF$

            $CMS_VALUE(lt_link)$

        </span>

    $CMS_END_TRIM$

$CMS_END_IF$

Erzeugt folgendes Ergebnis:

<span class="contact"> <span class="linktext"> Daniel Philippi <span class="separator">:</span> </span> daniel.philippi@abcdefgh.de </span>

Gewünschtes Ergebnis, wie auch in der Doku beschrieben müsste eigentlich Folgendes sein (ohne Leerzeichen):

 <span class="contact"><span class="linktext">Daniel Philippi<span class="separator">:</span></span>daniel.philippi@abcdefgh.de</span>

Hat hier jemand eine Idee?

Gruß und vielen Dank,

Daniel Philippi

0 Kudos
2 Replies
hoebbel
Crownpeak employee

Hallo Herr Philippi,

in Ihrem Beispiel klingt es tatsächlich auf den ersten Blick einleuchtend, dass es hier ein unerwartetes Verhalten geben würde.

Deshalb hier mal ein Gegenbeispiel Smiley Wink

$CMS_IF(!lt_link.isEmpty)$
    $CMS_TRIM(level:4)$
        Hallo
            $CMS_IF(!lt_text.isEmpty && !lt_link.equals(lt_text))$
                $CMS_VALUE(lt_text)$
            $CMS_END_IF$
    $CMS_END_TRIM$
$CMS_END_IF$

Erzeugt folgendes Ergebnis:

Hallo Welt

Gewünschtes Ergebnis, wie auch in der Doku beschrieben müsste eigentlich Folgendes sein (ohne Leerzeichen):

HalloWelt

Sind Sie sicher, dass Sie das haben wollen?

Davon abgesehen steht in der Doku:

"Alle aufeinander folgenden Whitespaces werden zu einem Leerzeichen zusammengefasst.":

http://www.e-spirit.com/odfs42/de/vorlagenentwicklung/vorlagensyntax/anweisungen/cms_trim/cms_trim.h...

User: FIRSTDoku

Pass: FSdown_V2

Genau dies geschieht hier doch Smiley Happy

Wenn Sie ihr Beispiel geringfügig ändern, sollte das Ergebnis eher Ihren Vorstellungen entsprechen:

$CMS_IF(!lt_link.isEmpty)$
    $CMS_TRIM(level:3,char:"")$
        <span class="contact">
            $CMS_IF(!lt_text.isEmpty && !lt_link.equals(lt_text))$
                <span class="linktext">
                    $CMS_VALUE(lt_text)$
                    <span class="separator">:</span>
                </span>
            $CMS_END_IF$
            $CMS_VALUE(lt_link)$
        </span>
    $CMS_END_TRIM$
$CMS_END_IF$

Der "Trick" ist es hier, zwar einzelne Zeilen zu erzeugen (level:3), als Umbruchzeichen aber "nichts" zu benutzen, was dann dazu führt, dass tatsächlich alles zusammengeschrieben wird. Sieht mit Text zwar ziemlich häßlich aus, für Quellcode aber geeignet Smiley Wink

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos

Hallo Herr Höbbel.

Genial! Dadurch wird eine ordentliche und vor allem übersichtliche Strukturierung des Quelltextes möglich!

Vielen Dank für den Trick.

Daniel Philippi

0 Kudos