Hallo liebe Community,
ich habe ein ganz simples Plugin. Es gibt ein Textfeld, in dem ich “Hallo Welt” eintrage.
Wenn ich die Variable über “$view->assign(‘meintext’, $config->meintext);” ausgebe, dann kann ich diese über die .tpl anzeigen lassen.
So weit alles gut - nur jetzt kommt mein Problem:
Ich habe Jquery eingebunden. Natürlich auch den Event registriert.
public function addJsFiles(Enlight_Event_EventArgs $args) {
$jsFiles = array(__DIR__ . ‘/Views/frontend/plugins/hallowelt/_public/src/js/script.js’);
return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
Gebe ich nun in meiner “script.js” folgendes ein:
jQuery(document).ready(function ($) {
alert(‘Hallo Welt’);
});
dann wird mir “Hallo Welt” angezeigt.
Versuche ich allerdings:
jQuery(document).ready(function ($) {
alert(’{$hallowelt}’);
});
dann wird mir {$hallowelt} angezeigt.
Natürlich könnte ich über die .tpl die Variable {$hallowelt} Javascript als Variable zuordnen - was auch funtioniert.
Ich würde mir aber gerne den umständlichen Weg über die Javascript Variable sparen.
In Less gibt es ja die Möglichkeit direkt auf Variablen aus der Bootstrap zuzugreifen:
public function addLessFiles(Enlight_Event_EventArgs $args)
{
$less = new \Shopware\Components\Theme\LessDefinition(
//configuration
array(
‘halloweltbreite’ => $this->Config()->get(‘halloweltbreite’),
),
//less files to compile
array(
__DIR__ . ‘/Views/frontend/plugins/hallowelt/_public/src/less/all.less’
),
//import directory
__DIR__
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
über:
@halloweltbreite*1px
in der “style.less”
Gibt es denn nicht die Möglichkeit Variablen aus der Bootstrap DIREKT in meiner script.js zu verwenden, ohne den Umweg .tpl --> Javascript???
Wenn diese Möglichkeit existiert, dann würde ich mich sehr über ein Beispiel freuen.
Ich habe auch schon den Artikel “Getting started with the statemanager and the jQuery plugin base” gelesen, weiss aber leider nicht ob es das richtige ist und wie ich es nutzen könnte.
Vielen Dank im voraus
Hoppler