Dokumentation Categorywalker
Aus DeDi-Help
Inhaltsverzeichnis |
[bearbeiten] Beschreibung des Moduls
[bearbeiten] Vorwort
Der Categorywalker ist ein sehr mächtiges Werkzeug auf Ihrer DeDi Website.
Ein Grundlegendes Verständnis für DeDi bzw. für den Aufbau von Layouts und die Benutzung von Content-Containern ist Voraussetzung um das Modul entsprechend zu nutzen. Wie bei den meisten Modulen, benutz auch der Categorywalker Templates für die Frontendausgabe. Hier ist es zwingend erforderlich entsprechende Html-Grundkenntnisse mitzubringen.
[bearbeiten] Ziel des Moduls
Der Categorywalker bringt zwar eine Menge an Funktionalitäten mit, die auch in anderen Modulen vorhanden sind, doch ist es nicht Sinn dieses Moduls sich Spezialisiert auf eine Funktion (z.B.: NewsTeaser) zu beschränken.
Vielmehr soll der Umfang und die Möglichkeiten des Categorywalker dazu dienen, Aufgaben zu bewältigen, die mit anderen Modulen nur schwer oder nicht vollständig (weil zu spezialisiert) umgesetzt werden können.
[bearbeiten] Gültigkeit dieser Dokumentation
Diese Dokumentation gilt ab Version 0.64 bis 1.03, alle anderen Versionen werden nicht Supportet!
Alle Änderungen seit Version 0.6 sind berücksichtigt und in diese Dokumentation eingeflossen.
Für die Light-Version gibt es eine kleinere angepasste Dokumentation, da dort nicht alle Features Enthalten sind. In der Dokumentation verwendete Abkürzungen wie z.B.: 2.2 oder 4.2.2 beziehen sich auf Kapitel und Unterkapitel dieser Dokumentation.
[bearbeiten] Überblick Installation
[bearbeiten] Software Voraussetzungen
Voraussetzung zur Nutzung/Installation ist eine funktionsfähige Installation von 'Der Dirigent', und die Zustimmung zu den Lizenzbedingungen der Software 'Der Dirigent', der auch dieses Modul unterliegt.
[bearbeiten] Standard Installation als XML-Modul
Standard Installation als XML-Modul:
Voraussetzung ist hierbei, dass Sie das Modul vom DeDi-Modul Repository heruntergeladen haben.
Nach der Anmeldung im Backend, öffnen Sie über Design->Module die 'Modul' Übersichtsseite.
Klicken Sie auf die Schaltfläche Durchsuchen..., in dem unteren Bereich der Seite 'Modul uploaden'.
Wählen Sie nun in dem sich öffnenden 'Datei auswählen' Fenster das Modul 'Categorywalker.dedimod' aus.
Bestätigen Sie die Auswahl mit Klick auf 'öffnen' und starten den Upload mit Klick auf die Schaltfläche 'Modul uploaden' (Diskettensymbol, rechts).
Bei erfolgreichem Upload, wird das neue Modul sofort in der Modulübersicht angezeigt.
Sie können nun in einem Template das neue Modul einstellen.
[bearbeiten] Installation als Developer-Modul
Installation als Developer-Modul:
Voraussetzung ist wie bei 2.2, oder das Sie das Modul aus dem Entwicklerforum kopiert haben.
Nach der Anmeldung im Backend, öffnen Sie über Design->Module die Modulübersichtsseite.
Klicken Sie auf neues Modul, es öffnet sich die 'Modul bearbeiten' Seite.
Hier fügen Sie den Code in die entsprechenden Felder ein. Zur besseren Übersicht geben Sie dem Versionsnamen eine Unterzahl (z.B.: 0.6y.x-dev) und benennen die Kategorie 'Develope'.
Speichern Sie das Modul. Das neue Modul wird sofort in der Modulübersicht angezeigt.
Sie können nun in einem Template das neue Modul einstellen.
Achtung: Developer-Module erzeugen einen Warnhinweis im Backend bei der Einbindung des Moduls in ein Template!
DIES IST EINE ENTWICKLERVERSION. SIE IST NICHT FÜR DEN PRODUKTIVEN EINSATZ GEEIGNET !!!
[bearbeiten] Änderungen am Modul
Wenn sie in dem Modul Änderungen vornehmen oder das Modul als Developer-Version nutzen, sollten Sie unbedingt Änderungen dokumentieren und eine Unterversionierung einhalten. Damit bei einem Update oder Problemen/Support eine klare Aussage über den Versionsstand gemacht werden kann!
[bearbeiten] Überblick Funktionsweise des Moduls
[bearbeiten] Allgemeines
Der Categorywalker durchsucht die Datenbank. Über die Angabe von Container, Startoptionen (Startseite, On-/Offline) und Suchmuster (4.3) kann man die Suche eingrenzen und komfortabel das Suchergebnis beeinflussen.
Die Ausgabe erfolgt über 4 Templates, die einzeln definiert werden können.
Zusätzlich generiert der Categorywalker eine zusammenhängende Navigation die es bequem macht das Ergebnis auf mehrere Seiten aufzuteilen (Galery). Die Navigation kann optional "floaten" das heißt die Anzeige der Navigation wird auf z.B.: maximal 20 Navigationspunkte begrenzt und die Nummerierung wandert in einem Bereich Rechts und Links um die aktuelle Seite mit.
[bearbeiten] Templates
Die Templates werden wie normales Html behandelt (also sind Html-Tags erlaubt).
Es gibt ein 'Top-Artikel' Template welches separat angesprochen werden kann um einen Artikel auf der Startseite hervorzuheben.
Die beiden 'Content1' und 'Conten2' Templates wiederum wiederholen in einer Schleife jeweils die gegebene Anzahl von Artikel/Suchergebnissen und das völlig unabhängig voneinander. Das letzte Template 'Merge' ist für den Gesamtaufbau der Anzeige verantwortlich, hier werden die anderen 3 Templates zu einer Seite zusammengefügt. Innerhalb dieser Templates sind auch einige Scripttags erlaubt die eine genaue Positionierung und Wiederholung von Content-Variablen erlauben. Die Scripttags werden in 4.2 unter 'ScriptTags' erläutert.
[bearbeiten] Optionen
Optionen zu der Auswahl der Artikel/Suchergebnisse sind folgende:
- Strukturpunkt, hier wird die Tiefe der Suche rekursiv begrenzt. Autom. werden alle vorhandenen Strukturpunkte angezeigt.
- CMS-Container, hier werden die Layout-Container definiert die durchsucht werden sollen. Autom. werden alle vorhandenen Container in dem Textfeld angezeigt
- Extras/Sicherheit, hier kann man die Startseiten mit einbeziehen und auch Offline Seiten freigeben. (ab v0.65 werden auch externe Content-Container durchsucht!)
- Sortierung, hier wird die Ausgabe-Sortierung festgelegt, z.B.: nach Erstellungsdatum (News).
- Suchmuster, hier kann ein begrenzendes Suchmuster eingegeben werden (siehe 4.3).
[bearbeiten] Modul Frontend
[bearbeiten] Einstellung und Parameter
Das Modulfrontend beinhaltet die zur Konfiguration notwendigen Einstellungen und Vorlagen.
- Strukturpunk, der Strukturpunk bezeichnet die Kategorie oder den Ordner ab dem der Content gesucht wird.
- Einstellung Recursion, hier kann die Recursion bei ausgeschaltet werden. Das Modul sucht dann nur in der vorgegeben Kategorie/Ordner und nicht in den darrunterliegenden Strukturen.
- CMS-Container, alle benutzten CMS-Container aus einem Layout haben ihren Inhalt in der Datenbank hinterlegt. Die Auswahl beschränkt sich auf benutzte Container.
- Extras/Sicherheit, die Auswahl umfasst Startseiten der Kategorien/Ordner, Offline gesetzte Seiten/Kategorien/Ordner, geschützte Kategorien/Ordner und nicht validen Content. (Content aus externen Daten ab Version 0.8)
- Einstellung/Begrenzung Suchmuster, hier hinter liegt eine Intelligente SQL-Matrix die die Pseudo-Code Anfrage in SQL abbildet und somit die Datenbankabfrage verfeinert (4.3).
- Suchmuster einschalten/ausschalten, die Funktion kann frei dazugeschaltet werden.
- Suchtiefe begrenzen, hiermit können Sie die Suchtiefe auf eine bestimmte Anzahl von Treffern begrenzen.
- Seiten Sortierung, hier wird die Ausgaben Sortierung eingestellt. Möglich sind: Id der Seite, Erstellungsdatum, Änderungsdatum, Autor und Seitentitel. Sowie absteigende und aufsteigende Sortierung.
- Einstellungen Navigation, die Navigation kann ganz ausgeschaltet werden und auch immer angezeigt werden (kein Ergebnis).
- Navigation "flooting", die Navigationsbreite kann begrenzt werden auf eine Anzahl von Pnkten. Die Navigation umläuft dann immer die aktuelle Seite mit maximal x Punkten.
- Navigation Präfix, der Präfix steht vor der kompletten Navigation und kann frei konfiguriert werden.
- Navigation Suffix, der Suffix steht hinter der kompletten Navigation und kann frei konfiguriert werden.
- Navigation Buttons, die Schaltflächen für vorwärts und rückwärts können im aktiven und deaktivierten Zustand frei definiert werden.
- Navigations Punkte, hier werden die Seitenlinks definiert (aktiv/deaktiviert).
- Topartikel Template, der Topartikel stellt eine Funktion da die den 1. Artikel der ersten Seite extra darstellen kann. Dabei können die den Top-Artikel auch ganz aus den folgenden Templates herausnehmen.
- Content1/Content2 Template, in diesen Templates können zwei unterschiedliche Ausgaben des einen Artikels oder verschiedene Artikel ausgegeben werden.
- Content1/Content2 Schleife, hier stellen Sie die Anzahl von Artikeln eine die auf einer Seite dargestellt werden.
- Verbindungs Template, das Verbindungs Template (Merge) verbindet die anderen Templates zu einer einheitlichen Ausgabe.
- Anchors, das sind Anker im Html-Code.
[bearbeiten] Templates
Templates können nur einzelne Variablen oder auch ganze Html-Seiten (Vorlagen) enthalten.
Die Ausgabe von Variablen wird über die Scripttags gesteuert. Dabei lassen diese Tags Verschachtelung und Abhängigkeiten zu, um auch die verschiedensten Inhalte Korrekt darzustellen.
ScriptTags
Die Script-Tags sind dafür da bestimmte Ausgabetypen zu selektieren und zu ordnen. Unterstützt werden nur die Offiziellen DeDi-Typen:
Typen und ihre Id aus der dedi:type
- 1 text
- 2 wysiwyg
- 3 textarea
- 4 img
- 5 imgdescr
- 6 link
- 7 linkdescr
- 8 linktarget
- 9 sourcecode
- 10 file
- 11 filedescr
- 12 filetarget
- 101 wysiwyg:spaw
Die Scripttags Legende:
- {text}, ist der 1. text-Typ in einem Content
- {text:x}, das x (void:integer) bezeichnet den x-ten text-Typ in einem Container (Achtung: die Nummerierung ist relativ zu der Anzahl der gefundenen Inhalte!)
- {textarea}, ist der 1. textarea-Typ in einem Content
- {textarea:x}, das x (void:integer) bezeichnet den x-ten textarea-Typ in einem Container
- {wysiwyg}, ist der 1. wysiwyg-Typ in einem Content
- {wysiwyg:x}, das x (void:integer) bezeichnet den x-ten wysiwyg-Typ in einem Container
- {wysiwyg_spaw}, ist der 1. wysiwyg:spaw-Typ in einem Content
- {wysiwyg_spaw:x}, das x (void:integer) bezeichnet den x-ten wysiwyg:spaw-Typ in einem Container
- {img}, zeigt das 1. Image in einem Content
- {img:x}, das x (void:integer) bezeichnet die Location des x-ten Images in einem Content
- {img_desc}, ist die Bezeichnung/Name des 1. Images in einem Content
- {img_desc:x}, das x (void:integer) bezeichnet den Bezeichnung/Name des x-ten Images in einemContent
- {link_url}, -> siehe {img_url}
- {link_url:x}, -> siehe {img_url:x}
- {link_desc}, -> siehe {img_desc}
- {link_desc:x}, -> siehe {img_desc:x}
- {link_target}, -> siehe {img_desc}
- {link_target:x}, -> siehe {img_desc:x}
- {file}, -> siehe {img}
- {file:x}, -> siehe {img:x}
- {file_desc}, -> siehe {img_desc}
- {file_desc:x}, -> siehe {img_desc:x}
- {file_target}, -> siehe {img_desc}
- {file_target:x}, -> siehe {img_desc:x}
- {url_to_articel}, ist der interne Link zu dem gefundenen Content/Artikel
- {exist yyy[:x]}/{/exist}, ein Konstrukt das ein Variabelenabfrage für yyy:x (wobei :x optional ist!) ausführt und nur bei Vorhandensein der innere Code (Html/Script) ausgeführt wird. Man kann somit im Template sicherstellen das ein Layout wie im Beispiel:
{exist text:3}<b>{text:3}</b><br>{/exist}
nicht ausgeführt wird, wenn die Variable nicht existiert oder leer ist. - {loop yyy}/{/loop}, ein Konstrukt das eine Schleife um den Contenttype yyy (ohne :x) ausführt, man kann somit im Template ein Layout wie im Beispiel:
<ul>{loop text}<li><b>{text}</b></li>{/loop}</ul>
mehrfach durchlaufen und alle Inhalte von z.B.: {text} (text:1, text:2, text:3 usw.) werden wiedergeben. - {each xxx}, ist eine vereinfachte Form von {loop xxx}{xxx}{/loop}
- Cuttexte, das Attribut [cut:xy] ist eine optionale Einstellung (ohne die eckigen [...] Klammern) um den Text auf xy Zeichen zu kürzen! z.B.: {text:1 cut:100} - Damit kann man Teaser erzeugen die 100 Zeichen lang sind Minus das Letzte (überhängige) Wort aus dem erstem Textfeld einer Seite.
- Extra Attribute für {img} & {file}, [ thumb]/[ url]/[ name]: {img thumb} - zeigt nur das Thumbnail an (ausser .gif), {img url} - übergibt den Pfad, {img name} - übergibt den Namen.
- Cuttexte & Attribute können auch mit {each} kombiniert werden.
Beispiele
Die Script-Tags dürfen variabel kombiniert werden, um eine saubere Anzeige des gefundenen Contents bei höchstmöglicher Variabilität zu leisten!
Beispiel1:
das Beispiel gibt immer den ersten gefundenen text-Typ + textarea:1 aus, und nur wenn vorhanden auch text:2 + textarea:1 und text:3 + textarea:1 inklusive der umfassenden <b>...</b><br> Tags
<b>{text}{textarea:1}</b><br> {exist text:2} <b>{text:2}{textarea:1}</b><br> {/exist} {exist text:3} <b>{text:3}{textarea:1}</b><br> {/exist}
Beispiel2:
das Beispiel zeigt den Aufbau einer Liste mit Artikel-Teasern + Bild
<ul> {loop text} <li><b>{img}{text}</b></li> {/loop} </ul>
[bearbeiten] Suchmuster
[bearbeiten] Einsatzbeispiele
Der Categorywalker kann als Newsgrabber, DokuWeb, Redaktionstool oder Galery eingesetzt werden.
Sicherlich gibt es noch viele andere Möglichkeiten, das auszuprobieren ist ja Ihr Job ;)
Weitere, ausführliche Beispiele siehe Anhang A.
[bearbeiten] Ausblick/Weiterentwicklung
Der Categorywalker wird noch einige Updates erfahren, welcher Art können Sie der Doku entnehmen.
Die v0.64.4 ist die aktuelle Stabel-Version, bis zur v0.7 werden zumindest einige Code Optimierungen durchgeführt. Bis zur DeDi 1.0 wird die Version 0.8 released.
[bearbeiten] Grußwort
Dank an alle DeDi-Entwickler, die Cores, die Modulentwickler und die netten Testuser :)
Gruß STam