Verschachtelter Konfigurationspfad im statischen Block
-
11-12-2019 - |
Frage
Gibt es eine Möglichkeit, Konfigurationspfadvariablen in statischen Blöcken zu verschachteln?Ich versuche, auf das Logobild zuzugreifen und habe mir gedacht, dass der beste Weg, dies zu tun, so etwas wie {{skin url='{{config path="design/header/logo_src"}}'}} wäre, aber das ist nicht der Fall scheinen zu funktionieren.Sollte ich den Skin-Pfad fest codieren oder gibt es eine andere Möglichkeit, dies zu tun?Danke!
Lösung
Leider weiß der Direktiven-Parser nicht, wie man Direktiven innerhalb von Direktiven analysiert.
Also {{skin url='{{config path="design/header/logo_src"}}'}}
wird nicht analysiert.
Sie können jedoch Ihren eigenen Direktivenparser erstellen und etwa Folgendes verwenden:
{{skinconfig path="design/header/logo_src"}}
Dazu müssen Sie die Datei neu schreiben Mage_Widget_Model_Template_Filter
Modell.
Hier ist eine schöne Erklärung, wie das geht..
Und Sie müssen Ihrer neuen Klasse eine Methode wie diese hinzufügen (ungetesteter Code):
public function skinconfigDirective($construction) {
$configValue = '';
$params = $this->_getIncludeParameters($construction[2]);
$storeId = $this->getStoreId();
if (isset($params['path'])) {
$configValue = Mage::getStoreConfig($params['path'], $storeId);
return Mage::getDesign()->getSkinUrl($configValue);
}
//in case there is no path specified return nothing.
return '';
}
Andere Tipps
Dieser Thread ist alt, aber ich wollte heute eine ähnliche Sache tun.
Nicht sicher, dass dies die beste -Lösung ist, aber Sie können dies auch tun
<img src="{{skin url=''}}{{config path='design/header/logo_src'}}">
.
Beachten Sie, dass Sie möglicherweise whitelist diese Variablen / Blöcke aufgrund der in Supere-6788 / Magento-CE 1.9.2.2 / Magento-EE 1.14.2.2 eingeführten Änderungen benötigen.