Pimcore Tutorial Teil 1a: Installation

Ich überlege schon seit längerem, ein mehrteiliges Pimcore Tutorial zu schreiben. Und jetzt ergibt sich vielleicht der passende Zeitrahmen.

Pimcore ist ein CMS, Rapid Development Tool, Asset Management, PIM und noch einiges mehr, basierend auf PHP. In älteren Versionen (bis Pimcore 4) basierte es noch auf dem Zend Framework (ZF Version 1.x). Seit Pimcore 5 bildet Symfony 2 die Basis, wobei es einen Backport für alte ZF basierte Module bietet. Pimcore wurde ursprünglich von der österreichischen Agentur Elements.at entwickelt. Für die weitere Entwicklung wurde das aber in ein eigenes Unternehmen ausgelagert, die Pimcore GmbH, welche ebenfalls in Salzburg, Österreich ansäßig ist.

Nun aber zum eigentlichen Thema, der Erstellung eines Projekts mit Pimcore (Version 5).

Wie bei jedem neuen Projekt steht zuerst die Installation, und darum soll es heute gehen.

Pimcore benötigt neben einem PHP-fähigen Webspace noch eine MySQL Datenbank (oder MariaDB). Die Datenbank muss das Charset utf8mb4 haben.

Pimcore bietet mehrere Möglichkeiten zur Installation. Zum einen kann man es über die Kommandozeile installieren, sofern man über einen SSH-Zugang verfügt. Dann kann man im entsprechenden Ordner, z. B. /var/www/projekt/web, das Paket herunterladen und entpacken.

Falls man als root angemeldet ist, sollte man, bevor man irgendetwas installiert, zum User mit entsprechenden Zugriffsrechten für das Webverzeichnis wechseln, z. B. www-data.

Wechsel ins Installationsverzeichnis:

Anschließend wird Pimcore herunter geladen und im Verzeichnis entpackt:

Das Pimcore-Archiv kann nun wieder entfernt werden. Es wird nicht länger benötigt.

Falls der Shell-Zugriff nicht ohne weiteres möglich ist, ist es alternativ natürlich auch möglich, sich das Pimcore-Paket unter https://pimcore.com/en/download herunterzuladen, lokal zu entpacken und via FTP auf den Server zu kopieren (beim lokalen Arbeiten natürlich in das Verzeichnis des Webservers). Hierbei ist lediglich zu achten, dass Pimcore außerhalb des Webroot installiert werden darf, da der web Ordner im Pimcore-Paket das eigentliche Webroot-Verzeichnis wird.

Jetzt hat man einige neue Ordner und Dateien in seinem Installationsverzeichnis. Der document root des vhost sollte auf den neu erstellten Ordner web im Installationsverzeichnis zeigen.

Pimcore InstallationsformularJetzt könnt ihr die Seite unter der konfigurieren URL aufrufen, z. B. localhost. Abschließend müsst ihr die Angaben zur Datenbank machen und der Pimcore Installer erledigt den Rest. Ihr könnt bei der Installation noch zwischen verschiedenen Profilen wählen, einem fertigen System mit Beispiel-Daten zu Objekten und Templates (mit oder ohne Twig) oder einem komplett leeren Pimcore-Projekt.

Danach könnt ihr euch unter der URL http://localhost/admin/login mit eurem gewählten Passwort in das Backend einloggen und euch mit den verschiedenen Optionen vertraut machen.

Im nächsten Beitrag beschreibe ich eine alternative Installations-Methode über Composer, da das mittlerweile bei größeren Projekten zum Standard geworden ist.

 

Pimcore Tutorials

Ich finde, es gibt derzeit immer noch viel zu wenige Tutorials zu Pimcore, welches es mittlerweile schon in Version 4 gibt. Dabei handelt es sich hierbei für mich immer noch um das eleganteste CMS auf PHP-Basis. Auch wenn das dahinter liegende Zend Framework immer noch in Version 1 dahin vegetiert, eine Portierung auf Version 2 ist einfach zu aufwendig und führt auch am Ziel vorbei, dafür wird mittlerweile für das Backend ExtJS 6 verwendet.

Ich muss mich seit einiger Zeit hauptsächlich mit Drupal und WordPress plagen. Nichts gegen diese beiden Systeme. Sie haben beide ihre Berechtigung, nur hierfür etwas zu Entwickeln macht keinen Spaß.

In letzter Zeit erhalte ich aber wieder vermehrt Anfragen für Pimcore und muss häufiger wieder Systeme hierfür aufsetzen. Und vor 2 Jahren wollte ich schon mal eine Tutorial Reihe zum Aufsetzen eines guten Basis-Systems schreiben. Und gerade juckt es mich wieder in den Fingern. Vielleicht hauche ich dem Block damit auch wieder ein wenig Leben ein.

Einen schönen Abend noch.

Platzhirsch Duisburg – Neues Projekt mit Pimcore

Vor einigen Monaten kam ich mal wieder zu einem Projekt, welches mit Pimcore umgesetzt wurde. Dabei handelt es sich um ein kleines Indie-3-Tages-Festival in Duisburg. Das ganze war quasi Nachbarschaftshilfe. 😉

Jedenfalls hat es mal wieder Spaß gemacht, etwas mit der aktuellen Pimcore Version umsetzen zu können. Und eine große Einarbeitungszeit für die Redakteure und Festival-Betreuer war auch nicht nötig.

Die Seite findet ihr hier: http://www.platzhirsch-duisburg.de/

Nächstes Jahr geht das ganze dann mit einer, in Details überarbeiteten Version, in die dritte Auflage 😉

platzhirsch-duisburg-start

Pimcore RC2.0 out now

Neue Login Maske Pimcore geht den nächsten Schritt, der Release Candidate (RC) 2.0 wurde jetzt veröffentlicht. Es basiert immer noch auf dem Zend Framework 1, für das auch gute Gründe angeführt werden. 

pimcore 2.0 is downward compatible to version 1, so it still based on ZF1 as it’s core framework. Why it’s not based on ZF2? Well, there are many good reasons why not:

  • pimcore is used in many very critical projects around the world, we can’t just drop the downward compatibility without an alternative.
  • ZF1 is stable and reliable, the fact that there’s now ZF2 doesn’t mean that ZF1 is actually bad.
  • And finally it takes a lot of time 😉

Zu den weiteren Neuerungen gehören:

  • New Admin UI
  • Targeting & Personas
  • Plugin Generator
  • Inheritance for localized fields
  • UUID support
  • Search & replace for relations
  • SQL reports & custom reports
  • Multiple dashboards
  • New Data type „Image advanced“ (Hotspots, marker & cropping)
  • PDF editable
  • XLIFF Export/import
  • Copy & paste of area bricks
  • Highres thumbnails
  • Document previews reloaded
  • Last opened elements
  • Fallback language
  • Use MySQL as default cache
  • Composer support
  • and numerous internal and performance enhancing features

Screenshot Pimcore Website Aber es wurde auch bereits ein Release Candidate 3.0 angekündigt, der dann auf Basis von Zend Framework 2 basiert.

Und als ob das noch nicht genug an Neuerungen war, haben die Macher von Pimcore auch gleich noch die Website neu gestaltet, was durchaus gelungen ist. Das ganze wirkt jetzt wesentlich freundlicher und vor allem moderner.

Pimcore Objekt Ordner Erstellung

Falls man mal ein Pimcore-Plugin schreiben sollte und man auf die Vorteile von den in Pimcore erstellten Objekten nicht verzichten möchte, kommt man manchmal auch nicht umhin Ordner in der Objekt Struktur automatisch anzulegen, sobald man das Plugin installiert, und natürlich sollte das ganze auch wieder entfernt werden, sobald man das Plugin wieder entfernt.

Das Erstellen eines Ordners im Objekt-Baum geht mittlerweile ziemlich einfach. Hierzu benötigt man lediglich einen Aufruf des Object_Services:

