Eigene Themes erstellen

      Eigene Themes erstellen

      Wenn man Änderungen an den vorgegebenen Themes (default/modern) vornimmt, dann ist es sinnvoll, diese in einem eigenen Theme zu sichern, damit diese nicht durch ein Update wieder gelöscht bzw. überschrieben werden. Daher sollte sich jedermann, der/die Magento einsetzt, auch mit den Themes beschäftigen.

      Die grundsätzliche Logik von Magento-Themes ist, dass es immer ein Default-Theme innerhalb eines Interfaces gibt. Bei Magento heisst beispielsweise das Standardinterface "default" und innerhalb dieses Standardinterfaces default gibt ein Theme, welches ebenfalls "default" heisst. Dieses Theme sollte man nach Möglichkeit nicht verändern, denn es wird stzandardmäßig upgedatet, was schon bei vielen Usern nach einem Update für böses Erwachen gesorgt hat.

      Aber zurück zu Theme-Logik vom Magento. Es werden immer alle Daten aus dem Default-Theme gezogen und durch die ersetzt, die im individuellen Theme hinterlegt sind. Daraus folgt, dass man im individuellen Theme auch nur die Dateien hinterlegen muss, die gegenüber dem Default-Theme verändert sind (sowie weitere Dateien, die im Default gar nicht erst vorhanden sind). Ein eigenes Theme kann also sehr groß, aber auch ganz klein sein, je nach Bedarf.

      Das ist eine sehr mächtige Funktion von Magento, denn man kann so nahezu alle Dateien variieren, ohne den eigentlichen Core oder das Default-Template zu verändern. Durch die eigenen Themes werden zudem die individualisierten Dateien geschützt, weil sie bei Updates nicht überschrieben werden.

      Jetzt muss man nur noch wissen, wo man den Hebel ansetzen muss.

      1) app > design > frontend > default > "individueller Themeordner"
      2) skin > frontend > default > "individueller Themeordner"

      Hinweis: Der übergeordnete Ordner "default" ist das Interface, worin die Themes verwaltet werden.

      Damit Magento weiss, welche Themes verarbeitet werden sollen, müssen diese im Backend unter

      System > Konfiguration > Gestaltung > Themes

      entsprechend hinterlegt werden. Es ist durchaus möglich, für app und skin unterschiedliche Themes auszuwählen, was aber für die Übersichtlichkeit nicht unbedingt ratsam ist.

      Zuletzt: Im individuellen Theme muss die Orderstruktur zwingend identisch mit dem Default-Theme sein, aber natürlich nur für die geänderten Dateien, der Rest ist ja eh nicht vorhanden ;)


      Mit besten Grüßen
      Ingo

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Ingo“ ()

      Wenn ich das alles richtig verstanden habe, müsste man allerdings noch erwähnen, dass sobald man sein Theme ändern möchte und dies nicht auf dem Default-Theme basieren soll, kein weiteres Theme installiert sein darf.
      Auch eine Kopie des Basis-Themes und spätere Modifikation bringt nichts, da so die Updatefähigkeit auf der Strecke bleibt.
      Das neu erstellte Theme würde dann, mit seinen alten Dateien, die neuen Dateien des Defauöt-Themes überschreiben.

      Bitte korrigiert mich, wenn ich hier nun Mist erzählt habe. ;)
      Eigene Themes sind in der Regel nicht updatefähig, da MagentoConnect nur "überschreiben" kann. Eine intelligente Update-Methode welche Veränderungen erkennen kann gibt es derzeit nicht, deshalb bringt Varien auch Diff-Files raus bzw. gibt Anleitungen zur Anpassung der eigenen Themes an die neue Version.

      Die Anzahl der installierten Themes spielt keine Rolle, so lange die Konfiguration korrekt ist.
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.

      rack::SPEED schrieb:

      Eigene Themes sind in der Regel nicht updatefähig, da MagentoConnect nur "überschreiben" kann. Eine intelligente Update-Methode welche Veränderungen erkennen kann gibt es derzeit nicht, deshalb bringt Varien auch Diff-Files raus bzw. gibt Anleitungen zur Anpassung der eigenen Themes an die neue Version.


      So meinte ich es auch. Deshalb bringt es nicht, den default/modern-Ordner zu kopieren, umzubenennen und dann Änderungen vorzunehmen. Dadurch das alle Dateien vorhanden wären, würden evtl. Änderungen an den Default-Dateien durch die alte Kopie überschrieben werden.
      Oder immer noch falsch?

      rack::SPEED schrieb:

      Die Anzahl der installierten Themes spielt keine Rolle, so lange die Konfiguration korrekt ist.


      Darf ich fragen, wie die Konfiguration aussehen müsste, damit das Modern-Theme als Default benutzt wird, aber außerdem das Default-Theme, Blank-Theme und Eigene-Theme (welches nur die Änderungen enthält) installiert sind.
      Angezeigt werden sollen dann das Eigene-Theme mit dem Modern-Theme als Grundlage.

      illuminatus26 schrieb:

      So meinte ich es auch. Deshalb bringt es nicht, den default/modern-Ordner zu kopieren, umzubenennen und dann Änderungen vorzunehmen. Dadurch das alle Dateien vorhanden wären, würden evtl. Änderungen an den Default-Dateien durch die alte Kopie überschrieben werden.
      Oder immer noch falsch?


      Naja, wird keine Kopie erstellt überschreibt das Update die Änderungen wortlos. Durch die Kopie passiert dies nicht und man kann ohne Angst um das Template die erforderlichen Änderungen einspielen. - Dieses Vorgehen wird auch im offiziellen Design-Guide vorgeschlagen, ich denke Ingo hat sich daran orientiert...

      illuminatus26 schrieb:

      Darf ich fragen, wie die Konfiguration aussehen müsste, damit das Modern-Theme als Default benutzt wird, aber außerdem das Default-Theme, Blank-Theme und Eigene-Theme (welches nur die Änderungen enthält) installiert sind.
      Angezeigt werden sollen dann das Eigene-Theme mit dem Modern-Theme als Grundlage.


      Es werden zuerst alle Themes installiert. Anschließend wird "modern" kopiert und bearbeitet. Anstatt die Änderung unter "Skin (Bilder / CSS)" einzutragen wird das Feld "Standard" mit dem Ordnernamen der bearbeiteten Kopie gefüllt.
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.

      rack::SPEED schrieb:

      Naja, wird keine Kopie erstellt überschreibt das Update die Änderungen wortlos. Durch die Kopie passiert dies nicht und man kann ohne Angst um das Template die erforderlichen Änderungen einspielen. - Dieses Vorgehen wird auch im offiziellen Design-Guide vorgeschlagen, ich denke Ingo hat sich daran orientiert...


      Ok, der Groschen wäre damit gefallen.

      Wäre es dann nicht am besten man installiert z.B. nur das Modern-Theme, erstellt ein neuen Themeordner und packt in diesen auch wirklich nur die eigenen Änderungen.
      Dann hätte man stets ein aktuelles Modern-Theme, welches individuelle angepasst wurde?
      Die Logik bei den individuellen Themes ist aber immer identisch: Es werden immer die Default-Dateien genommen, mit Ausnahme der Dateien, die im "neuen" Theme hinterlegt sind.

      Anders ausgedrückt: Magento nimmt sich zuerst die Dateien im definierten "neuen eigenen" Theme und alles was fehlt, wird dann aus dem Default Theme genommen. Daraus folgt, dass man in einem eigenen Theme nicht den gesamten Default-Ordner kopieren muss, sondern nur die Dateien, die gegenüber dem Default Theme verändert sind. Dadurch kann ein eigenes Theme dateitechnisch entweder nur aus einer einzigen Datei bestehen, es können aber auch hunderte Dateien sein. Bei mir sind es neben css-Dateien und einigen Grafiken insbesondere Dateien wie die price.phtml, wo ich die notwendigen Änderungen in Sachen "inkl. MwSt sowie zzgl. Versand" und dergleichen definiert habe. Wäre echt nervig, die Dateien immer wieder neu zu ändern, wenn ein Update eingespielt wurde. Zu beachten ist aber, dass die Ordnerhierachie immer eingehalten werden muss. Wenn sich eine Datei also in einem Unterordner des Themes befindet, dann müssen die Ordner entsprechend mit angelegt werden!

      Es ist eigentlich sogar noch trickreicher, man kann für unterschiedliche Bereiche von Magento auch unterschiedliche Themes definieren (wie es bei default und blue ja auch der Fall ist). Ich finde aber, das verwirrt nur. Wenn man blue übrigens verändert, kann es Sinn machen, doch den ganzen Ordner zu kopieren und umzubenennen, weil bei blue im gegensatz zu default ja schon sehr viel geändert wurde.

      Es bleibt zu hoffen, das es bald ein gutes deutsches Handbuch zu Magento gibt, wo diese Dinge (ich kratze ja selbst nur an der Oberfläche) mal genauer erläutert werden, ohne dass man immer gleich ein Übersetzungsprogramm benötigt :)
      @ Ingo

      Genau so hatte ich es im ersten Anlauf auch verstanden und nur so macht es auch wirklich Sinn.
      Dann ist es ja aber auch so, wie ich bereits geschrieben hatte, soll das neue, eigene Theme auf dem Modern-Theme basieren, dann darf kein anderes Theme installiert sein und der Ordner muss von modern in default umbenannt werden.
      Ansonsten wüsste ich nämlich nicht, wie die Konfiguration aussehen müsste.

      @rack::speed

      Danke für den Link. Das Buch scheint ganz gut zu sein.
      Allerdings wird auf die Theme-Erstellung laut Inhaltsverzeichnis nicht großartig eingegangen.