3

我在我的 Magento 管理面板中添加了几个页面 (cms)。我知道我可以通过在内容字段中使用 {{block..}} 将块附加到特定页面。

我不想在那里定义块,而是在 cms.xml 文件中。所以其他商店管理员不会被后端编辑器中的奇怪代码({{block..}})所困扰。

我使用以下 xml 标记定义了索引/主页:

<cms_index_index>
    <reference name="content">
        <block... />
    </reference>
</cms_index_index>

如何在 cms.xml 中定义其他 cms 页面(通过 id 或 seo 标识符)?

我尝试通过以下方式定义它们;

<cms_page_[seo-ident]>
<cms_pageid_[id]>
<cms_[seo-ident]>
<cms_[id]>
4

3 回答 3

4

我对 CMS 模块不是很熟悉,但我可以告诉您如何获取系统中任何页面的 XML 标记/句柄 (cms_index_index)。

您现在应该看到“句柄”列表。句柄用于识别特定请求。例如 cms_index_index 是标识对CMS模块在其索引控制器上的索引操作的请求的句柄。您应该在其他 CMS 页面上看到类似的句柄。

如果这可行,请在评论中发布后续内容,我很好奇 CMS 句柄是如何形成的,并且没有时间搜索它。

更新:我已经在我一直在玩的 Magento 的测试平台安装上完成了这项工作。我在以下 URL 创建了一个简单的 CMS 页面

http://example.com/index.php/this-is-my-identifier

我得到了以下句柄

  1. 默认
  2. cms_page
  3. STORE_default
  4. THEME_frontend_default_default
  5. cms_page_view
  6. page_one_column
  7. customer_logged_out

因此,基于此,Magento 似乎没有为每个 CMS 页面创建单独的句柄(我有点惊讶你上面提到的 cms_index_index 工作......这意味着可能发生了一些事情我不太明白)。

<cms_page>所以,我想做的是在or<cms_page_view>标记中定义你的块。这应该使它们可用于您的所有CMS 页面。

于 2009-09-09T16:10:52.863 回答
0

好吧,就布局而言,Magento 并不是那么容易处理。您可以查看我自己的这个博客条目,即使它没有具体解释块,我认为它可能会帮助您了解自定义布局如何与 CMS 页面一起使用。

从那里开始,您可能会更清楚地了解该过程。

我希望它有所帮助。

于 2011-05-29T14:24:52.850 回答
0

Wow Alan Storm 不熟悉 CMS 模块,它肯定是一个非常古老的线程。

不过,当我用 Google 编辑它时,它在榜首

Matthias Zeis 对此提供了一个很好的答案:https ://magento.stackexchange.com/questions/289/cms-xml-handles-for-layout-updates

基本上这个想法是观察事件cms_page_render,然后我们定义自己的句柄。

于 2015-07-30T09:35:50.757 回答