Print This Page

Ein paar Code-Schnipsel für weitere Inspirationen

Links mit cms_selflink erstellen

Es gibt verschiedene Wege, wie Sie mit CMSMS Links erstellen können. Ein sicherer Weg ist folgender:

 {cms_selflink page=$dump->content->alias text=$dump->content->title}

Damit werden durch CMSMS automatisch die richtigen URLs erzeugt, unabhängig davon, ob Sie Pretty URLs verwenden oder nicht.

Links "handgemacht"

Alternativ können Sie sich Ihre Links natürlich auch von Hand erstellen:

 <a href="{$dump->content->alias}.htm">weitere Informationen</a>

oder

 <a href="index.php?page={$dump->content->alias}">weitere Informationen</a>

Die zweite Variante ist aber eher eine schlechte Wahl, wenn Sie in den URLs die Seitenhierarchie abbilden möchten, insbesondere, wenn Ihre Seitenhierarchie mehr als 2 Ebenen enthält. content_dump kennt aber nur die ID der aktuellen Seite, die der übergeordneten Seite sowie die Position in der Hierarchie. Wenn Sie mit diesen Einschränkungen leben können, ist folgender Weg möglich:

 <a href="IHR_ALIAS/{$dump->parents->alias}/{$dump->content->alias}">weitere Informationen</a>

Ein kleiner Tipp für die Suchmaschinenoptimierung: "weitere Informationen" ist ein schlechtes Beispiel für den Linktext. Der Linktext sollte idealerweise das Sprungziel beschreiben und zudem das title Attribut im HTML-Link-Tag enthalten. Etwas optimiert sähe das ganze dann so aus:.

 <a href="{$dump->content->alias}" title="{$dump->content->title}">Mehr über: {$dump->content->title}</a>

Darstellung aller verfügbaren Elemente

 {content_dump ... }

{foreach from=$dump item=dump}
{$dump->content->data}
{/foreach}

Die 10 neuesten Seiten einer Webseite anzeigen

 {content_dump limit_count=10 first_sort="created" first_sort_dir="down"}
<ul>
{foreach from=$dump item=dump}
<li>{cms_selflink page=$dump->content->alias text="{$dump->content->title}"}</li>
{/foreach}
</ul>

Die 10 zuletzt aktualisierten Seiten einer Webseite anzeigen

 {content_dump limit_count=10 first_sort="modified" first_sort_dir="down"}
<ul>
{foreach from=$dump item=dump}
<li>{cms_selflink page=$dump->content->alias text="{$dump->content->title}"}</li>
{/foreach}
</ul>

Eine Blog-artige Zusammenfassung aller Seiten anzeigen

Der folgende Code eignet sich hervorragend als Ausgangspunkt für inhaltsbasierte Galerien wie z.Bsp. Blogs:

 {content_dump block_name="page_summary" start_id=$content_id}
 {foreach from=$dump item=dump }
<div class="entry">
<h3>{$dump->content->title}</h3>
<span class="date">{$dump->created->date}</span>
<p>{$dump->content->data}<br />
{cms_selflink page=$dump->content->alias text="Siehe: {$dump->content->title}"}
</p>
</div>
{/foreach}

Einsatz des Parameters extensions

Mittels des Parameters extensions lassen sich Portfolio-Webseiten mit komplexen Metadaten (Audio, Video, Foto) erstellen. So kann auf der Webseite eine Übersicht über verschiedene Felder angezeigt werden (z.Bsp. aus den einzelnen, mit Daten gefüllten Seiten aller Niederlassungen eines Unternehmens). Via Smarty können diese Daten schlußendlich sogar für Berechnungen herangezogen werden.

Nehmen wir mal an, wir haben zwei Templates "Niederlassungsprofil" und "Standard". Das Template "Niederlassungsprofil" enthält die folgenden zusätzlichen Inhaltsblöcke:

 {content block="Umsatz" oneline=true}
{content block="Zusammenfassung"}

