Das ist tatsächlich n großes Problem. Mir fällt leider nur eine wirklich dreckige Lösung dafür ein. Du könntest den Block frontend_index_header_javascript in einem deiner Templates erweitern und sie dort mit {config} reinschreiben. Das ist aber eigtl sehr sehr unschön.
Es kommt ein bisschen drauf an was dein JavaScript macht. Wenn du ein Shopware JQuery Plugin geschrieben hast, wird das ja über einen Selector an einen Teil in deinen DOM gebunden. Dort kannst du über die data Attribute dein JQuery Plugin konfigurieren. Die data Attribute stehen ja auch in irgend einem Template. Da könntest du wiederum den {config} Viewhelper verwenden. Das wäre auch einen sauberer Weg. Vielleicht passt das ja zufällig zu deinem Szenario.
Der Code_ „{config name=‚meine-config‘ namespace=‚MeinPlugin‘}“;_ funktioniert nur in Javascript-Dateien, die auch von Smarty geparsed werden.
Der {config} Aufruf ist nunmal Smarty.
Wenn du also dein Javascript über dein Plugin registrierst, so wird dein Javascript-Code auch nicht von Smarty geparsed.
Ein Unterschied wäre es nun, wenn du dein Javascript über ein eigenes Script-Tag direkt in deine .tpl-Datei packen würdest. Davon möchte ich aber abraten, auch wenn dies funktionieren würde!
Der korrekte Weg wäre, wie bereits von @arnebecker erwähnt, der Weg über Data-Attribute.
Alternativ kannst du auch deine gesamte Config per JSON-Encode in einen String packen und diesen dann in ein beliebiges HTML-Attribut packen.
Wichtig ist dann nur, dass du dies auch entsprechend escapest:
In deinem Javascript-Code kannst du das Div anschließend über die Klasse / ID identifizieren und das data-Attribut auslesen.
Aber auch hier gilt: Dies ist nur dann zu nutzen, wenn der zuvor genannte weg von Arne nicht funktioniert / anwendbar ist.
Ich strebe an, dass das Plugin unabhängig von irgendwelchen HTML-Elementen ist.
Ich möchte keine bestehenden HTML-Elemente mit Attributen versehen, da diese ggf. selbst wieder aus verschiedenen (unbekannten) Plugins oder Themes kommen.
Wie schon Patrick dies schon angesprochen hat, eventuell mit Ajax laden.
Oder auch in einem Block in dem Javascripte geladen werden, als Variablen zur Verfügung stellen auf die du dann zurückgreifen kannst.
Beispiel :
{block name="frontend_index_header_javascript" }
{$smarty.block.parent}
var test = "{$config.deinevariable}";
{/block}