Sha256: dbcc191fee096dae0c2d8b52af983ad471df8010c54b2d434d6382bb987d263f

Contents?: true

Size: 1.72 KB

Versions: 17

Compression:

Stored size: 1.72 KB

Contents

module Ecm::CmsHelper
  def cms_render_navigation(name, options = {})
    options.reverse_merge! :renderer => :bootstrap, :expand_all => true
    navigation = Ecm::Cms::Navigation.where(:name => name.to_s, :locale => I18n.locale.to_s).first

    return I18n.t('ecm.cms.navigation.messages.not_found', {:lang => I18n.locale.to_s, :name => name.to_s}) unless navigation

    options[:items] = []
    navigation.ecm_cms_navigation_items.roots.all.each do |ni|
      options[:items] << build_navigation(ni)
    end

    return I18n.t('ecm.cms.navigation.messages.empty', :lang => I18n.locale.to_s, :name => name) if options[:items].empty?
    options[:items].first[:options] = {} if options[:items].first[:options].nil?
    options[:items].first[:options].reverse_merge! :container_class => 'nav'
    render_navigation(options)
  end

  def build_navigation(navigation_item)
    if navigation_item.children.count > 0
      items = []
      navigation_item.children.each do |child|
        items << build_navigation(child)
      end
      #output = { :key => navigation_item.key, :name => navigation_item.name, :url => eval(navigation_item.url), :items => items }
      output = { :key => navigation_item.key, :name => navigation_item.name, :url => navigation_item.url, :items => items }
    else
      #output = { :key => navigation_item.key, :name => navigation_item.name, :url => eval(navigation_item.url) }
      output = { :key => navigation_item.key, :name => navigation_item.name, :url => navigation_item.url }
    end

    begin
      options = eval(navigation_item.options)
      output[:options] = options if options.is_a?(Hash)
    rescue
      logger.debug "Invalid navigation item options: #{navigation_item.options}"
    end

    return output
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ecm_cms-1.0.5.pre app/helpers/ecm/cms_helper.rb
ecm_cms-1.0.4.pre app/helpers/ecm/cms_helper.rb
ecm_cms-1.0.3.pre app/helpers/ecm/cms_helper.rb
ecm_cms-1.0.2.pre app/helpers/ecm/cms_helper.rb
ecm_cms-1.0.1.pre app/helpers/ecm/cms_helper.rb
ecm_cms-1.0.0.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.13.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.11.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.10.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.8.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.7.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.6.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.5.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.4.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.3.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.2.pre app/helpers/ecm/cms_helper.rb
ecm_cms-0.0.1.pre app/helpers/ecm/cms_helper.rb