Class: DcBigMenu

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Timestamps
Defined in:
app/models/dc_big_menu.rb

Overview

Mongoid::Document model for dc_big_menus collection.

This menu system is still experimental. It can be used for sites with menu which has many sub menus each linked to its own document. Unlike other menu models which provide menu in single document (with embedded documents as sub menus) this menu system provides one document for every menu option.

Class Method Summary collapse

Class Method Details

.add_sub_menu(site, parent, rez, level) ⇒ Object

Process submenu. Subroutine of choices4_menu.



56
57
58
59
60
61
62
# File 'app/models/dc_big_menu.rb', line 56

def self.add_sub_menu(site, parent, rez, level)
#TODO Make this faster  
  only(:_id,:parent,:caption).where(dc_site_id: site._id, parent: parent).sort( order: 1).to_a.each do |m|
    rez << ['- '*(level+1) + ' ' + m.caption, m._id]
    self.add_sub_menu(site, m._id, rez, level+1)
  end
end

.choices4_menu(site) ⇒ Object

Returns available menu choices for selecting menu



67
68
69
70
71
# File 'app/models/dc_big_menu.rb', line 67

def self.choices4_menu(site)
  rez   = []
  self.add_sub_menu(site, nil, rez, -1)
  rez
end