如果父项在refinerycms中处于活动状态,如何列出子项?

时间:2013-03-03 18:40:35

标签: refinerycms

我有这段代码列出某个页面的所有孩子:

  <ul class="sidenav">
    <%= render :partial => '/refinery/menu_branch', 
      :collection => refinery_menu_pages.select{|p| p.parent_id == @page.root.id},
      :locals => {
        :hide_children => false,
        :apply_css => true 
      } -%>
  </ul>

e.g.

Item1
  cItem1
  cItem2

如何修改代码以显示子页面的子项?,例如:

Item1
 cItem1
 cItem2
   ccItem1
   ccItem2
   ccItem3
Item2

1 个答案:

答案 0 :(得分:1)

由于此代码是递归的,我很惊讶它不会显示多个级别。也就是说,menu_branch partial调用menu_branch partial,直到它们的子项为nil。

以下是RefineryCMS 2.0中_menu_branch partial的代码:

<%= render :partial => '/refinery/menu_branch', :collection => children,
                 :locals => {
                   :apply_css => local_assigns[:apply_css],
                   :hide_children => !!hide_children,
                   :menu_levels => local_assigns[:menu_levels]
                 } -%>

请注意,这个包括:menu_levels。您可以尝试复制和粘贴它,或者只是将local_assigns[:menu_levels]替换为您想要显示的级别数的整数。