2

我是 RefineryCMS 的新手,对 Rails 也很陌生。我想要做的是在我的布局文件中使用相同的页眉和页脚,然后在从 CMS 数据库中提取的动态部分中,每页使用不同的标记。

示例模板:

<header>
...
</header>

# want to insert "home" page or "about" page here depending on url.

<footer>
...
</footer>

我希望主页插入模板的示例:

<div>
  <%= raw @page.content_for(:body) %>
</div>

我希望将页面插入模板的示例:

<div>
  <div>
    <div>
      <%= raw @page.content_for(:body) %>
    </div>
  </div>
</div>

如何更改每页的标记,而不必在 CMS 的所见即所得编辑器中添加标记?

4

2 回答 2

5

您使用的是哪个版本?

如果您使用的是 2.0.x,那么里面有两个选项config/initializers/refinery/pages.rb——第一个应该是config.view_template_whitelist,第二个应该是config.use_view_templates.

对于config.view_template_whitelist,您可以指定与文件夹中的视图匹配的符号数组app/views/refinery/pages/(即,如果您有about_us.html.erb,则将 [:about_us] 列入白名单,就像您要render :about_us在控制器中说的那样。

config.use_view_templates只需将其设置为 true 即可启用后端的下拉菜单,该下拉菜单可让您从白名单中选择模板。

如果你很好奇,也有config.layout_template_whitelist一些config.use_layout_template选项可以做同样的事情,但是有布局。

于 2012-05-31T05:32:58.567 回答
0

如果您希望更改标题而不是整个布局,那么您可以覆盖_header部分:

cp  /var/lib/gems/1.8/gems/refinerycms-core-2.0.6/app/views/refinery/_header.html.erb  app/views/refinery/_header.html.erb

..然后编辑app/views/refinery/_header.html.erb并重新启动应用程序(如果需要)。

这使我可以在导航菜单上方放置标题图像,而无需创建自定义布局。

于 2012-08-13T04:14:57.957 回答