Grundsätzliches

In der Datei /components/com_virtuemart/themes/default/theme.config.php stehen die Design-Vorgaben für das VM. Eingestellt werden diese über => Komponenten => VirtueMart => Konfiguration => Reiter _| Seite |_ im VM-Backend.

Üblicherweise gibt es eine Trennung in drei notwendige Scripte

  • Die sogenanten Controllscripte (controll). Das sind die Hauptsteuerungsscripte die die Ausführungslogik für eine anzuzeigende Seite enthalten. Diese inkludieren die Datenabfrage, i.d.R. abhängig von den Nutzerinteraktionen und erzeugen anhand der aus der DB gelieferten Daten die Anzeigedaten die an die Template-Scripte gefetcht werden.
  • Die Datenbankabfragescripte (model). Diese liefern dem Controlscripten die Daten aus der Datenbank. Hier werden die Queries für die Datenbankabfragen montiert.
  • Die Anzeigescripte (views). Das sind unserse eigentlichen Templatescripte. Üblicherweise sollte Designanpassungen ausschließlich hier vorgenommen werden.
  • Eine vierte wichtige Gruppe von Scripten, stellt in Bibliotheken diverse häufig und von verschiedenen Scripten benötigte Methoden zur Verfügung und entlasten somit den Programmieraufwand für die Controllerscripte.



Leider muss man aber dazu sagen, dass sich VirtueMart nicht konsequent an diesen 3teiligen Ansatz hält. Oft befindet sich auch in Templates noch zu viel Kontrolllogik oder in Control-Scripte zu viele Datenbankabfragen. Das wird sich sicher in zukünftigen Versionen stetig verbessern.

 

Design-Themen

In VirtueMart können jetzt verschiedene Themen mit eigenem Design erzeugt und eingestellt werden. Hier liegt z.B. das Standard-Template „default“: /components/com-virtuemart/themes/default/templates mit den jeweiligen Unterverzeichnissen für die Shopbereiche (Browse-Seite: /browse/, Auscheck-Seite: /checkout/, Produkt-Details: /product_details/ (mit den Flypages) etc.).

Um ein neues Thema zu stellen, wird einfach o.g. Ordner /default/ dubliziert und die Kopie dann umbenannt in z.B. /meinTemplate/. Dann wird in der Shop-Administration im Reiter _| Seite |_ im Bereich „Layout“ das neue Thema ausgewählt.

Formatierung über die Kategorien:

Prinzipiell kann die Darstellung festgelegt werden über die Shop-Konfiguration – Seite (s.o.) jedoch kann auch jede Kategorie zugewiesen werde:

  1. eine Browse-Seite
  2. eine Flypage-Seite
  3. die Anzahl der Produkte pro Zeile

Diese Einstellungen überschreiben dann logisch die Einstellungen für VM gesamt.

Formatierung über die Produkttypen

Schließlich ist es auch noch möglich über Produkttypen ein Formatierung vorzunehmen. Dazu muss für die Übersichtsseite und Detailseiten je eine abweichende PHP-Datei erstellt werden.

 

Browse-Seite

Alle Seiten zur Auswahl einer Kategorie oder von Produkten werden dargestellt als Listen. Wie diese aussehen sollen, wird in den Browse-Templates festgelegt.

Erzeugt wird sie durch das Script /administrator/components/com_virtuemart/html/shop.browse.php
Standardmäßig ist die Browse-Seite wie folgt formatiert:

 

Shop-Einleitungstext

Wenn bei Category Browse Page „managed“ ausgewählt wird, dann wird durch VM automatisch nach einer geeigneten browse-_.php gesucht. Das erfolgt abhängig vom Wert, der unter „Show x products per row:“ eingestellt wird. Soll dieser Automatismus nicht erfolgen, dann muss hier eine Datei ausgewählt werden. Sollte der Automatismus nicht so richtig funktionieren, dann sollte besser eine feste Wahl als Browse-Seite getroffen werden. Man kann aber durchaus einspaltig über den „Show x products per row:“ = 1 arbeiten und dafür eine browse_3.php wählen. Die Darstellung ist dann eben einspaltig sehr schmal – halt wenig sinnvoll aber mgl.
Die vorhandenen Browse-Seiten unterscheiden sich in folgendem:
browse_1.php: ???
browse_5.php: Verwendung von Tabellen

 

Flypage-Seite

Ist die Dateiansicht zur detailierten Anzeige von Einzel-Produkten/Artikeln.
Es kann aus bereits vorhandenen Flypages ausgewählt werden. Diese liegen im Verzeichnis /components/com-virtuemart/themes/default/product_details/ .Welche Flypage genutzt werden soll wird im VM-Backoffice eingestellt: => Komponenten => VirtueMart => Konfiguration => Reiter _| Seite |_ => Bereich „Layout“.
Entspr. kann durch kopieren einer Flypage-Vorlage und deren Modifikation auch eigene Designs erstellt werden.

Über die Template-Datei flypage-ask.tpl.php wird ein Kontaktformular angeboten, welches dem Kunden die Möglichkeit einbietet eine Frage zum Produkt zu stellen.

 

Aufbau der Flypages

flypage_new.tpl.php: Tabellenstruktur
garden_flypage.tpl.php: speziell für den Gartengeräte-Shop
flypage-ask.tpl.php: Ein Template mit zusätzlichem Button zum Aufruf einer Formulars „Fragen zum Produkt“
flypage.tpl.php: Standard-Template

 

Beispiel: Elemente auf der Flypage entfernen

Um auf einer Flypage die Nächstes-Vorheriges-Produkt-Navigation auszublenden, folgende Zeilen löschen:

1
2
3
4
5
6
7
8
if( $this->get_cfg( 'product_navigation', 1 )) {
 if( !empty( $previous_product )) {
 echo ''.shopMakeHtmlSafe($previous_product['product_name']).'';
 }
 if( !empty( $next_product )) {
 echo ''.shopMakeHtmlSafe($next_product['product_name']).'';
 }
}

 

 

 

Wenn Ihnen dieser Beitrag geholfen und viel Zeit gespart hat, zeigen Sie sich erkenntlich: Sie helfen mir, in dem Sie die Produktseiten meiner Sponsoren besuchen. Auch über eine Klick auf Google+1 oder Rückmeldungen freue ich mich, zeigt es mir doch, dass sich die Mühe für die Beitragerstellung gelohnt hat.