需要从 Magento 中使用的小部件短代码中提取参数
Need to extract parameters from widget shortcodes used in Magento
在一个项目中,我购买了一个使用小部件及其短代码的扩展。
我必须从小部件短代码中提取参数,以便我可以在我的模块中使用它们来映射一些块 ID。
如何将小部件短代码字符串中的参数提取到下面的数组中?
{{block type="cms/block" block_id="footer_links" template="ABC/roam/dp.phtml"}}
我花了一些时间来搜索 CMS 内容区域如何让小部件 short-codes 工作。
这是我解码 short-code 的方式。我为此做了一个帮手。
public function widgetToArray($widget)
{
$tokenizer = new Varien_Filter_Template_Tokenizer_Parameter();
$cons = str_replace(array("{{","}}"),array("",""),$widget);
$tokenizer->setString($cons);
$params = $tokenizer->tokenize();
foreach ($params as $key => $value) {
if (substr($value, 0, 1) === '$') {
$params[$key] = $this->_getVariable(substr($value, 1), null);
}
}
return $params;
}
希望有一天这会对某些人有所帮助。
在一个项目中,我购买了一个使用小部件及其短代码的扩展。 我必须从小部件短代码中提取参数,以便我可以在我的模块中使用它们来映射一些块 ID。 如何将小部件短代码字符串中的参数提取到下面的数组中?
{{block type="cms/block" block_id="footer_links" template="ABC/roam/dp.phtml"}}
我花了一些时间来搜索 CMS 内容区域如何让小部件 short-codes 工作。 这是我解码 short-code 的方式。我为此做了一个帮手。
public function widgetToArray($widget)
{
$tokenizer = new Varien_Filter_Template_Tokenizer_Parameter();
$cons = str_replace(array("{{","}}"),array("",""),$widget);
$tokenizer->setString($cons);
$params = $tokenizer->tokenize();
foreach ($params as $key => $value) {
if (substr($value, 0, 1) === '$') {
$params[$key] = $this->_getVariable(substr($value, 1), null);
}
}
return $params;
}
希望有一天这会对某些人有所帮助。