需要从 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;        
}

希望有一天这会对某些人有所帮助。