==== eigene Plugins programmieren ==== [[programmieren:jtl-shop:start]] === PQ Selector & Plugin Programmierung === Um Inhalte zu überschreiben sollte man sich der PQ Funktion bedienen.\\ PQ()->\\ \\ 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('

Variablen:

' . print_r($mailSmarty->getTemplateVars(), true) . '
'); 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); PHP-Query-Selektor Ein beliebiger PHP-Query-Selektor jtl_exmple_pqselector == config Einstellungen in der XML == PHP-Query-Funktion Welche Funktion soll für das Einfügen des Templates verwendet werden? jtl_example_pqfunction Gutes Beispiel für replacewith https://api.jquery.com/replaceWith/