VirtueMart - Know How und Bugfixes

Know How für VirtueMart 1.1.x

Limit Standard und Schrittweite für VM 1.1.x ändern

Bewertung:  / 1

Problembeschreibung

In VirtueMart gibt es unter den Browse-Pages die Möglichkeit über Pull-Down-Listen die Anzahl der zu zeigenden Produkte pro Seite einzustellen. Das ist die Konfigurationsmöglichkeit, die dem Seitenbesucher angebot wird. Wenn man diese Pulldownliste und das Standardverhalten verändern möchte, kann das kompliziert werden. Dafür gibt es verschiedene Gründe:

  • Die Einstellungen sind nicht durchweg konfigurierbar, sondern teilweise hart in Scripten kodiert.
  • Die Werte kommen nicht nur aus der Komponente VirtueMart, sondern VM bezieht diese teilweise aus globalen Joomla-Parametern.

Wenn Erfolgsmeldungen in VirtueMart verschwinden

Bewertung:  / 2

Problembeschreibung

Mitunter passiert es, dass wenn Produkte in den Warenkorb gelegt werden in der Meldungsbox von VirtueMart für den Erfolg (oder auch Mißerfolg) die Box ohne einen Meldungstext ausgegeben wird. Erstmals war mir dieser Effekt bei VM 1.0.x aufgefallen bei einem Projekt welches ich per XAMPP local betrieb um dort zu entwickeln. Etwas genauer beschrieben: Die beim Klick auf den Warenkorb wird eine Meldungsbox (fancybox / facebox; mooprompt) eingeblendet. In diese Box wird der Success-Text der per Ajax empfangen wird eingespielt. Er meldet ob das Produkt zum Warenkorb hinzugefügt wurde oder nur die Menge erhöht wurde oder eben auch mal Fehlermeldungen. Diese Meldung blieb sporadisch aus.

 

Grundlagenwissen und Ursache für diese Erscheinung

Alle Meldungen die VirtueMart an den Browser zurückgeben will, werden zunächst in einem Array-Stack gesammelt ($vmLogger). Dafür gibt es entspr. Classenscripte zu finden unter administrator/components/com_virtuemart/classes/Log/ die das Handling dafür übernehmen und entspr. Objekte bereitstellten mit Ihren Methoden $vmLogger->tip, ~->notice, ~->debug, ~->error, ~->warning (die verschiedenen möglichen Errorlevel). Ebenfalls kann hierüber gesteuert werden wohin eine Ausgabe geloggt werden soll (Datei, E-Mail, Display, neu auch gesammelt über composite).

Rücksprung zur Ausgangsseite nach Warenkorb-Löschen in VirtueMart 1.1.x

Bewertung:  / 3

Zielsetzung und Problembeschreibung

Zunächst einmal die Beschreibung, was passiert soll: Wenn der Nutzer auf den Link „Warenkorb löschen" im Mini-Cart-Modul klickt, dann wird die aktuelle Seite auf der sich der User gerade befindet verlassen um die Warenkorb-Löschen-Seiten anzuzeigen. Nach Bestätigung der Löschabsicht erfolgt das Leeren des Warenkorbes und der User soll dann wieder zurück auf seine ursprüngliche Seite geleitet werden, von wo aus der im Modul den Warenkorb-Löschen-Link betätigt hatte.

Prinzipiell könnte man die Löschaktion auch über eine Ajax-Funktion ausführen und die Bestätigungsabfrage und ggf. Erfolgsmeldung in einem modalen Dialog anzeigen, dann könnte man sich die Rücksprungaktivitäten sparen. In unserem Fall soll dies abe über eine separate Seiten erfolgen. Das wiederum ist dann aber nicht so einfach, weil der Server die Information verarbeiten muss, von wo der User ursprünglich kam.

Hierbei gibt es weiterhin eine Besonderheit zu berücksichtigen. Solange wir komplette Seiten aufrufen, ist dem Server auch immer über die REQUEST_URI die Ursprungsadresse bekannt, so dass auch bei Anzeige des Warenkorb-Moduls die Rücklinkinfos abgefragt und weitergegeben werden können. Anders wenn der Warenkorb per Ajax aktualisiert wird, z.B. wenn ein Produkt zum Warenkorb per Ajax-Request hinzugefügt wird.

Pathway / Breadcrumbs in VirtueMart 1.1.x

Bewertung:  / 1

Wissenswertes zum Thema

Virtuemart nutzt zwei unterschiedliche Wege für die Anzeige des Pathways.

  • für die Browsepages nutzt es den regulären Weg, so wie er vom Joomla-Framework vorgesehen ist. Über das Objekt $mainframe mit seiner Methode appendPathWay() lassen sich dem Mainframe Pfad-Element übergeben/anhängen. Alle diese Elemente werden in einem Array gesammelt. Das Modul mod_breadcrumbs verwendet dieses Pfad-Array um daraus dann den Pathway zu erzeugen und an Modulposition auszugeben. Die Konfiguration der Anzeige dieses Pathway erfolgt folglich auch über das Modul / J!-Main-Template-Modulposition und dann projektweit. Will man also die Anzeige für diesen pathway ändern, muss man ins Modultemplate-Script modules/mod_breadcrumbs/tmpl/default.php.
  • Aus unerklärlichen, vermutl. rudimentären Gründen, wird das auf den Produktdetailseiten (flypages) nicht so gehandhabt. Zusätzlich zum Modul-Breadcrumbs kann man hier eine weitere Pfadanzeige veranlassen. Für die Flypage-Templates unter /product_details/ gibt es im Templateverzeichnis /common/ eine pathway.tpl.php, welche auf diesen Seiten die Pathway-Ausgabe formatiert. Die Konfiguration der Anzeige erfolgt hier über die VM-Backend-Konfiguration auf den Flypage-Einstellungen. Hier ist das An- und Abschalten möglich. Das Aussehen wird über das Template pathway.tpl.php gesteuert. Sinn macht das allerdings nicht, weil man dann mitunter die Pfadanzeige doppelt hat, einma über das Modul an Modulposition und zusätzlich innerhalb des Flypage-Inhaltes für das Produkt.

Vorausgewählte Multicheckbox-Felder in der VirtueMart-Benutzerregistrierung

Bewertung:  / 2

Problembeschreibung / Zielsetzung

Eigentlich recht flexibel ist die Möglichkeit benutzerdefinierte Felder für die Benutzerregistrierung in VirtueMart 1.x einzurichten. Unter anderem können auch Felder als sogenannte Mutlicheckbox-Gruppen angelegt werden, d.h. Eine Gruppe von Checkboxen, die intern als Information in einem gemeinsamen DB-Tabellenfeld geschrieben und verwaltet werden. Eine kleine Sache, die hierbei allerdings von den Entwicklern nicht vorgesehen wurde, ist die Möglichkeit ggf. einzelne Felder davon schon beim Aufruf des Registrierungsformulars als gesetzt vorauszufüllen.

Mit nachfolgendem Workaround soll dieses umgesetzt werden, wobei hier keine dynamisch/flexible Lösung geboten wird, sondern nur ein schnell intergrierte Lösung an einem ganz konkreten Fall - also hart kodiert.

 

Suche - Kategorien
Suche - Inhalt
plg_search_attachments
VM - Search, Virtuemart Product

Ihr Warenkorb

 x 
Ihr Warenkorb ist noch leer.