【问题标题】:How would you generate the Magento Layout XML outside of Magento?您将如何在 Magento 之外生成 Magento 布局 XML?
【发布时间】:2011-01-31 15:22:42
【问题描述】:

我希望能够从 Magento 生成的布局文件中提供模板、块详细信息。如果您安装 Alan Storm 出色的 layoutviewer 并将所有 xml 打印到屏幕上,则可以看到相同的信息。 (包布局是我所追求的,它是一个大型 XML 文件,其中包含特定 Magento 安装的所有可能布局配置。)

我一直在努力从我在 index.php 文件旁边的应用程序目录中运行的脚本中获取这些数据。

如何在不安装任何自定义模块安装的情况下获取 xml 文档中的完整布局 XML?

【问题讨论】:

  • 您是在寻找当前页面布局,还是整个包布局?

标签: layout magento


【解决方案1】:
Mage::app()->getLayout()->getUpdate()->load("default")->asString();

这段代码将为您提供给定句柄的布局 xml,仍然需要扫描布局文件以查找所有句柄以生成完整的 xml。

【讨论】:

    【解决方案2】:

    我没试过,但乍一看我认为应该是

    Mage::getSingleton('core/layout')->getXmlString()
    

    【讨论】:

    • 不错的尝试,对其他人有用的贡献,但这只是构建布局以准备添加块。
    • 我将如何构建 xml 来描述 magento 需要运行的所有块和模板?
    • 对不起,我猜它只适用于它所使用的页面,然后只在调用loadLayout() 之后。
    【解决方案3】:

    我能想到的获得 XML 布局的最好和最简单的方法是编写一个 Magento 扩展来获取信息并以编程方式呈现或导出它。否则,您将不得不重新创建合并所有 XML 文件等的 Magento 逻辑,这将导致更大的代码库。

    【讨论】:

    • 我希望脚本可以通过一个文件安装,否则我只会使用 Alan Storms Layout Viewer 模块。
    • 我希望脚本可以通过一个文件安装,否则我只会使用 Alan Storms Layout Viewer 模块。我想从包查看器中获得相同的信息,但可以在不安装模块的情况下在暂存环境中进行设置。但是,如果没有社区的更多建议,我认为这对我来说可能是不可能的!
    • 最后我创建了自己的脚本来获取这些信息。感谢您的讨论。
    【解决方案4】:
    use 'Configviewer' and 'Layoutviewer'  
    http://www.abc.com/index.php/index/index?showLayout=package
    http://www.abc.com/index.php/index/index?showLayout=handles
    http://www.abc.com/index.php/index/index?showConfig=true
    

    【讨论】:

      猜你喜欢
      • 2013-06-05
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多