© saicle/Shutterstock.com
Individuelle und personalisierbare Websites mit pimcore 2.0

Meine Zielgruppe, mein Inhalt


Pimcore ist ein Open Source Enterprise CMF mit klarem Focus auf Time to Market von hoch individualisierten Websites und Webapplikationen und bringt alle dazu notwendigen Tools in einer Suite zusammen. Es positioniert sich damit ganz klar als Open-Source-Alternative zu bereits etablierten Systemen wie Adobe Experience Manager und Sitecore. Die vor Kurzem freigegebene Version 2.0 bietet unter anderem auch eine komplette Targeting und Personalisierungs-Engine, mit der sich Inhalte flexibel an einzelne Zielgruppen anpassen lassen.

In dem folgenden Tutorial wird Schritt für Schritt der Aufbau einer einfachen Website anhand der Beispieldaten von pimcore erklärt und anschließend einige Inhalte speziell an Zielgruppen angepasst. Die Beispieldaten beinhalten Templates, die auf dem beliebten Frontend-Framework Bootstrap in der aktuellsten Version 3 basieren, diese sind daher auch full-reponsive, einfach anzupassen und eignen sich ideal für die ersten Schritte mit pimcore.

Konzept, Idee und Anwendung

Da es sich bei pimcore um ein Content-Management-Framework handelt, das speziell für die Realisierung von professionellen und individuellen Lösungen entwickelt wurde, gibt es einige nennenswerte Unterschiede zu anderen gängigen CMS. Der größte Unterschied besteht sicherlich darin, dass es kein Out-of-the-box-System ist, das nur mit verschiedenen Plug-ins und Themes an die eigenen Bedürfnisse angepasst wird. Jeder, der bereits sehr individuelle Websites mit jenen Systemen umgesetzt hat, kennt sicher die Probleme, die beim Anpassen von bestehenden Themens und Plug-ins warten. Oft bedeutet dies Abstriche bei Funktionen und Design oder bestehende Module müssen zeitintensiv erweitert werden, wodurch sie dann oft auch die Updatefähigkeit verlieren. Pimcore setzt genau hier an und verspricht dadurch, den Workflow eines gesamten Projekts zu vereinfachen. So muss z. B. bei der Konzeption nicht auf die Funktionalitäten von bestehenden Plug-ins und Erweiterungen geachtet werden. Das Design wird ohne Rücksicht auf vorgegebene Layoutelemente oder Komponenten entwickelt und kann dann mit beliebigen Frontend-Technologien in HTML/CSS und JavaScript mit eigenem HTML-Markup umgesetzt werden, bevor dieses dann in pimcore integriert wird.

Einen kleinen Haken hat die Sache allerdings, da pimcore auf dem Zend Framework aufbaut, sollte man für anspruchsvolle Implementierungen sehr gute Kenntnisse in objektorientiertem PHP und den gängigen MVC-Frameworks haben, um schnell ans gewünschte Ziel zu gelangen.

Vorbereitungen und Installation

Um die Beispieldaten von pimcore zu installieren, benötigt man erst eine lokale Entwicklungsumgebung oder einen entsprechenden Webspace mit mindestens PHP 5.4 und MySQL 5.5 – detaillierte Informationen zu den Systemvoraussetzungen befinden sich auch im Wiki der Projektseite und können später auch noch direkt während der Installation geprüft werden. In den folgenden Schritten wird von einem lokalen Webserver (http://localhost) ausgegangen. Als Nächstes werden die Beispieldaten (pimcore.org/download) benötigt, nach dem Download wird das ZIP-Paket einfach im Document-Root entpackt. Anschließend kann der Installer bereits mit http://localhost/ im Browser aufgerufen werden. Für die Installation wird eine MySQL-Datenbank benötigt, die vorweg noch mittels create database 'pimcore-demo' charset=utf8; erstellt werden muss. Im Installer müssen nun nur noch die benötigten Felder für die MySQL-Verbindung und die gewünschten Adminzugangsdaten ausgefüllt werden. Bevor man die Installation startet, sollte man noch mit einem Klick auf „Check Requirements“ die Systemvoraussetzungen prüfen lassen. Gibt es bei der Prüfung keine rot markierten Einträge, ist alles in Ordnung und die Installation kann durchgeführt werden. Nach der Installation kann man sich mit den angegebenen Login-Daten bereits im Backend unter http://localhost/admin/ einloggen und sich ein Bild von der Adminoberfläche machen. Im Frontend unter http://localhost/ sollte eine Beispielseite angezeigt werden, und man kann sich durch die verschiedenen Beispiele klicken.

Die Ordnerstruktur

Bevor man loslegt, ist es wichtig, zu wissen, wo welche Dateien liegen und was welche Funktion hat. Pimcore setzt direkt auf das ZF (Zend Framework 1) auf – jemand, der Erfahrungen mit diesem Framework hat, wird mit der Ordnerstruktur auf Anhieb vertraut sein. Im Document-Root befinden sich nach der Installation drei Ordner, eine index.php (Bootstrapping) und eine .htaccess. Der Ordner /pimcore beinhaltet alle für pimcore notwendigen Bibliotheken sowie auch die ZF-Module für das Admininterface und darf unter keinen Umständen modifiziert werden. In /plugins können eigene Plug-ins installiert oder welche aus dem Plug-in-Hub heruntergeladen werden. Plug-ins sind wiederrum auch nur ZF-Module, die zusätzlich initialisiert werden. Am wichtigsten ist der /website-Ordner, der natürlich auch wieder ein ZF-Modul ist. Dies ist der Bereich, in dem die Implementierung der Website bzw. Applikation gemacht wird. Darin befindet sich ein Ordner für die Controller der Website (/controllers), die Viewskripte (/views) sowie auch Platz für eigene Modelle (/models) und Bibliotheken (/lib), die automatisch geladen werden, wenn diese mit PSR-0 kompatibel sind. Zusätzlich können auch statische Daten wie Grafiken, Style Sheets und JavaScripts direkt im Websiteordner (/static) abgelegt werden, dies ist allerdings kein Muss, sondern nur eine Empfehlung – da die Einbindung ohnehin manuell direkt im Template gemacht wird, spielt es keine Rolle, wo sich diese befinden.

Editierbare und frei gestaltbare Seiten

In pimcore werden editierbare Seiten Dokumente genannt, diese sind neben der Mediendatenbank (Assets) und den Datenobjekten (Objects) eines der Hauptmodule von pimcore. Dokumente werden dazu verwendet, um klassische seitenbasierte Websites in einer Baumstruktur zu erstellen, dazu stehen mehrere Typen von Dokumenten zur Verfügung, die die Arbeit mit den verschiedenen Inhalten erleichtern. Am wichtigsten ist der Typ Page, dieser stellt eine normale Seite dar, daneben gibt es noch so genannte Snippets für geteilte Inhalte wie Teaser und Sidebars sowie Ordner, Links, E-Mails und Hardlinks. Letztere dienen nur zur Organisation, haben eine definierte Funktion und können nicht mit eigenen Funktionalitäten belegt werden. Pages und Snippets dagegen haben immer einen Controller und eine Action zugewiesen sowie ein optionales Template (View) für den Fall, dass sich der Pfad zur View nicht automatisch aus Controller/Action ergibt oder man eine Action mit verschiedenen Vi...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang