Sonntag, 17. Februar 2013

Lite Blog für OXID eShops

Den OXID Shop um einen Blog mit redaktionellen Beiträgen erweitern - ist das nur mit einen gesonderten Blogsystem möglich? Die Integration einer vollwertige Blog-Lösung ist mit einigem Aufwand verbunden und der OXID eShop selbst, so scheint es, bietet keine Lösung - oder doch?


Die OXID Bordmittel

Der Bereich Nachrichten/Neuigkeiten eignet sich ganz gut um kleinere Informationen oder Kurzmeldungen zu publizieren. Da alle Einträge, unabhängig davon, wie lang der Text ist, komplett und hintereinander als langer Bandwurm dargestellt werden, führen lange Beiträge schnell dazu, dass die Seite unübersichtlich wird.

Parallel dazu bietet der OXID eShop mit den CMS-Seiten die Möglichkeit auf einer eigenen Seite Informationen übersichtlich darzustellen. Allerdings gibt es keine Übersichtsseite, die die einzelnen CMS-Seiten zusammenfasst.

Was liegt also näher, als die beiden Elemente miteinander kombiniert zu verwenden?

Technische Vorbereitung

Bevor es mit dem eigenen Blog losgeht, sind noch ein paar technische Vorbereitungen notwendig. Diese dienen im Wesentlichen dem Bedienungskomfort der Shopbesucher und des Administrators.

Umbenennung in Blog

Als erstes wird die URL news/, die im Frontend "Neuigkeiten" und im Backend "Nachrichten" heißt, in blog/ umbenannt:
Im Backend (Admin-Bereich) das Menü Stammdaten - Grundeinstellungen auswählen und auf den Tab SEO wechseln und ganz unten im Abschnitt Statische URLs für die URL index.php?cl=news die Adresse blog/ für das Feld Deutsch und en/blog/ für Englisch eingeben oder falls der Eintrag noch nicht existiert, diesen neu anlegen.

Neuen Eintrag in der CMS-Liste

Um die Blog-Beiträge leichter von den anderen CMS-Einträgen unterscheiden zu können, empfiehlt es sich, die Blogs in einem eigenen Ordner zu organisieren. Dazu fügt man im Backend unter Grundeinstellungen - Einstellungen im Abschnitt Administrationsbereich in der Liste Ordner für CMS-Seiten einen zusätzlichen Eintrag hinzu:
CMSFOLDER_BLOG => #006000

Der Eintrag führt dazu, dass im Bereich CMS-Seiten in der Auswahlliste oben links ein weiterer Ordner zur Auswahl steht, und der Ordner in der Farbe grün (#006000) dargestellt wird.

Damit anstelle der internen Bezeichnung CMSFOLDER_BLOG ein lesbarer Text angezeigt wird, muss noch ein neuer Eintrag in der Datei cust_lang.php des Backends vorgenommen werden. In der Version 4.7 liegt die Datei im Ordner /application/views/admin/de für deutsch und in /application/views/admin/en für englisch , in älteren Versionen, ist sie im Ordner /out/admin/de bzw. /out/admin/en zu finden.
Die folgende Zeile legt als Übersetzung den Text Blog-Artikel fest:
'CMSFOLDER_BLOG' => 'Blog-Artikel',

Anpasung der Frontend-Texte

Im Frontend werden Nachrichten unter der Überschrift "Neuigkeiten" angezeigt. Damit dieser Bereich zukünftig ebenfalls als Blog bezeichnet wird, müssen auch die Texte für das Frontend angepasst, bw. durch eigene Texte überschrieben werden. Dies geschieht durch zusätzliche Einträge in der Datei cust_lang.php des Frontends (es gibt diese Datei also zweimal: Backend und Frontend). Die Datei ist in der Version 4.7 im Ordner /application/views/azure/de zu finden. Wird ein anderes Theme verwendet ist, so muss in der Regel anstelle von azure ein anderes Verzeichnis angegeben werden. Bei älteren Versionen ist die Datei im Verzeichnis /out/azure/de bzw. /out/basic/de, wenn noch das ältere Basic-Theme verwendet wird.
Folgende Zeilen sind eintragen:
'INC_LEFTITEM_NEWS' => 'Blog',
'NEWS_TITLE'        => 'Blog',
'NEWS_LATESTNEWSBY' => 'Aktuelle Beiträge',

Damit die Änderungen an den beiden Dateien wirksam werden, muss der Inhalt des Ordners /tmp gelöscht werden (aber nicht die Datei .htaccess). Bei reinen Textänderungen, also ohne eine Veränderung der TPL-Dateien, genügt es in der Regel nur die Dateien, die den Text lang im Dateinamen enthalten, zu löschen.

Bilderorganisation

Zum Speichern von Bildern, die in den Blogs verwendet werden, empfiehlt es sich einen eigenen Ordner anzulegen. Zum Beispiel den Ordner /pictures/blog.

Einen Blog-Eintrag erstellen


Im Backend den Menüpunkt Kundeninformation - Nachrichten auswählen und einen neuen Eintrag anlegen. Neben dem Veröffentlichungsdatum und der Überschrift, sollte als Text nur ein kurzer Text einen weiterführenden Link eingegeben werden. Dieser Link zeigt auf den vollständigen Blog-Eintrag (also der CMS-Seite):
<a href="[{ oxgetseourl ident="meineersteblogseite" type="oxcontent" }]">mehr...</a>

Anschließend kann im Bereich Kundeninformation - CMS-Seiten der vollständigen Blog-Beitrag erstellt werden. Der Blog sollte als "manuell" angelegt werden und dem Ordner Blog-Artikel zugeordnet werden.

Als weiteres sollten die SEO-Einstellungen des Blog-Beitrags angepasst werden, so dass die SEO URL den Präfix blog/ erhält. Beispiel: aus meinersteblogseite/ wird blog/meineersteblogseite/. Außerdem sollte die URL fixiert werden, da die zuvor geänderte SEO URL sonst bei jeder Textänderung wieder zurückgesetzt wird.

Bilder können ebenfalls verwendet werden, allerdings bietet der OXID eShop hier keine Funktionalität an, so dass die Bilder per Hand in den Ordner /pictures/blog hochgeladen werden müssen.
Anschließend kann man die Bilder mit der folgendenAnweisung eingebunden:
<img src="[{ $oViewConf->getPictureDir() }]blog/meinbild.jpg">

Zum Schluss noch der Backlink zurück zur Blogübersicht:
<a href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=news "}]">< Zurück zur Blogübersicht</a>

Die Umsetzung / ein Beispiel

Wie der Lite Blog für OXID dann in einem produktiven OXID eShop aussieht, kann das Ergebnis im Blog von Jaspona ansehen und ausprobieren.

Alternative

Natürlich ist die hier vorgestellte Lösung für Vielblogger sicherlich keine wirkliche Alternative, diesen empfehle ich mal einen Blick auf  TOXID zu werfen.

1 Kommentar:

  1. Mit diesem Modul kann man eine Navigation mit Subleveln erreichen:

    https://github.com/vanilla-thunder/vt-cmsstructure

    AntwortenLöschen