Module: Cardboard::PublicHelper
- Defined in:
- app/helpers/cardboard/public_helper.rb
Instance Method Summary collapse
-
#link_to_page(page_id, html_options = {}, &block) ⇒ Object
Example: link_to_page 123, class: “btn” do |page| “hello #pagepage.title” end.
-
#nested_pages(page = nil, &block) ⇒ Object
Example 1: = nested_pages Cardboard::Page.arrange do |page, subpages| .indent = link_to(page.title, page.url) if page.in_menu? = subpages end Example 2: %ul = nested_pages do |page, subpages| %li = link_to page.title, edit_page_path(page) = content_tag(:ul, subpages) if subpages.present?.
Instance Method Details
#link_to_page(page_id, html_options = {}, &block) ⇒ Object
Example:
link_to_page 123, class: "btn" do |page|
"hello #{page.title}"
end
link_to_page “home”
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/helpers/cardboard/public_helper.rb', line 11 def link_to_page(page_id, ={}, &block) page = if page_id.is_a?(Integer) Cardboard::Page.where(id: page_id).first else #if page_id.is_a? String Cardboard::Page.where(identifier: page_id).first end return nil if page.blank? title = if block_given? capture(page, &block) else page.title end link_to(title, page.url, ) end |
#nested_pages(page = nil, &block) ⇒ Object
Example 1:
nested_pages Cardboard::Page.arrange do |page, subpages|
.indent
= link_to(page.title, page.url) if page.
= subpages
end Example 2: %ul
= nested_pages do |page, subpages|
li
= link_to page.title, edit_page_path(page)
= content_tag(:ul, subpages) if subpages.present?
39 40 41 42 |
# File 'app/helpers/cardboard/public_helper.rb', line 39 def nested_pages(page = nil, &block) raise ArgumentError, "Missing block" unless block_given? inner_nested_pages(Cardboard::Page.arrange(page), &block).try(:html_safe) end |