Update

OXID eShop 7.5 wird mit Visual CMS 10 ausgeliefert — keine manuelle Installation erforderlich. Das Content & Medien Bundle wird automatisch mit dem OXID eShop Update über Composer aktualisiert.

Wenn Sie von einer älteren OXID eShop Version aktualisieren (z. B. 7.3 mit Bundle 8), haben Sie vor dem Update zwei Möglichkeiten:

  1. Auf Ihrer aktuellen Bundle Version bleiben — behalten Sie Visual CMS 8 oder 9 und bleiben Sie kompatibel mit Ihren vorhandenen Inhalten.

  2. Auf Visual CMS 10 aktualisieren — erhalten Sie alle neuen Funktionen, aber Sie müssen Ihre vorhandenen Inhalte anschließend migrieren (siehe unten).

Note

Wenn Sie bereits OXID eShop 7.4.x mit Visual CMS 9 verwenden, können Sie direkt auf Visual CMS 10 aktualisieren, ohne Inhalte zu migrieren.

Hint

Visual CMS 11 ist auch für OXID eShop 7.5 verfügbar, wird jedoch nicht vom Metapackage 7.5.0 PE/EE abgedeckt. Wenn Sie ein Update auf Visual CMS 10 planen, lesen Sie auch die Hinweise unter Migration von Visual CMS 10 auf 11 und führen Sie beide Schritte in einem durch.

Versionskompatibilität

OXID eShop 7.5 unterstützt vier Visual CMS Versionen parallel:

  • Visual CMS 11 — neueste Version (Content & Medien Bundle 11, empfohlen)

  • Visual CMS 10 — Verbleib auf aktueller Version (Content & Medien Bundle 10)

  • Visual CMS 9.2 — Verbleib auf aktueller Version (Content & Medien Bundle 9)

  • Visual CMS 8.0 — Verbleib auf aktueller Version (Content & Medien Bundle 8)

Note

Die OXID eShop 7.5.0 Metapackages für PE und EE sind nur mit Visual CMS 8.0.2/9.2.1/10.0.1 kompatibel. Visual CMS 11 setzt Visual CMS 10 für dieselbe Shop-Version fort. Es enthält Verbesserungen, die nicht in Visual CMS 10 enthalten sein konnten, da sie auf Code-Ebene nicht abwärtskompatibel sind. Die gespeicherten Inhalte sind in beiden Versionen identisch, daher ist keine Inhaltsmigration erforderlich — siehe Migration von Visual CMS 10 auf 11. Um Visual CMS 11 mit dem Metapackage 7.5.0 PE/EE zu installieren, müssen Sie es entweder auf 10.0.1 aliassen oder eine eigene Root-composer.json erstellen.

Um auf Bundle 8 oder 9 zu bleiben, geben Sie die Zielversion in Ihren Composer-Einstellungen vor dem Update an. Details finden Sie in der Update-Anleitung der OXID eShop Dokumentation.

Migration von Visual CMS 10 auf 11

Visual CMS 11 ist für OXID eShop 7.5 entwickelt und ersetzt Visual CMS 10, es handelt sich also um ein Update innerhalb derselben Shop-Version.

Important

Wenn Sie von Visual CMS 8 oder 9 kommen, müssen Sie nicht zuerst auf Visual CMS 10 aktualisieren — Visual CMS 11 enthält dieselben Migrationsbefehle. Aktualisieren Sie direkt auf Visual CMS 11 (beachten Sie die Einschränkungen des Metapackage 7.5.0) und führen Sie anschließend die unter Migration von Visual CMS 8 beschriebene Inhaltsmigration durch.

Bestehende Inhalte müssen nicht migriert werden — das Speicherformat hat sich seit Visual CMS 9 nicht geändert und es gibt keine neuen Datenbankmigrationen. Shops, die Visual CMS im Standard-Auslieferungszustand verwenden, benötigen für die Migration ihrer Inhalte keine weiteren Schritte. Module, die eigene Widgets bereitstellen oder das Visual CMS-Rendering erweitern, müssen wie unten beschrieben angepasst werden.

Warning

Ein nicht angepasstes eigenes Widget führt direkt nach dem Update zu einem schwerwiegenden Fehler im Shop (Declaration ... must be compatible with ...).