Die Darstellung der einzelnen Niederlassungen des Unternehmens beginnt auf der Webseite mit der Seiten-ID 57. So kann content_dump nun Im Template "Standard" wie folgt eingesetzt werden:

 {content_dump block_name="Zusammenfassung" extensions="Umsatz" start_id=57}

{foreach from=$dump item=dump}
{$dump->content->data}
{$dump->extensions->Umsatz->data}
<a href="{$dump->content->alias}">Zur Niederlassungsseite</a>
{/foreach}

Bei Bedarf können Sie über den Parameter extensions auch mehrere Felder abfragen:

 {content_dump block_name="Zusammenfassung" extensions="Umsatz,ein_anderes_Feld,und_noch_ein_Feld" start_id=57}

{foreach from=$dump item=dump}
{$dump->content->data}
{$dump->extensions->Umsatz->data}
{$dump->extensions->ein_anderes_Feld->data}
{$dump->extensions->und_noch_ein_Feld->data}
<a href="{$dump->content->alias}">Zur Niederlassungsseite</a>
{/foreach}

Wenn Sie dann noch den Umsatz des gesamten Unternehmens ausgeben möchten, müssen Sie dem Konstrukt nur eine Variable dafür hinzufügen - Smarty übernimmt die Berechnung für Sie. Praktisch sieht das dann so aus:

 {$umsatz_summe = 0}

{content_dump block_name="Zusammenfassung" extensions="Umsatz" start_id=57}

{foreach from=$dump item=dump}
{$dump->content->data}
{$dump->extensions->Umsatz->data}
{$umsatz_summe = $umsatz_summe + $dump->extensions->Umsatz->data}
<a href="{$dump->content->alias}">Zur Niederlassungsseite</a>
{/foreach}

<p>Der Umsatz aller Niederlassungen beträgt {$umsatz_summe} EUR.</p>

Nur dann einen Link anzeigen, wenn die in extensions benannten Blöcke Daten enthalten

Möglicherweise kennen Sie die Situation - nur eine Zusammenfassung ist nicht genug, eine ganze Seite ist jedoch häufig zu viel.

Für derartige Einsätze bringt content_dump den "extensions" Flag mit. Damit kann abgefragt werden, ob in den im Parameter extensions aufgeführten Inhaltsblöcken Daten enthalten sind. Trifft dies zu, so ist dessen Wert 1 (anderenfalls voreingestellt 0). Eine Abfrage könnte daher wie folgt aussehen:

 {content_dump block_name="Zusammenfassung" extensions="Langversion" start_id=57}

{foreach from=$dump item=dump}
{$dump->content->data}
{if $dump->extensions == 1}
<a href="{$dump->content->alias}">weitere Informationen</a>
{else}
Dies ist nur ein kurzer Eintrag.
{/if}
{/foreach}

Zusätzliche Nutzerinformationen anzeigen (einen "Seitenstatus" erstellen)

Sie möchten ein paar Informationen auf der Seite ausgeben, wer die Seite wann erstellt und bearbeitet hat? Fügen Sie den folgenden Code direkt im Seiten-Template ein:

 {content_dump this_only=$content_id users=true}

{foreach from=$dump item=dump}
Geschrieben von: {$dump->created->by->first_name} - {$dump->created->by->email}
Veröffentlicht am: {$dump->created->date}

{if $dump->created->date != $dump->modified->date } - {$dump->modified->by->email}
Geändert von: {$dump->modified->by->first_name}
Geändert am: {$dump->modified->date}
{/if}

{/foreach}

Mit dem Parameter this_only werden die ausgegebenen Daten auf die aktuelle Seite beschränkt und über den Parameter users=true werden zusätzliche Informationen zum Nutzer abgefragt.





News

Sep 3, 2017
Kategorie: General
Erstellt von: cybermax
The news module was installed. Exciting. This news article is not using the Summary field and therefore there is no link to read more. But you can click on the news heading to read only this article.

Weitere Infos

© Copyright 2010 conceptbay

Debug: (0.217204) - (usage: 11195960) - (peak: 11540976)
0.217175 / 37 / 10873416 / 11540976