Aktuelles / BlogAktuelles / Blog

Neueste Meldungen, Hintergrundinfos, HOW-TOs

...und vieles mehr nur hier im Blog

Weitere Informationen zu Contentpapst Weitere Informationen zum CP::Shop

Neueste Beiträge


Entwickler-Blog: Tipps & Tricks

<< zum vorherigen Eintragzum nächsten Eintrag >>

CP::Forms: Abwechselnde Hintergrundfarben in Auflistungen (Sa, 17.06.2006)

Um in einer Auflistung von Einträgen eines CP::Forms-Modules die einzelnen Einträge optisch besser voneinander abzuheben, müssen keineswegs mehrere Vorlagen eingesetzt werden. Vielmehr genügt ein wenig PHP-Code innerhalb einer Vorlage, um z.B. in der Auflistung zwischen zwei verschiedenen Hintergrundfarben zu wechseln oder die Darstellung anderweitig zu variieren.

Untenstehend sehen Sie den Containeraufruf des CP::Forms-Modules "forms_test". Mit diesem Aufruf werden die ersten 10 Einträge des Modules über die Vorlage "/modules/forms_test/templates/list_public.html" angezeigt, wobei der Containeraufruf selbst von einer Tabelle umgeben wird, so dass jeder Eintrag eine Zeile dieser Tabelle bildet:

<table border="0" cellspacing="2" cellpadding="3" width="400">
   {cp:container module="forms_test" type="list" limit="10" template="modules/forms_test/templates/list_public.html"}
</table>

Um nun in der Vorlage "/modules/forms_test/templates/list_public.html" abwechselnd eine andere Hintergrundfarbe anzuzeigen, muss innerhalb der Vorlage mitgezählt werden. D.h. die Vorlage muss wissen, ob ein Eintrag an erster oder an zweiter Stelle steht. Dies kann in PHP am besten über eine globale Variable realisiert werden.

Der HTML-/PHP-Code für die Vorlage in diesem Beispiel sieht folgendermaßen aus:

<?php
$GLOBALS["{cp:forms:options:module}_list_cnt"]++;
if ($GLOBALS["{cp:forms:options:module}_list_cnt"] == "2") {
 $this_background = "#FFFFFF";
 $GLOBALS["{cp:forms:options:module}_list_cnt"] = "0";
} else {
 $this_background = "#EDF3FE";
}
?>

<tr>
    <td valign="top" style="background: <?php echo $this_background; ?>"><img src="square.gif" border="0" alt="" /> {cp:forms:values:title}</td>
</tr>

Der Name der globalen Variablen setzt sich hier aus dem Modulnamen und dem Suffix "_list_cnt" zusammen. So ist sichergestellt, dass es keine andere im System genutzte Variable mit diesem Namen gibt. Die Variable wird immer bis 2 hochgezählt und dann auf 0 zurückgesetzt. Für beide Zustände ("1" und "2") wird jeweils eine Hintergrundfarbe in der Variablen "$this_background" vergeben, welche anschließend innerhalb der Tabellenzelle eingesetzt wird.

Zusammen mit einer Grafik sieht dies wie folgt aus:

Natürlich kann die für die Darstellung genutzte Vorlage einen beliebigen Umfang besitzen. Dies ist also nicht auf eine simple Listenform mit nur jeweils einer Überschrift beschränkt. Und wenn die globale Variable nicht zurückgesetzt wird, dann kann man mit dieser auch eine Auflistung durchnummerieren:

<tr>
    <td valign="top" style="background: #EDF3FE"><?php $GLOBALS["{cp:forms:options:module}_list_cnt"]++; echo $GLOBALS["{cp:forms:options:module}_list_cnt"]; ?>. {cp:forms:values:title}</td>
</tr>


RSS-Feed abonnieren RSS-Feed abonnieren

Blog-Eintrag kommentieren

Um einen Kommentar zu diesem Beitrag zu verfassen, können Sie sich im folgenden Formular entweder manuell mit Benutzername und Email-Adresse identifizieren oder aber Sie loggen sich über ein vorhandenes Profil bei Facebook, Twitter, OpenID etc. ein. Auf Wunsch haben Sie die Möglichkeit, sich automatisch über weitere Kommentare informieren zu lassen.

<< zurück

Weitere Einträge in der Kategorie "Tipps & Tricks"

Hier finden Sie die eBusiness-/eCommerce-Spezialisten von sandoba.de:
https://www.sandoba.de/blog/tipps-und-tricks/cpforms-abwechselnde-hintergrundfarben-in-auflistungen/