Eigene Widgets

prepareTemplateParams() erhält den Render-Kontext als zusätzliches Argument. Fügen Sie es jedem eigenen Widget hinzu, das diese Methode implementiert oder überschreibt, und reichen Sie es an den übergeordneten Aufruf weiter:

// Visual CMS 10
public function prepareTemplateParams(GridItemInterface $gridItem): array
{
    $params = parent::prepareTemplateParams($gridItem);

    // ...
}

// Visual CMS 11
public function prepareTemplateParams(
    GridItemInterface $gridItem,
    GridRenderContextInterface $renderContext
): array {
    $params = parent::prepareTemplateParams($gridItem, $renderContext);

    // ...
}

Widgets, die BaseShortCode erweitern, ohne prepareTemplateParams() zu überschreiben, benötigen keine Änderung. Informationen zum Render-Kontext finden Sie in der Entwicklerdokumentation.

Erweiterungen des Renderings

Der Render-Kontext wird durch die gesamte Grid-Rendering-Kette gereicht. Daher müssen auch Decorators und Ersetzungen dieser Services angepasst werden:

  • GridRendererFacadeInterfacerenderGrid() erhält das Content-Objekt nicht mehr als Argument, es ist Teil des Render-Kontexts und über $renderContext->getContent() verfügbar

  • GridItemArrayRendererInterface, GridItemRendererInterface, TemplateParamsCalculatorInterface — der Render-Kontext wird als zusätzliches Argument übergeben

  • VetreeLogicInterface, PreviewServiceInterface — die Variablen des auslösenden Templates werden als zusätzliches Argument übergeben

Migration von Visual CMS 8

Wenn Sie von Visual CMS 8 aktualisieren, verwenden Ihre Inhalte das alte parse Format und müssen migriert werden, um mit Visual CMS 9 oder 10 zu funktionieren.

Wenn Sie von Visual CMS 9 auf 10 aktualisieren, ist keine Inhaltsmigration erforderlich — das Speicherformat ist bereits das neue tree Format.

Warning

Führen Sie vor der Migration eine vollständige Sicherung der Datenbank und des Dateisystems durch. So können Sie die Migrationsschritte sofort rückgängig machen, falls unerwartete Probleme auftreten.

Führen Sie nach dem Update diese Migrationsschritte aus:

  1. Visual CMS Inhalte migrieren — konvertieren Sie von parse zu tree Format (siehe Geänderte Codebasis unten).

  2. Medien-URLs zu IDs konvertieren — für Visual CMS und WYSIWYG-Inhalte (siehe Medien-IDs im Visual CMS und Medien-IDs im WYSIWYG Editor unten).

Die folgenden Abschnitte beschreiben jeden Schritt im Detail.

Geänderte Codebasis

Mit Visual CMS 9, eingeführt in OXID eShop 7.4, wurde die Codebasis der Visual CMS Inhalte von parse auf tree umgestellt. Dies verbessert die Speicherstruktur der Inhalte und bietet eine optimierte und stabile Codebasis für zukünftige Updates.

CMS-Inhalte mit der Zeichenkette veparse funktionieren im Frontend des Shops nicht mehr und können zu Fehlern führen. Daher ist es zwingend erforderlich, diese Inhalte von der parse- in die tree-Struktur zu migrieren. Dies ist ganz einfach mit dem folgenden Befehl der OE-Konsole möglich:

./vendor/bin/oe-console ddoevisualcms:migrate:veparse-to-vetree

Der Befehl konvertiert alle Inhalte, die veparse nutzen, zur neue vetree Struktur. Anschließend können diese wie gewohnt im Visual CMS-Editor bearbeitet werden.

CMS-Inhalte, die nur aus reinem HTML bestehen, werden nicht in die neue Struktur migriert. Die Option Widgets deaktivieren und nur Text verwenden ist nach dem Update automatisch aktiv. Dadurch wird sichergestellt, dass die Inhalte weiterhin wie vorgesehen funktionieren. Wenn Sie die Inhalte später mit Widgets bearbeiten möchten, können Sie die Option Widgets deaktivieren und nur Text verwenden deaktivieren und diese dann wie gewohnt modifizeren. Nach dem Speichern werden die Inhalte in der neuen tree-Struktur gespeichert.

