1. XTOC Version 1.0 beta5

Datum: 15.11.2006

Xtoc bietet modifizierte Versionen der toc() Funktion und anderer Funktionen von Peter Hartegs CMSimple (www.cmsimple.dk). Modifiziert wurden sie von Till (www.nmud.de). Xtoc wurde getestet mit CMSimple der Versionen 2.5 und 2.6 fix9.

Xtoc Version 1.0 beta5 unterscheidet sich von der beta3 Version durch die Zugabe der xsearchbox(), xlocator() und xnewsbox() Funktionen.

Inkludierung:

Die Xtoc Funktionen werden mittels der template.htm Datei eines CMSimple Templates aufgerufen, indem folgende Zeile im oberen Ende der Datei inkludiert wird:

<?php include ($pth['folder']['template'].'xtoc.php'); ?>

Die xtoc.php Datei wird in das Unterverzeichnis kopiert, welches das Template mit den geänderten toc() Funktionen enthält. In der template.htm Datei wird statt toc() jetzt xtoc() als Menü Funktion eingesetzt. Fall jedoch geplant sein sollte, vertikale oder horizontale DropDown Menüs zu erstellen wird anstatt xtoc() die Funktion <?=xli($hc,'menulevel')?> eingesetzt. Weitere gewünschte Funktionen werden durch Entkommentierung (Entfernen von //) aktiviert.

Funktionen:

Es gibt zwei verschiedene Funktionen innerhalb der xtoc.php Datei, die das CMSimple Menü-System beeinflussen - xtoc() selbst sowie eine von fünf verschiedenen xli() Funktionen. Während die xtoc() Funktion immer aktiv sein muss (das gilt allerdings nicht für die xsearchbox() und die xnewsbox() Funktionen !!!), darf andererseits immer nur eine (!) der fünf verschiedenen xli() Funktionen aktiv sein. Die restlichen müssen auskommentiert sein oder entfernt werden. Die xli() Funktionen ermöglichen folgende Funktionen:

(1)
normale Menü Funktion, ausschließlich als Kontrolle gedacht. Sie testet, ob das normal CMSimple Menü auch von der xtoc() Funktion heraus aus angesprochen wird.

(2)
fügt H1-, H2-, and H3-Überschriften als zweite aber individuelle CSS Klassen zur Ausgabe des Menüs hinzu. Diese zusätzlichen Klassen bieten die Möglichkeit, Menü Knöpfe individuell zu stylen. Es wird also eine zweite CSS Klasse zu jedem Menü Knopf hinzugefügt und zwar mit dem Namen der Überschrift der entsprechenden Seite. Im Quellkode sieht das dann folgendermaßen aus:

<li class="Meine_Ueberschrift doc"><a href="/mysite/?Meine_Ueberschrift">Meine_Ueberschrift</a></li>

anstatt nur:

<li class="doc"><a href="/mysite/?Meine_Ueberschrift">Meine_Ueberschrift</a></li>

Damit kann jetzt jeder Knopf sein eigenes Aussehen erhalten. Dabei ist aber Vorsicht geboten: Ältere Browser könnten doppelte Klassennamen nicht verstehen. Neue Browser sind dazu allerdings in der Lage.

Example for XTOC usage
Locator1
Locator2
(3)
geklickte Knöpfe sind inaktiv. Sie können nicht mehr angeklickt werden. Manche CSS Layouts benötigen für bestiimte Funktionen allerdings, dass auch angeklickte Knöpfe noch anklickbar bleiben. Diese Funktion ermöglich das.

(4)
ermöglicht Unterbrechungen im Menü, indem Kategorien oder Zwischenräume gesetzt werden. Wenn "category_" oder "break_" als H1-Seitenüberschrift formatiert werden, wird ein Zwischenraum im Menü von CSS definierter Größe eingefügt. Wenn "category_Meine Überschrift" eingegeben und als H1-Überschrift formatiert wird, wird eine Kategorie mit dem Namen "Meine Überschrift" eingefügt. "Meine Überschrift" ist nicht verlinkt, lässt sich also nicht anklicken. Wenn "break_" mit einer Überschrift gekoppelt wird, führt das nicht zu einer Kategorie, sondern bleibt trotzdem nur ein Zwischenraum.

Zwischenräume und Kategorien können per CSS individuell formatiert werden, da ihnen die CSS Klassen "break" bzw. "category" beigegeben sind (siehe Abbildung IMG 1).

Um Zwischenräume und Kategorien wieder zu entfernen, muss kurzfristig das vorliegende Template mit einem Template ausgetauscht werden, das die xtoc() Funktion nicht enthält (z.B. das Default Template). Nun werden Kategorien und Zwischenräume als normale Links sichtbar und können entfernt werden. Alternativ lässt sich aber auch das MenuManager Plugin von Jens Bröcher nutzen. Hiermit werden Zwischenräume und Kategorien auch ohne Templatewechsel entfernt.

(5)
kombiniert die Funktion (3) mit der Funktion (4).

 

Zusatz-Funktionen:

(6)
Alternative Suchfunktion für alternative CSS Layouts.
Durch die Aktivierung dieser Funktion (durch Entfernen der Kommentar-Striche //) und dem Einsetzen von "xsearchbox()" anstatt "searchbox()" in der template.htm Datei wird der Text "Suchen" auf dem Suchknopf der Suchfunktion entfernt. Der Knopf bleibt leer. Er kann jetzt mit einem Hindergrundbild versehen werden, ohne dass irgend ein Text dabei stört.
Falls die anderen Funktionen nicht benötigt werden, können sie auskommentiert bzw. gelöscht werden - sogar die xtoc() Funktion. All diese Funktionen werden für die xsearchbox() Funktion nicht verwendet!!!

(7)
Alternatives Brotkrumenmenü (locator) beim Kategorie-Sonderfall: Es könnte der Fall eintreten, dass auch der erste Menü-Punkt als Kategorie definiert werden soll - so zu sagen als Überschrift des Menüs (siehe Abbildung IMG 2). Wenn man das tut, folgen auch prompt zwei Probleme auf dem Fuße. Zwar wird die Überschrift "My Site" richtig angezeigt. Doch beim Aufruf einer Website landet man immer automatisch auf der "Homepage", auf der ersten Seite. Und die zeigt nichts anderes als die Überschrift "category_My Site". Das ist nicht schön. Das zweite Problem: Im Brotkrumenmenü sieht man als ersten Punkt ebenfalls die Überschrift "category_My Site". Und das ändert sich auch nicht, wenn man durch das Menü klickt.

Lösung der beiden Probleme:

1. Damit beim Aufruf der Website nicht die "Homepage" aufgerufen wird, müssen wir den Aufruf weiterleiten. Wir tun das mit dem Script:

#CMSimple header('Location:?Welcome');#

wobei "Welcome" der zweite Hauptpunkt im Menü wäre. Damit sehen wir die allererste Seite nie mehr wieder.

2. Um jetzt noch das Brotkrumenmenü zu richten, aktivieren wir in dem xtoc.php Programm die xlocator() Funktion durch Entkommentierung. In unserem Template benutzen wir jetzt nicht mehr die locator(), sondern die xlocator() Funktion (<?php echo xlocator(); ?>). Jetzt ist das Brotkrumenmenü wieder in Ordnung (siehe Abbildung IMG 3).

(8)
Alternative CMSimple Newsbox: Die CMSimple Newsbox Funktion ist eine recht mächtige Funktion, die man sogar noch weiter ausbauen kann. Mit Hilfe der normalen Funktion kann man auf jeder Seite seiner Website einen bestimmten Newstext anzeigen. Mit der xnewsbox() Funktion jedoch lässt sich auf jeder einzelnen Seite ein individueller Newstext anzeigen. Doch das ist optional. Wenn man für eine bestimmte Seite keinen individuellen Newstext hat, lässt man halt den allgemeinen Newstext anzeigen (oder keinen).

Dafür aktivieren wir in dem xtoc.php Programm die xnewsbox() Funktion durch Entkommentierung. In unserem Template benutzen wir nun statt der newsbox() den Ausdruck xnewsbox (<?php echo xnewsbox(); ?>).

Um die allgemeinen News zu erstellen, generieren wir eine Seite mit der Überschrift "News". Das kann eine H1 aber auch eine H2 Seite sein. Sie sollte allerdings am Ende der Content Datei stehen. Die Seite verbergen wir mit dem Skript:

#CMSimple hide#

damit sie nicht per Menü aufgerufen werden kann. Diese Seite wird jetzt als News überall, auf jeder einzelnen Seite der Website gezeigt. Das sind die "default" News. Um der "Welcome" Seite etwa individuellen News Text zuzuweisen, erstellen wir eine zweite News Seite, am besten als Unterseite der "default" News, mit der Überschrift "News2". Andere individuellen News überschreiben wir mit "News3", "News4", "News5" etc.

Unserer "Welcome" Seite ordnen wir ihre individuellen News zu, indem wir ihr den Skript zufügen:

#CMSimple $news="News2";#

Hier erscheint nun der News Text, der auf der Content Seite "News2" erstellt worden ist. Anderen Seiten ordnen wir ihre News mit dem Skript zu: #CMSimple $news="News3";#, #CMSimple $news="News4";#, usw. Damit haben wir praktisch auf jeder Seite zwei Bereiche, die wir mit unserem CMS pflegen können. Diese Newsboxen fassen nicht nur Text, sondern sie können auch mit Bildern angereichert werden.

-----------------------------------------

Diese Xtoc Version wurde mit den CMSimple Versionen v2.5 and v2.6 fix9 getestet.

Bekannte Bugs:

Es gibt einen bekannten Bug. Wenn die Funktion (4) oder (5) aktiviert ist und die "Sitemap" aufgerufen wird und anschließend diese Sitemap auch noch ausgedruckt werden soll, dann liegen die erstellten Zwischenräume bzw. Kategorien nicht mehr als solche vor, sondern werden als normal Links sichtbar. Während die Xtoc Funktion in der Lage ist, die Sitemap Funktion zu kontrollieren (mit der Konsequenz, dass Zwischenräume und Kategorien wie im Menü angezeigt werden), kann sie nicht die Druck-Funktion kontrollieren, ohne dass in zu viele andere Funktionen innerhaln der cms.php Datei eingegriffen werden müsste. Die CMSimple Druck Funktion ruft die gezeigte Seite ein weiteres mal auf, um sie in einer Drucker-freundlichen Version zu zeigen. Dabei wird aber die CMS eigene li() Funktion aufgerufen und nicht mehr die externe xli() Funktion.

 

top / nach open ´|`