Um das ganze wieder zu entfernen, ist folgender Code nötig:

Neue Seite meines Arbeitgebers

In den letzten Wochen hatte ich kaum kaum Zeit mich groß um irgendwas zu kümmern, was dieses Blog hier anging, da ich beruflich doch ziemlich eingespannt war, zudem hatte ich im November noch zwei Wochen Urlaub, in denen ich Computer eher versucht habe komplett zu meiden. Jedenfalls sind wir jetzt mit einer neuen Unternehmens-Webseite am Start, die man auch unter www.rsk.com findet. Basis des Projekts ist wieder das CMS Pimcore.

Auschnitt Webseite

Die Seite ist noch nicht ganz fertig. Es fehlen noch einige Kleinigkeiten, die aber wegen eines festen Abgabe-Termins hinten angestellt werden mussten. Alles in allem ist es eine Single-Side-Page, was auch immer man davon halten mag. Optisch hat es sicher Vorteile, von den Ladezeiten sind hier aber Abstriche zu machen. Ach, und irgendwie muss man dann auch noch die Javascript-Verweigerer irgendwie außen vor lassen. Ich muss zugeben, ist nicht so meine Welt, aber na ja, dennoch kann sich das Ergebnis jetzt schon sehen lassen (vor allem im Vergleich zur alten Seite) und reichlich bei gelernt habe ich zwangsläufig auch bei der Umsetzung, vor allem im Bezug auf Ajax.

Nebenbei: Ich habe vorhin mal Testweise Javascript deaktiviert und zu meiner Überraschung sieht man noch erstaunlich viel. Ok, die Funktionsweise der meisten Elemente ist quasi im Eimer, aber immerhin sieht man noch die wesentlichen Inhalte und die auch noch nah am eigentlichen Layout.

Neben dieser Seite gab es natürlich auch noch einige Kundenpräsenzen zu betreuen, so dass für eigene Projekte weder die Zeit noch Lust vorhanden waren. Ich hoffe, im neuen Jahr wird es hier etwas entspannter, denn ich hätte schon gern mal wieder Lust auf ein eigenes Projekt.

Ein weiteres Projekt auf Pimcore Basis

Vor zwei Wochen haben wir das zweite Projekt auf Pimcore Basis gelauncht, NISSAN in Berlin (www.nissan-in-berlin.de). Hierbei handelt es um den ersten Teil einer Multisite-Lösung, da neben Berlin in späteren Stufen noch andere Bundesländer folgen werden, die alle auf der gleichen Basis beruhen. Sprich, der Pflegeaufwand wird minimiert. Das meiste wird hier mit dem doch recht mächtigen Objekt-Modell von Pimcore gelöst, mit dem nahezu alle Inhalte, wie Events, Angebote und eben die jeweiligen Händler abgebildet werden. Lediglich die News werden via RSS von einer externen Quelle eingespeist.

Bei dem Projekt fiel mir auf, dass es äußerst ungünstig ist, Snippets den Default-Controller zuzuweisen, vor allem dann, wenn er in seiner Init-Methode ein Layout zugewiesen bekommt. Wie ich letztens im Pimcore Forum sah, bin ich aber nicht der Einzige, dem so was passiert ist.

Startseite von NISSAN in Berlin

http://www.nissan-in-berlin.de

Projekt Nummer 1 auf Pimcore Basis

Vor einiger Zeit habe ich das erste Projekt mit Pimcore umgesetzt, ein Auftritt für unseren Kunden Nissan. Hierbei ging es um eine Informations- und Bestellplattform für Webauftritte der zahlreichen Nissan Händler in Deutschland, Österreich und der Schweiz.

Der Auftritt befindet sich unter www.nissan-haendler.de.

Startseite von www.nissan-haendler.de

www.nissan-haendler.de

 

Das war eine gute Basis, um das Pimcore-CMS kennen zu lernen. Ich kann es jedem ans Herz legen, dem Systeme wie Drupal oder Typo3 zu starr sind.