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.

Der Beitrag bezieht sich auf VirtueMart in den Versionen 1.1.x und Joomla 1.5.x. In späteren Versionen kann das anders gelöst sein.

So muss dabei vorgegangen werden - Lösungen

Unterschieden werden muss, hierbei was geändert werden soll:

  • Zum einen häufig der Standardwert zur Anzahl der zu zeigenden Produkte, wenn vom User kein eigener Wert ausgewählt wurde. Also der LIMIT-Wert.
  • Andererseits kann mitunter auch die Pulldownliste mit ihren möglichen Optionen geändert werden müssen.
  • Ebenfalls ist es möglich beide Dinge ändern zu müssen, weil z.B. ein Wunsch-Limit-Wert nicht Bestandteil der Optionen-Liste in den Pull-Down-Listen ist.



Hier sind die Scripte die dafür relevant sind:

Script Variable
(ca Zeile)
Bedeutung
/configuration.php  $list_limit
(6)

In der Joomla-Konfigurationsdatei kann mit diesem Wert der Start/Default-Limit-Wert eingestellt werden.

Dieser Wert wird auch von VM genutzt. Dieser Sachverhalt ist bei den VM-Pulldownlisten zu beachten, denn dieser Startwert muss dann auch Bestandteil in den VM-Pull-Down-Listen-Optionen sein!

Dieser Wert muss natürlich nicht hart im Script geändert werden, sondern kann über die Joomla-Admin-Konfiguration unter dem Registerreiter Site geändert werden.

/administrator
/components
/com_config
/controllers
/application.php
$listLimit
(90)

Wenn Sie einen $list_limit - Default-Wert haben möchten, z.B. 300, der in der Auswahlliste der Joomla-Konfiguration nicht enthalten ist, dann müssen Sie die Optionenliste ändern. Das läßt sich nicht konfigurieren, sondern muss durch Scriptänderungen hart kodiert werden, durch Ändern der Array-Elemente von $listLimit. Leider auch noch in diesem Joomla-Core-Scripte.

/administrator
/components
/com_virtuemart
/classes
/pageNavigation.class.php
$steps
(55)
$limits
(60f.)

Dieses Script ist innerhalb von VirtueMart verantwortlich für die Ausgabe der Pull-Down-Listen. $steps ist ein Array mit den möglichen Optionswerten.

In den nachfolgenden Zeilen wird das Array $limits abhängig von div. Bedingungen gefüllt. Diese bedingten Werte müssen ggf. angepasst werden.

Beachten, dass zwischen den Joomla- und den VM-Limit/Step-Parametern Beziehungen existieren und entsprechend verwendet werden müssen. Idealerweise sind beide Step-Arrays identisch in ihren Elementen. Zumindest sollte der Joomla-Default-Wert auch Bestandteil in der VM-Optionenliste sein.