0

ホームページにデータをプルするrefinerycmsでエンジンを作成しました。Refinerycmsは、このエンジンのページとメニュー項目を自動的に作成します。

エンジンページを削除したり、メニューバーから削除したりするにはどうすればよいですか?

menu.html.erb

<%
  # Collect the root items.
  # ::Refinery::Menu is smart enough to remember all of the items in the original collection.
  if (roots = local_assigns[:roots] || (collection ||= refinery_menu_pages).roots).present?
    dom_id ||= 'menu'
    css = [(css || 'menu clearfix')].flatten.join(' ')
    hide_children = Refinery::Core.menu_hide_children if hide_children.nil?
-%>
<div id="nav">
  <ul>
    <%= render :partial => '/refinery/menu_branch', :collection => roots,
               :locals => {
                 :hide_children => hide_children,
                 :sibling_count => (roots.length - 1),
                 :menu_levels => local_assigns[:menu_levels],
                 :apply_css => true #if you don't care about class='first' class='last' or class='selected' set apply_css to false for speed.
               } -%>
  </ul>
</div>

<% end -%>

menu_branch.html.erb

<%
  if !!local_assigns[:apply_css] and (classes = menu_branch_css(local_assigns)).any?
    css = "class='#{classes.join(' ')}'".html_safe
  end
-%>
<li<%= ['', css].compact.join(' ').gsub(/\ *$/, '').html_safe %>>
<%= link_to(menu_branch.title, refinery.url_for(menu_branch.url)) -%>
  <% if ( (children = menu_branch.children unless hide_children).present? &&
          (!local_assigns[:menu_levels] || menu_branch.ancestors.length < local_assigns[:menu_levels]) ) -%>
    <ul class='clearfix'>
      <%= render :partial => '/refinery/menu_branch', :collection => children,
                 :locals => {
                   :apply_css => local_assigns[:apply_css],
                   :hide_children => !!hide_children,
                   :menu_levels => local_assigns[:menu_levels]
                 } -%>
    </ul>
  <% end -%>
</li>

特にメニューバーから削除したいメニュー項目は「新プログラム」です

4

3 に答える 3

7

これを行う最も簡単な方法は、コンソールからページを削除することです。

  • レールコンソールに入力します:bundle exec rails c
  • 削除するページを見つけます:page = Refinery::Page.find("your-page-id")
  • それを破壊する:page.destroy!

「your-page-id」はページのIDに置き換える必要があることに注意してください;)、フロントエンドまたはバックエンドでこのページにアクセスすると、URLで確認できます。

またdestroy!、デフォルトではこのページが削除不可に設定されているため、このメソッドを使用します。

最後に、エンジンのシードファイルを編集することで、このページの作成を防ぐことができます。

于 2012-07-26T08:36:50.603 に答える
4

私はついに、Refinerycmsでページを編集するときに、詳細オプションをクリックすると、そのページをパブリックメニューに含めるかどうかのチェックボックスがあることを発見しました。

于 2012-07-30T18:45:35.633 に答える
3

エンジンを生成するときに、skip-frontendオプションを追加することもできます。

rails generate refinery:engine NAME [field:type field:type] --skip-frontend
于 2013-04-02T07:58:41.930 に答える