app/helpers/pages_helper.rb in activeadmin-selleo-cms-0.0.32 vs app/helpers/pages_helper.rb in activeadmin-selleo-cms-0.0.33
- old
+ new
@@ -37,6 +37,44 @@
body = section.body.to_s
body = "" if body.match /<p>\s*<\/p>/
body += link_to(t("active_admin.cms.edit"), edit_admin_section_path(section)) if current_user and current_user.respond_to? :admin? and current_user.admin?
body.html_safe
end
+
+ def menu(options={})
+ options[:ul] ||= {}
+ options[:li] ||= {}
+
+ content_tag :ul, class: options[:ul][:class] do
+ ActiveadminSelleoCms::Page.published.show_in_menu.where(parent_id: options[:root]).reorder("lft ASC").collect{ |page|
+ classes = [options[:li][:class], options[:li][:selected]].compact.join(" ") if page == @page
+ if block_given?
+ concat(content_tag :li, yield(page), class: classes)
+ else
+ concat(content_tag :li, link_to_page(page), class: classes)
+ end
+ }
+ end
+ end
+
+ def locales(options={}, &block)
+ options[:ul] ||= {}
+ options[:li] ||= {}
+ locales_scope = ActiveadminSelleoCms::Locale.enabled
+ locales_scope = locales_scope.exclude(I18n.locale) unless options[:current_locale]
+
+ content_tag :ul, class: options[:ul][:class] do
+ locales_scope.collect{ |locale|
+ classes = [options[:li][:class], options[:li][:selected]].compact.join(" ") if locale == I18n.locale
+ if block_given?
+ concat(content_tag :li, yield(locale), class: classes)
+ else
+ concat(content_tag :li, link_to_locale(locale.code.to_s.upcase, locale, @page), class: classes)
+ end
+ }
+ end
+ end
+
+ def root
+ page_path(I18n.locale, ActiveadminSelleoCms::Page.root)
+ end
end