Guite edited this page Nov 15, 2014 · 8 revisions

Clip

Einführung

Clip ist die Weiterentwicklung eines universellen Datenbank-Moduls für das Framework Zikula. Basierend auf den wegweisenden Ideen und Überlegungen von Jørn Wildt entstand das Modul "pagesetter" für die ersten Postnuke-Versionen. Die Weiterentwicklung über "pagemaster" führte zu Clip. Mit Hilfe dieses Datenbank-Moduls ist es möglich, universelle Datenstrukturen in entsprechende Datenmodelle zu überführen und innerhalb des Frameworks abzubilden und für den User verfügbar zu machen. Alle Vorteile des Frameworks, wie Zugangsberechtigungen, Templating, Hooking, Einbindung innerhalb des Frameworks etc. bleiben erhalten. Clip benötigt Core-Funktionalitäten mindestens einer Zikula-Core-Version 1.3.X

Das Konzept von Clip besteht aus dem Verwalten von Publikationsgruppen, Publikationstypen, Publikationen und deren Verbindung mit anderen Zikula-Modulen und dem Zikula-Core über Nachrichten und Events. Die zentrale Modul-Verwaltung von Clip hält die Daten konsistent und kümmert sich um die zu Verfügung-Stellung der entsprechenden Daten innerhalb des Frameworks, sowie der Verbindung von Publikationstypen über "Relationen".

Dies kann simpel verstanden werden als Tabellen-Handling von Datenbank-Tabellen (SQL oder eine andere vom Framework unterstützte Datenbankverbindung), die userfreundlich mit einer graphischen Oberfläche (GUI) versehen ist. Die Einzelbestandteile (Publikationsgruppen, Publikationstypen, Publikationen) sind frei definierbar und nur an die zu Verfügung stehenden Publikations-Felder und -typen und die damit zu Verfügung stehenden Funktionalitäten ("plugin-Funktionen") gebunden. Feldtypen innerhalb Clip sind z.Zt.(04/2012) fix und können nicht verändert werden. Funktionalitäten können über "plugins", die ihre Ergebnisse entsprechend an die Publikations-Felder melden, nachgerüstet werden.

Damit ist die Abbildung umfangreicher Datenbank-Strukturen innerhalb des Frameworks realisierbar und für das Framework (mit den vom Framework zur Verfügung gestellten Funktionen; Zugangsberechtigung, Templating etc.) verfügbar.

Z.Zt (04/2012) arbeite ich an einem neuen Entwurf für eine Wissensbasis unter zu Hilfenahme von Clip. Das könnte dann mal so aussehen:

Wie aus der Graphik ersichtlich, besteht meine Publikationsgruppe aus verschiedenen untereinander über Relationen verbundenen Publikationstypen: Hersteller, Serien, Teile, Firmennamen, Porzellanmarken, Kuenstler, Preise. Die "3n - die drei grundlegenden Normalisierungen der Daten" des Datenbank-Entwurfes werden auch unter Zikula nicht erspart. Lesenswert ist sicherlich das.

Für den Einsteiger ist die Nutzung der bei der Installation eingerichteten Publikationen "Blog" und "Pages" interessant. Beide Publikationen stellen die grundlegenden Konzepte von Clip vor. Beschäftigen Sie sich damit und spielen Sie. Schauen Sie sich die Publikations-Entwürfe mit den Publikations-Feldern an. Über das Verfahren zur Behandlung von kommen wir später.

Quellen

Clip ist nach der Umstellung des Frameworks Zikula auf Versionen jenseits 1.3?? einer ständigen Weiterentwicklung unterworfen. Für Interessierte lässt sich diese Entwicklung über github beobachten: https://github.com/zikula-modules/Clip Stabile Versionen finden sich für deutschsprachige Benutzer regelmäßig auf http://support.zikula.de/index.php?module=info&tid=1

Installation

Zur Nutzung von Clip ist mindestens Zikula Core 1.3.x erforderlich. Clip wird wie jedes konforme Zikula-Modul aus den vorhandenen Quellen (*.zip, *.tar etc.) in den Ordner /Zikula/modules/ entpackt. Unter der Zikula-Version ab 1.3.2 entsteht damit unterhalb des /Zikula/modules/ Ordners eine Verzeichnis-Struktur, die alle Elemente zur Einbindung des Moduls in das Framework enthält. /Zikula/modules/Clip

  • docs + images + javascript + lib usw.

Nach Zikula-typischer Aktivierung des Moduls schreibt dieses neben den notwendigen Daten-Tabellen zusätzliche Dateien in die Zikula-Unterverzeichnisse /Zikula/userdata und /Zikula/ztemp. Unter /Zikula/ztemp wird Clip die Datenstrukturen ablegen, die sich aus der Definition von Publikationen ergeben. In die vorhandene Kategorien-Struktur des Frameworks werden Grundkategorien für Clip eingetragen. Nach erfolgreicher Aktivierung ist das Modul damit einsatzbereit und gleichzeitig in einen sogenannten "Development mode" geschaltet. Für den weiteren Umgang mit diesem Modul ist darauf noch zurückzukommen.

