【问题标题】:add/generate layout xml using controller in Magento在 Magento 中使用控制器添加/生成布局 xml
【发布时间】:2013-06-05 04:55:10
【问题描述】:

我正在为 Magento 1.7.0.2 平台创建一个扩展。到目前为止,我已经成功了,因为该扩展主要用于加载在管理面板中管理的 jquery 和 js。

问题是有多个是/否配置(在使用 storeConfig 的管理设置中),我不希望使用 echo if、else 等通过 .phtml 加载。因为如果请求,这些将不可用于合并/压缩通过另一个压缩扩展(又名默认 magento 的 fooman),因为它们是静态的 .phtml 文件。 (PS 也会有一个相当大的多重回显 if,echo else 文件比 xml 慢?)

所以我想通过布局加载这些文件...但不使用 design/default/default/layout 下的 .xml 布局过程,因为有太多配置是/否值以及模型/选择选项,我不能在 .xml 结构中使用(例如:ifconfig="value")。

所以我希望使用控制器将这些文件加载​​到 head 块中,并在此处执行 echo if/else,以便加载适当的配置。

目前为止

public function indexAction(){

$this->loadLayout();
$this->renderLayout();


}

我一直在努力(只是为了开始工作)

$this->getLayout()->getBlock('head')->append(
$this->getLayout()
->createBlock('core/text', 'some-unique-name')
->setText('<script type="text/javascript" src="/foo/baz/bar.js"></script>')
);

我已经阅读了 Alan Snow 的一些 sn-ps 和建议,但没有成功,因为我希望在每个页面上也加载生成的 xml,但使用控制器可能无法实现

非常欢迎任何 cmets、帮助和意见。

【问题讨论】:

标签: xml magento layout magento-1.7


【解决方案1】:

作为一个应该使用现有方法的人,您应该执行以下操作:

$this-&gt;getLayout()-&gt;getBlock('head')-&gt;addJs('javascriptfile.js');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多