Korrekte Initialisierung von VM im Shop-Frontend
Es ist ganz wichtig, dass VirtueMart 2 korrekt initialisiert und somit in das Joomla-Framework eingebunden wird. Leider ist das mit einer einfachen Installation von VirtueMart nicht gleich gegeben. VirtueMart ansich funktioniert dann zwar grundsäztlich, aber es gibt diverse Feature, speziell von anderen Joomla-Erweiterungen (z.B. Sitemaps, div. Module, Suchfunktionen usw.), die erst dann korrekt funktionieren. Bei der Initialisierung geht es im Kern darum, dass Joomla-Erweiterungen in der Lage sind VirtueMart zu finden, so dass deren Produkte und Kategorien gelesen werden können. Das geht zum einen nur dadurch, dass Virtuemart im Hauptmenü eingebunden ist und zum anderen dieser Menüeintrag vom richtigen Typ ist.
Konkret sieht es so aus, dass wir im Mainmenu eine Virtuemart-Komponenten-Eintrag einbinden der auf den Type Kategorie-Layout verweist. Ich möchte nicht beschwören, dass der Menüeintrag auch in ein anderes Menü erfolgen kann, aber ich bin mir sicher, dass es exakt dieser Menütyp sein muss. In der Typ-Auswahlliste steht er bezeichnet als Kategorie Layout. In der Liste der Menüeinträge eines Menü steht in der Spalte Menütyp dann VirtueMart » Kategorie Layout. Es sollte die unterste Shop-Kategorieebenen gewählt werden.
Bedeutung diverser VirtueMart 2 Template-Scripte
Nachfolgend eine Aufstellung der Views-Scripte von VirtueMart 2. Diese Scripte befinden sind alle in Unterverzeichnissen von components/com_virtuemart/views/. In den dortigen Unterverzeichnissen gibt es dann immer ein Verzeichnis /tmpl/ und den darin befindlichen üblicherweise default.php und/oder default_teiltemplate.php heißenden Scripten. Jedes dieser Scripte ist verantwortlich für die Darstellung eines Shopbereiches oder einer einzelnen Shopfunktion. Gegliedert sind diese zusätzlich für die Shopbereiche in Unterverzeichnisse.
Entspr. des MVC-Models, welches in Joomla! und VM 2 umgesetzt ist, sind das die Viewbestandteile der Komponente und unterstützen damit auch konsequent das Template-Overriding von J!. D.h., jedes hier vorhandenen Scripte kann zusammen mit seinem Unterpfad in das Verzeichnis templates/Ihr-Template/html/com_virtuemarte/ kopiert werden. Dort kann es nach eigenen Wünschen und Bedürfnissen modifiziert werden, ohne Angst haben zu müssen, dass ein späteres VM-Update diese Templatescritpe überschreibt. Nebenbei: Man könnte das Oberriding von Joomla auch ignorieren und statt dessen kann man für einige default.php-Scripte auch anders benannte Scripte im gleichen Verzeichnis ablegen. In der Shop-Konfiguration könnte man dann statt der default-Style diese anderes benannten Style-Scripte zuweisen. Das ist jedoch nicht ganz konsequent und die Struktur des Template-Overridings ist transparenter.
Leider erschließt sich bei der Menge an Templates die VM 2 benötigt nicht immer allein aus der Dateibezeichnung, wofür welches Templatescript verantwortlich ist. Eine Dokumentation dazu habe ich nicht gefunden, weshalb ich mir für meine tägl. Arbeit mit VM 2 diese Übersicht aufbaue. Diese Aufstellung ist folglich nicht vollständig, sondern wächst mit meinem Erkenntnisstand als Protokoll.
Pfad Bereich (entspr. view-Parameter) |
Bedeutung Bereich |
Script Datei |
relevante URi-Parameter | Bedeutung Script |
askquestion | Produktanfragen | |||
cart | Warenkorb | default_pricelist.php |
Ein typischer Fall von unglücklich gewähltem Dateinamen, denn dass Script macht mehr als nur und überhaupt Preise aufzulisten. Neben der Tatsache dass es Liste der Warenkorbeinträge einbettet, befinden sich in diesem Script auch:
|
|
categories | Kategorien | |||
category | Kategorien und Produkte der Kategorie | default.php | Das ist das Haupttemplate zu Anzeige einer Kategorieseite. Es stellt sowohl die Unterkategorien der gewählte Startkategorie da als auch die Produkte in der Kategorie. | |
Nur Unterkategorien einer Kategorie | categories.php | Alternativ zum default.php kann dieses Template ausgewählt werden (entweder im Menü-Punkt des Menüs vom Typ Kategorie Layout, oder in der Kategorie-Konfiguration). Bei diesem Template werden nur die Unterkategorien ohne Produkte der angezeigt. | ||
invoice | Rechnung | |||
manufacturer | Hersteller/Lieferant | |||
orders | Bestellungen | |||
PDF-Ausgaben | ||||
pluginresponse | Plugin-Rückmeldungen | |||
productdetails | Produkt-Dateilseite | |||
recommend | Weiterempfehlen | |||
state | ||||
user | Nutzer/Kunden Verwaltung der Kontodaten sowie Rechnungs- und Lieferadressen |
login.php |
view=user |
Blendet über dem Warenkorb ein Loginformular ein, welches dem bereits registrierten User die Möglichkeit gibt sich schnell anzumelden. Es enthält die Eingabefelder für Bentuzername und Passwort, die Links für vergessene Benutzernamen und Kennwörter und eine an-mich-erinnern-Checkbox sowie den Submitbutton. Wenn über die J!Menü-Funktion Einträge hinzugefügt werden, dann findet man als Typ unter der Komponente VirtueMart auch den Menüeintragstyp "VirtueMart Kontenpflege". Der so erzeugte Link ruft ebenfalls diese View auf wenn der User noch nicht eingeloggt ist, jedoch solo - ohne die zusätzlichen Anzeige des Warenkorbes.
|
user | edit.php |
view=user |
Seite "Ihre Kontodaten", wird aufgerufen, wenn ein eingeloggter User seine Kontodaten bearbeiten will. Beginnt mit einer Anrede und einem Logout-Button aus dem Login-Formular (s. login.php). Der Block für die Kundeninformation enthält die Berechtigungsebene (normalerweise "shopper") und die Kundennummer, die leider diese exorbitant lange 32stellige Nummer sein kann. Dieser Block wird erzeugt durch das subview edit_vmshopper.php. Dann wird das Formular mit der Nutzerfeldern eingefügt (s. edit_address_userfields.php). Zukünftig sollen hier auch noch die diesem User zur Verfügung stehenden Zahlarten angezeigt werden. Abschließend wird ein schlecht gestylter Block mit dem Link für die Eingabe der Lieferadressen angezeigt. |
|
user | edit_address.php |
view=user |
Dieses Script dient zur Editieren einer konkreten Adresse - kann eine Lieferadresse oder oder Rechnungsadresse sein. | |
user | edit_address_userfields.php |
|
||
user | edit_address_addshipto.php |
view=user |
Ist nur ein winziges Script welches den Link zum Aufruf der Seite zur Einpflege einer neuen Versandardressen ausgibt (leeres Formular von s. edit_address.php), eingeschlossen von einem Fieldset. Dieses wird sowohl unter dem Formular für die Userdaten als auch unter dem Formular für die Eingabe/Pflege der einer Versandadresse eingeblendet. |
|
user | edit_vmshopper.php |
|
Erzeugt den Block mit den Shopper-Informationen (Benutzerstatus und Kundennummer) als Fieldset. Eigentlich ist diese Ausgabe entbehrlich. | |
vendor | Shopbetreiber | |||
virtuemart | Shop-Startseite |
Wenn Ihnen dieser Beitrag geholfen und viel Zeit gespart hat, zeigen Sie sich erkenntlich: Ü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. Schenken Sie auch den Produktwerbungen Ihre Beachtung.