Der Startbildschirm des Moduls Clip sollte danach etwa so aussehen: /images/Clip-Adminseite-Übersicht.jpg

In der oberen, grau unterlegten Menu-Zeile gibt es die Einträge: "Index Relations Export Import Settings Hooks" Die linke Spalte ist den Publikationstypen, beim Start mindestens "Blog Pages" vorbehalten. Der zentrale Bereich enthält einen erklärenden Text, oder wie hier Informationen zum aufgerufenen Publikationstypen. Rechts befinden sich dann (wenn ein Publikationstyp ausgewählt ist) drei Buttons für die Anlage einer neuen Publikation innerhalb des aktuell gewählten Publikationstypes, dem Aufruf der Editor-Liste und dem Aufruf des Editors für die öffentlich verfügbaren Publikationen.

Damit ist die Installation erst einmal vollständig und geschafft.

Arbeiten mit Clip / Vorbereitungen

Grundeinstellungen

Das Modul ist nach der Installation betriebsfähig und einsatzbereit. Dennoch sollte man einige Einstellungen vornehmen. Diese finden sich im Bereich Einstellungen / Settings.

[[/images/Settings_-Clip-_Administration.png]]

  • Upload path

Voreingestellt ist "userdata/Clip/uploads". In diesem Verzeichnis wird Clip alle Daten speichern, die in den Publikationen als "Upload-Felder" angelegt sind.

  • Models path*

Voreingestellt ist "ztemp/ClipModels". In diesem Verzeichnis merkt sich Clip die Definition der Publikationen. Im Zusammenhang mit "Reset Models" wird darauf zurückzukommen sein.

  • Publication Type

Voreinstellung: "leer". In dieser Einstellung kann festgelegt werden ob bei allgemeinem Aufruf von Clip (Befehl: {Clip}) ein bestimmter Publikations-Typ als Liste aufgerufen werden soll. Stelle ich z.B. "Blog" ein, wird bei Aufruf von "index.php?module=clip" automatisch auf die Einträge der Publikation "Blog" weitergeführt.

  • Default template

  • Max. items per page

  • Common templates

  • Development mode

Eine Besonderheit ist das Häkchen bei "Development mode", es ermöglicht die Einblendung eines "Debug-Fensters". Diese Einstellung sollte erst deaktiviert werden, wenn alle Publikationstypen, Templates und Einstellungen zur Zufriedenheit funktionieren.

Wie schon bei der Installation angemerkt, legt man hier die grundsätzlichen Verhaltensweisen des Moduls fest. I.a.R. können hier die Voreinstellungen übernommen werden.

Hooks

Clip ist begrenzt "hook-fähig". Das heißt, das Modul kann Informationen anderer Module - basierend auf der aktuellen Clip-Seite - empfangen, bearbeiten und erzeugen. Möglicherweise in Zukunft auch selbst anderen Modulen zu Verfügung stellen. Daher unterscheidet man zwei Arten von Hooks:

    • subscriber-Hooks
    • provider-Hooks
    • filter-Hooks ist eine dritte Art, die sich ausschließlich mit der Darstellung von Informationen aus anderen Modulen oder dem eigenen Modul Clip beschäftigt.

Für weitere Informationen zu Hooks: Hooks

Um für das Modul Clip Hooks zu aktivieren, kann der entsprechende Menü-Eintrag auf der admin-Seite aufgerufen werden und bietet dann eine Einstellungsseite wie die folgende an:

[[/images/Hooks_-Clip-Administration-_PorzellanKompass.png]]

Es zeigen sich auf der Einstellungsseite drei Bereiche: Die subscriber-Hooks (Angehängte Bereiche), die provider-Hooks (Verfügbare Bereiche), und filter-hooks.

I.a.R. wird der Bereich Angehängte Bereiche auf der linken Seite genutzt. Die von anderen Modulen auf der rechten Seite dargestellten Hook-Möglichkeiten (Verfügbare Bereiche) lassen sich per Drag+Drop in die jeweiligen Felder der linken Seite ziehen und aktivieren für Clip den entsprechenden Hook ohne weitere Nachfrage. Für das dargestellte Beispiel hieße das, ziehe ich die EZComments Comment Hooks in das linke Feld unter das Feld Blog Item Hooks, mache ich für Einträge im Blog automatisch die Kommentar-Funktion des Moduls EZComments verfügbar. Bei Aufruf eines Blog-Eintrags wird also ein Kommentarfeld und ggf. vorangegangene Kommentierung erscheinen.

Kategorien

Clip unterstützt das Arbeiten mit unter Zikula systemweit erreichbaren Kategorien. Um dies für die Publikationen unter Clip verfügbar zu machen, sollten im Kategorienbaum von Zikula Einstellungen vorgenommen werden. Bei der Installation hat Clip im Kategorienbaum von Zikula schon Eintragungen vorgenommen:

