programmieren:jtl-shop:jtl-shop
eigene Plugins programmieren
PQ Selector & Plugin Programmierung
Um Inhalte zu überschreiben sollte man sich der PQ Funktion bedienen.
PQ(<selector>)→<Funktion>
Info's unter: https://code.google.com/archive/p/phpquery/wikis/Manipulation.wiki
Beispiele:
pq('#tsReviewStickerWrapper')->append($ts_ReviewStickerCode); pq('#sidebox_ts_rating')->remove(); pq('body')->append('<h3>Variablen:</h3><pre>' . print_r($mailSmarty->getTemplateVars(), true) . '</pre>'); pq('#panel-edit-coupon')->parent()->remove(); pq('head > link[data-theme]')->attr('disabled', true); pq('head > link[data-theme="' . $cTheme . '"]')->removeAttr('disabled');
Programmierung
Es geht einfach nur um die folgenden Schritte:
1) Ein PHP-Datei für Hook 140 anlegen
2) Darin via $smarty→assign() Variablen bereitstellen
3) Ein Template anlegen, das HTML erzeugen soll. Hier kann die zuvor assignte Variable genutzt werden.
4) Via $smarty→fetch() das HTML generieren
5) Das erzeugte HTML mit pq() in den DOM einfügen.
// 1. Variablen welche im TPL benötigt werden SMARTY zuweisen $smarty->assign('some_text', $someText); $smarty->assign('lang_var_1', vsprintf($this->plugin->oPluginSprachvariableAssoc_arr['xmlp_lang_var_1'], array($this->calculatePi(), $this->plugin->nVersion))); // 2. Template einlesen un rendern $html = $smarty->fetch($file); // 3. Einstelungen aus der XML auslesen $function = $this->plugin->oPluginEinstellungAssoc_arr['jtl_example_pqfunction']; $selector = $this->plugin->oPluginEinstellungAssoc_arr['jtl_exmple_pqselector']; //4. PQ aufrufen pq($selector)->$function($html);
<Setting type="text" initialValue="#content" sort="21" conf="Y"> <Name>PHP-Query-Selektor</Name> <Description>Ein beliebiger PHP-Query-Selektor</Description> <ValueName>jtl_exmple_pqselector</ValueName> </Setting> == config Einstellungen in der XML == <Setting type="selectbox" initialValue="append" sort="22" conf="Y"> <Name>PHP-Query-Funktion</Name> <Description>Welche Funktion soll für das Einfügen des Templates verwendet werden?</Description> <ValueName>jtl_example_pqfunction</ValueName> <SelectboxOptions> <Option value="append" sort="1">append() - Als als letztes Kind in Selektor einfügen</Option> <Option value="prepend" sort="2">prepend() - Als erstes Kind in Selektor einfügen</Option> <Option value="after" sort="3">after() - Nach Selektor einfügen</Option> <Option value="before" sort="4">before() - Vor Selektor einfügen</Option> <Option value="replaceWith" sort="4">replaceWith() - Selektor durch Inhalt ersetzen</Option> </SelectboxOptions> </Setting>
Gutes Beispiel für replacewith https://api.jquery.com/replaceWith/
programmieren/jtl-shop/jtl-shop.txt · Zuletzt geändert: 04/03/2020 11:40 von conny