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.
Vorherige Seite: Smarty-Logik für die Paginierung der Ausgabe von content_dump
Nächste Seite: Ergänzende Informationen