Warning

Beim Wechsel zum Widget-Editor wird ein leerer Arbeitsbereich geöffnet. Ihre vorherigen Nur-Text-Inhalte werden beim Speichern überschrieben. Sichern Sie deshalb unbedingt den Text, den Sie behalten möchten, bevor Sie den Modus wechseln. Falls der Befehl nicht bekannt ist, lässt sich dies in der Regel durch eine erneute Aktivierung der Module beheben.

Einführung von Medien-IDs

Mit der Mediathek 4, eingeführt in OXID eShop 7.4, haben wir Dateipfade im WYSIWYG-Editor und Visual CMS zu Medien-IDs geändert. Dadurch wird sichergestellt, dass die Mediendatei auch nach Namens- oder Pfadänderung gefunden wird. Während die Pfaddefinition auch nach dem Update weiterhin funktioniert, empfehlen wir, vorhandene Inhalte zu konvertieren, um die neue ID-Definition zu verwenden und von den Vorteilen zu profitieren.

Medien-IDs im WYSIWYG Editor

Der WYSIWYG-Editor wird für verschiedene Inhalte im OXID eShop verwendet. Sie können vorhandene Inhalte von Medien-URLs zu IDs konvertieren, indem Sie die folgenden Befehle in der OE-Konsole ausführen:

Hint

Denken Sie daran, alle Felder für alle Sprachen zu konvertieren, z. B. OXCONTENT, OXCONTENT_1, OXCONTENT_2 usw., wie im ersten Beispiel gezeigt.

  1. Allgemeine Inhalte wie CMS-Seiten:

    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcontents OXCONTENT
    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcontents OXCONTENT_1
    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcontents OXCONTENT_2
    (...)
    
  2. Produktbeschreibungen:

    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxartextends OXLONGDESC
    
  3. Kategoriebeschreibungen:

    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcategories OXDESC
    
  4. Zahlugsartbeschreibungen:

    ./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxpayments OXDESC
    

Sie können andere WYSIWYG-Inhalte, wie z. B. benutzerdefinierte Datenbankfelder, mit dem Befehl migrieren, indem Sie die korrekten Werte für Folgendes übergeben:

  • Die Datenbanktabelle mit den zu konvertierenden Daten.

  • Der spezifische Feldname in der ausgewählten Datenbanktabelle.

  • Der eindeutige ID-Schlüssel (Primärschlüssel) der Tabelle. Der Standardwert ist OXID.

./vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids <table-name> <field-name> <table-id-key>

Medien-IDs im Visual CMS

Das Visual CMS enthält Widgets für Medien, wie das Bild-Widget oder die Galerie. Sie können die Medienpfade in diesen Widgets einfach konvertieren, indem Sie den folgenden Befehl in der OE-Konsole ausführen:

./vendor/bin/oe-console ddoevisualcms:migrate:urls-to-ids

Alt-Text-Platzhalter im WYSIWYG Editor

Important

Dieser Befehl steht ausschließlich in WYSIWYG-Editor 7 (Content & Medien Bundle 10) zur Verfügung. Er wurde nicht auf WYSIWYG-Editor 6 (Bundle 9) oder ältere Versionen zurückportiert.

Mit WYSIWYG-Editor 7 können Alt-Texte von Medien-Bildern sprachabhängig aus der Mediathek gezogen werden. Der folgende Befehl ersetzt leere oder fehlende Alt-Attribute in bestehenden Inhalten durch den Platzhalter oeMediaAlt:

./vendor/bin/oe-console ddoewysiwyg:migrate:alt-texts <table-name> <field-name> <table-id-key>

Die Argumente sind identisch zu ddoewysiwyg:migrate:urls-to-ids:

  • Die Datenbanktabelle mit den zu konvertierenden Daten.

  • Der spezifische Feldname in der ausgewählten Datenbanktabelle.

  • Der eindeutige ID-Schlüssel (Primärschlüssel) der Tabelle. Der Standardwert ist OXID.

Hint

Bestehende, manuell vergebene Alt-Texte werden nicht überschrieben. Der Befehl gibt am Ende eine Liste der Bilder aus, die einen benutzerdefinierten Alt-Text enthalten, damit diese bei Bedarf manuell geprüft werden können.