Sha256: d0c5f7b483594854aee2d1b834f2b0f1ab0a20655e355eb290ed1ad24849bcc7

Contents?: true

Size: 1.06 KB

Versions: 57

Compression:

Stored size: 1.06 KB

Contents

#encoding: utf-8
module CamaleonCms::Admin::CategoryHelper

  # build an array multiple with category items prefixed with - for each level
  # categories: collection of categories
  # level: internal iterator control
  # attrs: (Hash) extra params
  #   max_level: (Integer) permit to stop iteration in certain level
  #   until_cats: (Array of cat ids) permit to stop iteration if current iteration is in this array
  #   exclude_cats: (Array of cat ids) exclude this categories from the list
  def cama_category_get_options_html(categories, level = 0, attrs = {})
    attrs = {max_level: 1000, until_cats:[], exclude_cats: []}.merge(attrs)
    options = []
    categories.all.decorate.each do |category|
      next if attrs[:exclude_cats].include?(category.id)
      options << [("—"*level) + category.the_title, category.id]
      children = attrs[:max_level] < level ? [] : category.children
      children = [] if attrs[:until_cats].include?(category.id)
      options += cama_category_get_options_html(children, level + 1, attrs) if children.size > 0
    end
    options
  end

end

Version data entries

57 entries across 57 versions & 2 rubygems

Version Path
camaleon_cms-2.6.4 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.6.3 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.6.2 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.6.1 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.6.0.1 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.6.0 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.5.3.1 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.5.3 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.5.2 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms_rails6-2.5.0 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.5.1 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.5.0 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.9 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.8 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.7 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.6 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.5 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.4 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.3 app/helpers/camaleon_cms/admin/category_helper.rb
camaleon_cms-2.4.6.2 app/helpers/camaleon_cms/admin/category_helper.rb