Ligatabellen in Seiten einbinden

Aus SamsWiki
Wechseln zu: Navigation, Suche

Komponente anlegen

Da auf den Seiten oft nur eine Auswahl aller im System vorhandenen Ligen angezeigt werden soll, muss zunächst erstmal eine CMS-Komponente angelegt werden. Diese Komponenten dienen generell zur Ausgabe von dynamischen Daten in den statischen CMS-Seiten, beispielsweise einem Seiten-Menü oder eben Ligatabellen. Sie erlauben außerdem eine Konfiguration der Ausgabe, wie die Auswahl der Ligen, die angezeigt werden sollen..

Um eine Komponente anzulegen, geht man wie folgt vor: Im Adminbereich öffnet man den Menüpunkt CMS > Komponenten. In der oberen Auswahlliste wählt man nun "Liga-Tabellen und -Details" aus und klickt auf das grüne Plus daneben, um die Maske zum Erstellen der Komponente aufzurufen. Im ersten Tab "Komponente" muss nun ein Name und eine Bezeichnung vergeben werden. Der Name sollte recht simpel gehalten werden, beispielsweise "ligen_regional". Die Bezeichnung ist frei, "alle Regionalligen" könnte man hier setzen. Jetzt muss die Komponente mit einem klick auf "Speichern" angelegt werden, damit wir weitermachen können. In der Maske lassen sich nun die Liga-Hierarchien auswählen, die angezeigt werden sollen. Wichtig: nach einem Saisonwechsel müssen diese Auswahlen gegebenenfalls aktualisiert werden, weil die Hierarchien fest an die Saisons gebunden sind. So lässt sich aber beispielsweise auch ein Liga-Archiv realisieren.

Für versiertere Benutzer ist im zweiten Tab "Templates" das Aussehen der Komponente festgelegt. Die Templates lassen sich beliebig anpassen und sind mit brauchbaren Werten vorbelegt - müssen also nur bei Bedarf verändert werden. Die Templates sind xhtml-Bauteile, erweitert mit Java Server Faces (JSF) Taglibs. Verfügbare Bibliotheken sind

Die Verwendung dieser Bibliotheken sollten aber wenn möglich aufs nötigste reduziert werden, da sie teilweise sehr viel HTML-Code produzieren. Manche, wie a4j:repeat zur Erzeugung von Schleifen (siehe http://livedemo.exadel.com/richfaces-demo/richfaces/repeat.jsf?c=repeat&tab=usage), sind aber essentiell.

Seite anlegen

Die Komponente ist jetzt angelegt, muss aber noch in eine CMS-Seite eingebunden werden, um eine Ausgabe zu erhalten. Existiert noch keine entsprechende seite, muss sie erst angelegt werden: CMS/Seiten anlegen. Im Tab "Seiteninhalt" binden wir nun die Komponente in die Seite ein. Hierzu muss im TineMCE-Editor zunächst die HTML-Ansicht der Seite geöffnet werden. Das Icon dafür ist in der zweiten Leiste, das fünfte von rechts. An der Stelle, an der die Ausgabe in der Seite erscheinen soll, wird jetzt folgendes eingegeben:

<source lang="xml"> <ui:include src="components/ligen_regional" /> </source>

Wurde die Komponente im ersten Schritt anders benannt, muss "ligen_regional" an der Stelle natürlich angepasst werden. Soll sonst auf der Seite nichts mehr angezeigt werden, bleibt die HTML-Ansicht bis auf diesen Befehl einfach leer. Nach dem Speichern kann die Seite aufgerufen werden und die Ausgaben der Liga-Komponente sollten erscheinen.

Komponente einbinden

Die Komponenten, beziehungsweise die CMS-Seiten, in denen sie eingebunden sind, lassen sich recht einfach per iframe in externe Webseiten einbinden:

<source lang="html4strict"> <iframe src="http://meinedomain/cms/seitenname.xhtml?layout=contentOnly" height="900" width="700" style="background-color: white; border-width: 0px"> </source>

"meinedomain" und "seitenname" müssen natürlich noch angepasst werden. Wichtig: der Seitenname ist der Name der CMS-Seite, nicht der der Komponente! Der Parameter "?layout=contentOnly" bewirkt, dass für die Seite das "Nur-Content"-Layout verwendet wird, mit dem die Anzeige des normalen Seitenlayouts unterdrückt wird.