Class: Comfy::Cms::Layout
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Comfy::Cms::Layout
- Defined in:
- app/models/comfy/cms/layout.rb
Class Method Summary collapse
-
.app_layouts_for_select ⇒ Object
List of available application layouts.
-
.options_for_select(site, layout = nil, current_layout = nil, depth = 0, spacer = '. . ') ⇒ Object
– Class Methods ——————————————————– Tree-like structure for layouts.
Instance Method Summary collapse
- #cache_buster ⇒ Object
-
#merged_content ⇒ Object
– Instance Methods —————————————————– magical merging tag is cms:page:content If parent layout has this tag defined its content will be merged.
Class Method Details
.app_layouts_for_select ⇒ Object
List of available application layouts
48 49 50 51 52 53 |
# File 'app/models/comfy/cms/layout.rb', line 48 def self.app_layouts_for_select Dir.glob(File.('app/views/layouts/**/*.html.*', Rails.root)).collect do |filename| filename.gsub!("#{File.('app/views/layouts', Rails.root)}/", '') filename.split('/').last[0...1] == '_' ? nil : filename.split('.').first end.compact.sort end |
.options_for_select(site, layout = nil, current_layout = nil, depth = 0, spacer = '. . ') ⇒ Object
– Class Methods ——————————————————– Tree-like structure for layouts
35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/comfy/cms/layout.rb', line 35 def self.(site, layout = nil, current_layout = nil, depth = 0, spacer = '. . ') out = [] [current_layout || site.layouts.roots].flatten.each do |l| next if layout == l out << [ "#{spacer*depth}#{l.label}", l.id ] l.children.each do |child| out += (site, layout, child, depth + 1, spacer) end end return out.compact end |
Instance Method Details
#cache_buster ⇒ Object
72 73 74 |
# File 'app/models/comfy/cms/layout.rb', line 72 def cache_buster updated_at.to_i end |
#merged_content ⇒ Object
– Instance Methods —————————————————– magical merging tag is cms:page:content If parent layout has this tag defined its content will be merged. If no such tag found, parent content is ignored.
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'app/models/comfy/cms/layout.rb', line 59 def merged_content if parent regex = /\{\{\s*cms:page:content:?(?:(?::text)|(?::rich_text))?\s*\}\}/ if parent.merged_content.match(regex) parent.merged_content.gsub(regex, content.to_s) else content.to_s end else content.to_s end end |