Problembeschreibung

Solange man das SEF für VM nicht korrekt eingerichtet hat, wird man bei der Umsetzung zu SEF-Adressen immer wieder Fehler feststellen. Zu diesen Fehlern können z.B. solche Symptome gehören, dass trotz SEF noch immer Parameter an der URI hängen z.B. ?Itemid=0, oder aber dass das Shop-Kategorie-Menü auf der J!-Startseite andere URI erzeugt (z.B. dort enthalten noch /component/virtuemart/) als auf den Shopseiten selbst. Das sind typische Anzeichen dafür, dass hier was nicht zuende konfiguriert wurde.

Dabei ist die Umsetzung nicht damit getan, dass das J!-SEF aktiviert ist und das SEF auch in der VM-Konfiguration erledigt wird. Es sind weitere Schritte notwendig, die nirgends so richtig dokumentiert sind. Mit Englischkenntnissen und etwas Verständnis über die Funktionsweise und Fantasie, kann man sich die Lösung erlesen. Hier ein kurze Anweisung um dies schnell zu erreichen. 



 

Oben beschriebenen Probleme müssen nicht in jedem Projekt auftreten, z.B. dann nicht, wenn es im Hauptmenü einen Link zum Shop-Startseiten-Layout gibt. Und genau das ist eine der wichtigen Bedingungen die zumindest z.T. erfüllt sein müssen, damit das SEF funktioniert. 

 

Anleitung

  1. Unbedingt muss in der J!-Systemkonfiguration das SEF eingeschaltet sein.
  2. Auch im Virtuemart muss in der Konfiguration für diese Kompontente das SEF aktiviert sein, konkret unter dem Konfiguration-Registerreiter "SEF" muss die Option "SEF deaktivieren" auf off stehen.
  3. Nun sollte man unbedingt in einem Menü eine Menüeintrage z.B. "Online-Shop" anlegen und diesen als Menütyp verknüpfen mit dem Layout "Virtuemart Startseite". Genau das ist der wichtige Fakt. Es genügt z.B. nicht nur einen Menüeintrag zu der Kategorieübersicht von VM oder einem anderen Layouttyp anzulegen. VM sucht beim SEF genau nach diesem Typ und verwendet Ihn standardmäßig.

 

Wenn ich nun aber keinen Menüeintrag zur Shopstartseite will?

Ja, genau deshalb bin ich bei meinem Erstlingsprojekt unter J!2.5/VM2.0 über das SEF gestolpert, denn ich verlinke von meinem Menüpunkt "Online-Shop" i.d.R. gleich auf die Shop-Kategorie-Übersichtsseite und nicht zur VM-Startseite. Deshalb fehlte VM oder der J!-router.Class ein gesuchter Menüeintrag der die URI-Komponentenparameter (option=virtuemart) zu einem SEF-Komponentennamen umwandelt.

Wenn ich nun also keinen solch geforderten wie oben beschriebenen Menüeintrag auf meinen Seiten anzeigen will, muss ich tricksen. Dazu einfach ein neues Menü anlegen. Bei mir nennt sich das z.B. "Shop-Menu für SEF versteckt". In dieses neue Menü lege ich nun den oben beschriebenen Menüeintrag, nennen wir ihn "Shop Startseite" an, bei dem der Menütyp auf das Layout VM Startseite verweist. Dieser Menüeintrag muss mit der Zugriffsebnen public veröffentlich werden.

Da das Menü selbst aber an keiner sichtbaren Modulposition zugewiesen wird, wird es logisch auch nicht angezeigt. Das ist dem SEF-Allgorithmus aber egal, er funktioniert damit trotzdem ganz hervorragend.

 

Ein weiteres Problem - leere Produkt-Detailseiten

Der eine oder andere wird, sobald er das Joomla-SEF eingeschaltet hat feststellen, dass zwar der Aufruf der Kategorieseiten hervorragend funktioniert, aber sobald man eine Produkt-Detailseite aufrufen möchte heftig knirscht. Man erhält eine Projektseite, bei der zwar alles da ist aber der Virtuemart-Content-Bereich einfach leer bleibt.

Auch hier leistet sich VirtueMart wieder eine kleine, von der Sinnhaftigkeit schwer begründbare, Gehässigkeit.

In der SEO-Konfiguration von VirtueMart gibt es ein Optionsfeld "SEO Suffix". Das Feld ist üblich leer. Warum sollte man es auch füllen, wenn man bei Adressen in dieser Form /kategorieA/kategorieA/produkt.html landen will? Aber genau das ist das Problem. VirtueMart will hier einen Eintrag habe, sonst funktioniert es einfach nicht! Ein möglicher Eintrag wäre dann z.B. -details. Im Ergebnis sähe die URi dann so aus: /kategorie/produkt_detail.hml. Prinzipiell könnte man damit leben, aber

  1. Warum ist dieses Feld standardmäßig leer, wenn es doch ohne Eintrag gar nicht erst funktioniert?
  2. Warum ist diese Bevormundung notwendig? Vermutlich wird beim Parsen der SEF-Adresse dieser Suffix verwendet, um diesen Pfadteil als den zu erkennen, der auf das Produkt/die Produktdetailseite verweist.
  3. Und warum steht das nicht wenigstens im Tooltipp zum Optionsfeld?

 

Wenn Ihnen dieser Beitrag geholfen und viel Zeit gespart hat, zeigen Sie sich erkenntlich: Über einen Klick auf Google+1 oder Rückmeldungen freue ich mich. Zeigen Sie mir, dass sich die Mühe für die Beitragerstellung gelohnt hat. Schenken Sie auch den Produktwerbungen Ihre Beachtung, denn damit wird mein Aufwand für diese Beiträge refinanziert.