Sha256: 45ac8f5303c77de31b09222bb3dba67cb6f0be4dd60887e3c031ce5b598772bc

Contents?: true

Size: 1.17 KB

Versions: 35

Compression:

Stored size: 1.17 KB

Contents

class Caboose::BlockTypeCategory < ActiveRecord::Base
  self.table_name = "block_type_categories"

  belongs_to :parent, :foreign_key => 'parent_id', :class_name => 'Caboose::BlockTypeCategory'  
  has_many :children, :foreign_key => 'parent_id', :class_name => 'Caboose::BlockTypeCategory', :dependent => :destroy, :order => :sort_order
  has_many :block_types
  attr_accessible :id,
    :parent_id,
    :name,
    :sort_order,
    :show_in_sidebar
    
  def self.layouts
    self.where("name = ? and parent_id is null", 'Layouts').reorder(:name).all
  end
  
  def self.content
    self.where("name = ? and parent_id is null", 'Content').reorder(:name).all
  end
  
  def self.rows
    cat = self.content
    return false if cat.nil?
    self.where("name = ? and parent_id = ?", 'Rows', cat.id).reorder(:name).all
  end
  
  def self.tree
    arr = []
    self.where("parent_id is null").reorder(:name).all.each do |cat|
      self.tree_helper(arr, cat, '')
    end
    return arr
  end
  
  def self.tree_helper(arr, cat, prefix)
    arr << { 'value' => cat.id, 'text' => "#{prefix}#{cat.name}" }
    cat.children.each do |kid|
      self.tree_helper(arr, kid, "#{prefix} - ")
    end
  end
  
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
caboose-cms-0.9.229 app/models/caboose/block_type_category.rb
caboose-cms-0.9.228 app/models/caboose/block_type_category.rb
caboose-cms-0.9.227 app/models/caboose/block_type_category.rb
caboose-cms-0.9.226 app/models/caboose/block_type_category.rb
caboose-cms-0.9.225 app/models/caboose/block_type_category.rb
caboose-cms-0.9.224 app/models/caboose/block_type_category.rb
caboose-cms-0.9.223 app/models/caboose/block_type_category.rb
caboose-cms-0.9.222 app/models/caboose/block_type_category.rb
caboose-cms-0.9.221 app/models/caboose/block_type_category.rb
caboose-cms-0.9.220 app/models/caboose/block_type_category.rb
caboose-cms-0.9.219 app/models/caboose/block_type_category.rb
caboose-cms-0.9.218 app/models/caboose/block_type_category.rb
caboose-cms-0.9.217 app/models/caboose/block_type_category.rb
caboose-cms-0.9.216 app/models/caboose/block_type_category.rb
caboose-cms-0.9.215 app/models/caboose/block_type_category.rb
caboose-cms-0.9.214 app/models/caboose/block_type_category.rb
caboose-cms-0.9.213 app/models/caboose/block_type_category.rb
caboose-cms-0.9.212 app/models/caboose/block_type_category.rb
caboose-cms-0.9.211 app/models/caboose/block_type_category.rb
caboose-cms-0.9.210 app/models/caboose/block_type_category.rb