Unterhalb des Eintrages Modules hat Clip den Eintrag Topics mit entsprechenden Untereinträgen vorgenommen. I.a.R. wird dies für die eigenen Publikationstypen unbrauchbar sein. Für die eigenen Publikationstypen lassen sich einerseits eigene Kategorie-Strukturen erstellen, oder vorhandene Kategoriestrukturen für Clip verfügbar machen. Über das Arbeiten mit Kategorien informiert der Eintrag Kategorien. Für das Modul Clip ist bei der Bearbeitung der Kategorien der Abschnitt Kategorienzuweisung interessant. Das Modul stellt verschiedene Möglichkeiten der Kategorienzuweisung zur Verfügung:

Ausgehend von den Clip-Tabellen-Typen

  • clip_grouptypes
  • clip_pubfields
  • clip_relations
  • clip_pubtypes
  • clip_workflowvars

können Zuordnungseigenschaften definiert - der Standard heißt "main" - werden und diese an der gewünschten Stelle in den Kategorienbaum eingehängt werden. In einem meiner Projekte sieht das z.B. so aus:

Es ist also möglich, vorhandene Teile des Kategorie-Baumes (auch anderer Module) in Clip zu verwenden, oder eigens für die Publikation unter Clip erstellte zuzuordnen. Unterschieden werden die Zuordnungen nach dem Namen der Eigenschaft. Dies wird weiter unten wichtig für die Zuordnung von Listenfeldern. Eine Begrenzung der Anzahl von Zuordnungen ist mir z.Zt. nicht bekannt.

Berechtigungen

Das Berechtigungs-System innerhalb des Zikula-Cores ist auch für Clip zuständig. Den Zugriff auf die Elemente des Clip-Moduls können innerhalb des Zikula-Berechtigungs-Systems angelegt werden.

Templates

Die Templetes von Clip werden in ./config/templates/Clip gespeichert. Jder Pubtype hat dort einen Unterordner mit dem Namen, den man in der Administration selber definieren kann. Templates können auch im Ordner ./themes// abgelegt werden. Die wichtigsten Templates sind:

display.tpl

Dies ist das Template für die Einzelansicht eines Eintrages. Die einzelnen Einträge der Listansicht bieten meist den Aufruf dieser Ansicht für jeden einzelnen Eintrag.

form_all.tpl

Über dieses Template werden die einzelnen Datsätze mit Daten "befüllt". Es stehen die Eingabefelder zur Verfügung, die dem Typ des angelegten Feldes entsprechen (Checkbox, List, Text...)

list.tpl

Das ist das Übersichts-Template. Es listet in einer Schleife alle einzelnen Einträge auf. Von hier kommt man auch zur Detail-Ansicht.

main.tpl

Templates schöner machen

Was macht man, wenn kein Template gefunden wurde? Nach der Eingabe eines Datensatzes werde ich auf eine Seite weitergeleitet, die komische Felder ausgibt (core_urltitle, core_uniqueid, core_tid, core_pid). Wie macht man das schön?

Datum automatisch füllen

Manchmal möchte man ein Datumsfeld automatisch füllen lassen wenn die Form abgeschickt wurde. Zum Beispiel: Wann ein Eintrag hinzugefügt wurde. Das ganze macht man so: to be continued....

Kategorien

Dropdown oder MultipleSelects lassen sich in Clip einfach mit den Zikula Kategorien füllen. Dazu einfach die folgenden Schritte durchführen: 1. Kategoriebaum anlegen: Im Modul: Kategorien kann der entsprechende Kategoriebaum angelegt werden.

/images/clip_category_creation.png.png

Danach wird ein den "Kategoriezuweisungen" die Clip Verbindung hergestellt. /images/clip_category_to_clip_mapping.png.png Zu beachten ist die "Tabelle". hier muss immer clip_pubtypes stehen. Des weiteren muss der "Name der Eigenschaft" ein eindeutiger Bezeichner sein. Diesen wählt man später in Clip aus.

  1. Clip Fieldtype (Plugin) "Liste" anlegen

  2. Zusweisung vornehmen Einfach die eben erstellt Liste bearbeiten. Auf der rechten Seite taucht ein "editieren" Button auf

/images/fieldtype_list.png

wo man wie im folgenden Screenshot die Kategoriezuweisung durchführen kann.

/images/clip_fieldtype_list_category.png

Filter

Mit Filtern kann man sich entsprechende Listen seiner Publikationen zusammen bauen. Man kann in den Admin Eigenschaften der Publikation einen Standardfilter angeben, der generell für die öffentliche Liste angewendet wird. Wenn man zum Beispiel ein Publikationsfeld hat das eine Checkbox ist (Name: aktiv) kann man folgenden Filter setzen: aktiv:eq:0 was alle Einträge anzeigt, welche die Checkbox nicht gesetzt haben während aktiv:eq:1 alle Einträge anzeigt, die "nicht aktiv" sind, also die Checkbox angekreuzt haben.

Man kann aber auch dynamisch einen Filter anwenden, der die Listen dann entsprechend anpasst. Am einfachsten testet man die Filter über die URL, da Clip diese zum testen schnell entgegen nehmen kann. Einfach an die URL folgenden string anhängen: &filter=aktiv:eq:0. Schon kann man super schnell testen wie sich Clip und die Publikation bei den entsprechenden Filtern verhält.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.