Benutzer-Werkzeuge

Webseiten-Werkzeuge


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/

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
programmieren:jtl-shop (118 views) · Zuletzt geändert: 04/03/2020 11:40 von conny