ZOO - CCK Komponente für Joomla!

Geschrieben von Tom   
Samstag, 4. April 2009
Beitragsinhalt
ZOO - CCK Komponente für Joomla!
ZOO Konzept
ZOO Struktur und Events
ZOO Templates und Overrides
ZOO Elemente
ZOO als CCK
ZOO für Entwickler
ZOO Fazit und Kommentare

CCK Fähigkeiten von ZOO

Der Begriff CCK stammt von dem Drupal Modul "Content Construction Kit". Wie in der Einleitung erwähnt, gab es unter Joomla! bereits einige Kandidaten, welche ein CCK für Joomla! umgesetzt haben oder es tun wollten.
Die Erstellung eigener Artikeltypen geht bei ZOO sehr flüssig von der Hand. Was unter Drupal "Content Types" heißt, sind bei ZOO "Artikeltypen". Dass ein Artikeltyp aus verschiedenen Elementen bestehen kann, leuchtet jedem ein und macht das Erstellen neuer Artikeltypen dank der freundlichen GUI Spaß.

Bei unserer Komponente bContent führte die nachträgliche Löschung von Elementen eines Artikeltyps teilweise zu Problemen. Bei ZOO tritt aufgrund der gleichen Architektur das gleiche Problem auf. Besitzen Sie bereits ein Menge Artikel eines bestimmten Typs und löschen nachträglich ein bestimmtes Element, verschwinden alle Daten dieses Elements unwiderruflich. Logisch, da für jeden Artikeltyp eine eigene Tabelle in der Datenbank angelegt wird. Jede Spalte der Tabelle stellt ein Element dar. Wird ein Element gelöscht, wird auch die Spalte gelöscht. Wir sind dem Problem begegnet, indem wir bestimmte Artikeltypen in Ihrer Struktur einfroren, nur Nutzer mit bestimmten Rechten diese beeinflussen können, und indem wir vor der Löschung eines Elements mehrfach Warnhinweise schalten (ähnlich der endgültigen Löschung eines Joomla! Artikels).

Das Design der Datenbank kommt uns sehr bekannt vor und ist meiner Meinung nach aus Performancegründen gut (bis auf die Kategorie-Tabelle wie gesagt). K2 zum Beispiel, macht das etwas anders. Hier werden alle Artikel, egal welchen Artikeltyps, in einer Tabelle gespeichert. Nur über ein JSON codiertes Feld dieser Tabelle werden die Elemente definiert. Ich bin sehr skeptisch, was diesen Ansatz betrifft. Ein Test von K2 steht allerdings noch aus.

Man muss ehrlicher Weise feststellen, dass vor jXtended, ZOO, K2, JoomSuite Content und bContent ein Google Summer of Code Projekt aus dem Jahr 2008 bereits vorgemacht hat, wie es gehen könnte. Ercan Özkayas "Extend" Komponente, hatte wohl manchen Entwickler (wie zum Beispiel uns) zu neuen CCK Komponenten inspiriert.

Artikel zu schreiben, welche auf bestimmten Artikeltypen basieren, ist bei ZOO also ein Kinderspiel. Zunächst wählt man seinen Artikeltyp aus und schon kann man alle Felder ausfüllen, welche man bei der Erstellung des Typs vorgegeben hat. Damit sollte jeder User klar kommen. Die neuen Artikel werden dann bestimmten Kategorien zugeordnet. Natürlich kann ein Artikel auch mehreren Kategorien zugeordnet werden.

ZOO Menülink Interessant ist, dass der Artikeltyp unabhängig von der Kategorie ist. Sie können also Artikel beliebigen Typs in die gleiche Kategorie einordnen. Natürlich macht das bei der Darstellung der Artikel im Frontend selten Sinn. Auch die Overrides müssen in so einem Fall darauf vorbereitet sein, mit den Elementen all dieser Artikeltypen umgehen zu können. Trotzdem finde ich auch hier den Ansatz in Ordnung. Eine Kopplung von Artikeltypen an Kategorien würde bei Standardusern zwar die eine oder andere Verwirrung vermeiden, allerdings ginge ein Stück Freiheit verloren. Das muss nicht sein.

Wichtig beim Umgang mit einem CCK ist, sich klar zu werden, dass man wirklich die komplette Kontrolle über die darzustellenden Inhalte hat. Diese Kontrolle ist jedoch eng an die Templates bzw. Overrides gebunden. Sie könnten also einen Artikeltyp "Ferienhaus" definieren, in dem Sie ganz genau festlegen, wie die verschiedenen Elemente angeordnet werden. Für die Ausrichtung des Bildes können Sie ein Select-Element mit den Werten links, mittig, rechts definieren. Falls das Ferienhaus einen Pool hat, können Sie ein Checkbox-Element nutzen, welches bestimmt, ob ein Swimmingpool Icon in der Artikelansicht dargestellt werden soll. Und falls es sich beim Betrachter der Website um einen registrieren Nutzer handelt, können sie im Override festlegen, dass das Video-Element dargestellt werden soll.

All diese Möglichkeiten bietet ZOO. Allerdings wird es für den nicht PHP-bewanderten Nutzer auch weiterhin nicht möglich sein, solch, recht einfache Handgriffe, im Override selbst vorzunehmen. Da sie auf die mitgelieferten Artikeltypen maßgeschneidert sind, zeigen die mitgelieferten Templates von ZOO nur einen Bruchteil der Möglichkeiten.



 

B01 realisiert zeitgenössische Online-Kommunikationsmittel.
Wir sind spezialisiert auf OSCMS und unterstützen unsere Kunden vom Konzept bis zum Launch mit Erfahrung und exklusiven Komponenten zur Umsetzung von Communitys, Shops, Portalen und Webseiten.

B01 Kunden

Unsere Ideen, unsere Produkte, unsere Kunden.

B01 empfiehlt:

ZOO Content Construktion Kit

ZOO CCK

Virtuemart Shopsystem

E-Commerce

Joomla SEO

SEO

Joomla Content Editor

Content Editor

Joomla Social Networking

JomSocial