Neu Plugin-Entwicklung

Wie mach ich plugin-variablen im Template verfügbar ?

  • Test

    Votes: 0 0,0%
  • Test2

    Votes: 0 0,0%

  • Gesamtzahl der Stimmen
    0

IMGSaibh

Aktives Mitglied
9. Juni 2020
43
1
Liebe Community,
ich programmiere gerade ein Plugin uns stehe vor Problem:
Wie mache ich einen bool flag im .tpl-file verfügbar, deren Wert je nachdem was im Consent-Manager gesetzt ist, zugewiesen wird.
Ich habe mir das "jtl-test" Plugin als Beispiel genommen und diese Code-Stelle gefunden. Leider kann ich keine Variable in die Klasse schreiben die dann im Template verwendet werden kann.

if ($state === true) {
// plugin has consent - do something
}

meine aktuelle Implementierung sieht so aus:
Code:
        $dispatcher->listen('shop.hook.' . \HOOK_LETZTERINCLUDE_INC, function () use ($plugin) {
            if ($plugin->getConfig()->getValue('supreme_webgains_add_consent_item') === 'Y') {
                $state = Shop::Container()->getConsentManager()->hasConsent(self::CONSENT_ITEM_ID);
                if ($state === true) {
                    // plugin has consent - do something
                    // $this->webgainshelper->setWebgainsFlag(true);
                    Shop::Smarty()->assign('varName', true);
                }
                else
                {
                    // $this->webgainshelper->setWebgainsFlag(false);
                    Shop::Smarty()->assign('varName', false);
                }
            }
        }, 10);

Auch die Funktion Shop::Smarty()->assign('variableName', false); funktionierte nicht.

Vielen lieben Dank für euere Unterstützung.
 

krahni

Mitglied
7. Juli 2022
44
6
Also bei mir geht das mit:
...
use JTL\Events\Dispatcher;
use JTL\Events\Event;
use JTL\Plugin\Bootstrapper;
use JTL\ Shop;
use JTL\Smarty\JTLSmarty;
...
$smarty->assign('output', $output);


im Template dann irgendwo:
...
{if !empty($output)}
{$output}
{/if}
...


als Beispiel, das if muss nicht
 

IMGSaibh

Aktives Mitglied
9. Juni 2020
43
1
Bei mir geht es leider nicht. Meinst du ich kann die Implementierung die ich oben geteilt habe so lassen? Wenn ich im Template

PHP:
    {if $isWebgainsSet == true}
        {'webgains active'}
    {/if}

    {if $isWebgainsSet == false}
        {'webgains not active'}
    {/if}

mache geht er kommen ich nur in den else Zweig. Ich nehme an das entweder assign falsch verwendet wird oder der state des ConsentManager wird nie true.
Kann ich das irgendwie überprüfen ?
Auch der Debugger sagt folgendes:
Undefined index: isWebgainsSet
 

Ähnliche Themen