Neu Plugin - Templateanpassungen wie im eigenen Template möglich?

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

knackig

Sehr aktives Mitglied
17. November 2011
556
29
Nordhessen
#1
Hallo,

ich möchte mir ein Plugin schreiben (hauptsächlich für mich als Übung und dabei noch was praktisches für den Shop basteln), das folgendes bewirkt:

Ich habe viele Artikel, bei den Größen angegeben werden müssen. Um den Kunden eine Anleitung zu geben, möchte ich pro Artikel (steuerbar in der Wawi via Attribute mit Werteliste, wobei Wert = CMS-Seiten-Link) einstellen können, dass über der Variantenauswahl ein Button (zB. "Größentabelle") erscheint. Die CMS-Seite soll dann mit EVO-Boardmitteln als Modal Window erscheinen. Als Template-Änderung geht es sehr einfach und funktioniert gut. Nun möchte ich es aber als Plugin verpacken um es vom Template unabhängig zu machen. Nun meine Frage:

Kann ich mit einem Plugin auch solche Änderungen wie im Template machen, indem ich Blöcke austausche oder vor den Blöcken was dranhänge? Meinen Button habe ich mit {block name="productdetails-info-variation" prepend} in der /productdetails/details.tpl eingefügt. In den Docs von JTL finde ich keine Infos, wie ich es anstellen könnte. Sind denn die Frontend-Links dafür gemacht? So wie ich es verstehe, sind die Frontend-Links einfach nur "Eigene Seiten", die Angelegt und verlinkt werden. Aber wie sage ich dem Plugin, füge den Button an dieser Stelle des Templates ein?

Würde mich freuen, wenn mir jemand auf die Sprünge hilft :)
 

knackig

Sehr aktives Mitglied
17. November 2011
556
29
Nordhessen
#2
So, jetzt bin ich etwas schlauer geworden. Habe mir das Example-Plugin genauer angeschaut und folgendes festgestellt:
  1. Das Hinzufügen von Inhalten einer Datei erfolgt mit der Funktion insertStuff() in class.jtl_example.helper.php.
  2. Aufgerufen mit dem Hook 140.
  3. Der "Einsatzort" wird in den Plugin-Einstellungen mit dem PHP-Query-Selektor definiert.
Nun komme ich nicht wirklich weiter. Mein Button soll über der Variationsauswahl rechts neben dem Bild erscheinen. Bild, Artikelname und die Variationen werden im DIV class="product-offer" zusammengefasst. Wenn ich diesen DIV in den Plugineinstellungen eingebe, erscheint der Inhalt des Example-Plugins. Wenn ich aber den "Unter-DIV" mit class="variations" eingebe, erscheint der Wert nicht mehr. Können mit dem PHP-Query-Selector in den Plugin-Einstellungen nur bestimmte DIVs angesteuert werden?

Zur Info: Ich arbeite mit dem Standard-EVO-Template.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
3.045
366
Berlin
#3
Wenn du php Query über den 140er Hook verwendest, dann richtest du dich nach Selektoren (z.B. ID oder Klasse), dann gehst du nicht über die smarty Blöcke.
 

knackig

Sehr aktives Mitglied
17. November 2011
556
29
Nordhessen
#4
Das habe ich aber. Ich bin noch dabei es im Example-Plugin mit dem Beispielinhalt, der auf der Startseite erscheint, zu testen. Ich habe diesen mit den Plugin-Einstellungen auf der Produktseite eingebunden. Wenn ich da die Class #product-offer in den Einstellungen eingebe, wird der Beispielinhalt über den Produktdaten angezeigt. Aus der Datei productdetails/details.tpl, Zeile 128:
HTML:
<div class="product-offer" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Wenn ich aber #variations eingebe, erscheint nichts über den Variationen. Die class habe ich aus der Datei productdetails/variation.tpl (Zeile 15):
HTML:
<div class="variations {if $simple}simple{else}switch{/if}-variations top15 row">
Wenn das funktioniert, kann ich mir mein Plugin analog zu dem Example-Plugin aufbauen und statt den Smarty-Block zu nutzen, den Button über dem DIV mit der entsprechenden Class einfügen.
 

Ähnliche Themen