Module: Ecm::CmsHelper
- Defined in:
- app/helpers/ecm/cms_helper.rb
Instance Method Summary collapse
- #build_navigation_item(navigation, item, container_css_class, item_html = {}, link_html = {}) ⇒ Object
- #cms_page? ⇒ Boolean
-
#cms_render_navigation(name, options = {}) ⇒ Object
Example:.
- #current_cms_page ⇒ Object
- #current_cms_page?(page) ⇒ Boolean
- #link_to_top ⇒ Object
Instance Method Details
#build_navigation_item(navigation, item, container_css_class, item_html = {}, link_html = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'app/helpers/ecm/cms_helper.rb', line 55 def (, item, container_css_class, item_html = {}, link_html = {}) = {} [:highlights_on] = /#{item.highlights_on}/ if item.highlights_on.present? [:html] = item.li_attributes.marshal_dump.delete_if { |_key, value| value.blank? } .reverse_merge!(html: item_html.dup, link_html: link_html) .dom_class = container_css_class if item.children.present? .item(item.key, item.name, item.url, ) do || item.children.each do |sub_item| (, sub_item, container_css_class, item_html, link_html) end end else .item item.key, item.name, item.url, end end |
#cms_page? ⇒ Boolean
78 79 80 |
# File 'app/helpers/ecm/cms_helper.rb', line 78 def cms_page? params[:action] == 'respond' && params.has_key?(:page) end |
#cms_render_navigation(name, options = {}) ⇒ Object
Example:
# This will render a bootstrap 4 compatible navigation
= cms_render_navigation(
:main,
renderer: :list,
container_css_class: 'navbar-nav',
selected_class: 'active',
item_html: { class: 'nav-item' },
link_html: { class: 'nav-link' }
)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/helpers/ecm/cms_helper.rb', line 13 def (name, = {}) .reverse_merge!( renderer: :bootstrap, expand_all: true, level: 1, selected_class: nil, item_html: {}, link_html: {} ) level = .delete(:level) = .delete(:expand_all) container_css_class = .delete(:container_css_class) renderer = .delete(:renderer) selected_class = .delete(:selected_class) item_html = .delete(:item_html) link_html = .delete(:link_html) level_as_array = (level).is_a?(Range) ? level.to_a : [level] = Ecm::Cms::Navigation.where(name: name.to_s, locale: I18n.locale.to_s).first if .nil? && (locale = Ecm::Cms::Configuration..call(name, I18n.locale)) = Ecm::Cms::Navigation.where(name: name.to_s, locale: locale).first end unless return I18n.t('ecm.cms.navigation.messages.not_found', lang: I18n.locale.to_s, name: name.to_s) end roots = ..roots.all if roots.empty? return I18n.t('ecm.cms.navigation.messages.empty', lang: I18n.locale.to_s, name: name) end (level: level, expand_all: , renderer: renderer) do || .dom_class = container_css_class .selected_class = selected_class unless selected_class.nil? roots.each do || (, , container_css_class, item_html, link_html) end end end |
#current_cms_page ⇒ Object
86 87 88 |
# File 'app/helpers/ecm/cms_helper.rb', line 86 def current_cms_page cms_page? ? params[:page].to_s : nil end |
#current_cms_page?(page) ⇒ Boolean
82 83 84 |
# File 'app/helpers/ecm/cms_helper.rb', line 82 def current_cms_page?(page) cms_page? && params[:page].to_s == page.to_s end |
#link_to_top ⇒ Object
74 75 76 |
# File 'app/helpers/ecm/cms_helper.rb', line 74 def link_to_top render partial: '/ecm/cms/link_to_top' end |