静的ブロック内のネストされた構成パス
-
11-12-2019 - |
質問
静的ブロックに構成パス変数をネストする方法はありますか?ロゴ画像にアクセスしようとしていますが、そのための最良の方法は {{skin url='{{config path="design/header/logo_src"}}'}} のようなものだと考えましたが、そうではありません。機能するようです。スキン パスをハードコーディングする必要がありますか、それともこれを行う他の方法はありますか?ありがとう!
解決
残念ながらディレクティブパーサーはディレクティブ内のディレクティブの解析方法はわかりません。
SO {{skin url='{{config path="design/header/logo_src"}}'}}
は解析されません。
しかし、あなたはあなた自身の指令パーサーを作成し、このようなものを使うことができます:
{{skinconfig path="design/header/logo_src"}}
.
Mage_Widget_Model_Template_Filter
モデルを書き換える必要があります。
これを行う方法についての素晴らしい説明です。。
あなたの新しいクラスを追加する必要があります。このようなメソッド(未テストコード):
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 '';
}
. 他のヒント
このスレッドは古いものですが、今日同様のことをしようとしていました。
これであるかどうかはわかりませんが、 最高 解決策ですが、これを行うこともできます
<img src="{{skin url=''}}{{config path='design/header/logo_src'}}">
.
SUPEE-6788 / Magento CE 1.9.2.2 / Magento EE 1.14.2.2 で導入された変更の結果として、これらの変数/ブロックをホワイトリストに登録する必要がある場合があることに注意してください。