app/helpers/roroacms/menu_helper.rb in roroacms-0.0.6.9 vs app/helpers/roroacms/menu_helper.rb in roroacms-0.0.7
- old
+ new
@@ -1,184 +1,184 @@
-module Roroacms
- module MenuHelper
-
- # Returns a hash as key and value from the custom data string
- # Params:
- # +str+:: contains all of the data for the link
-
- def make_hash(str)
-
- str = str.split('&')
- hash = {}
-
- str.each do |s|
- opt = s.split('=')
- hash[opt[0]] = URI.unescape(opt[1].to_s.gsub('+', ' '))
- end
-
- hash
-
- end
-
- # returns the count of the children within the lft and rgt values
- # Params:
- # +m+:: the current record that you want to check against
-
- def descendants_count(m)
- (m.rgt - m.lft - 1)/2
- end
-
- # returns the menu in html format
- # Params:
- # +menu+:: the key of the menu that you want to return
- # +sub+:: boolean as to wether the menu is a sub menu or not
- # +c+:: class you want to give the UL
-
- def obtain_menu(menu = nil, sub = false, c = '')
- if menu.is_a? Integer
- data =
- if sub
- MenuOption.where(:parent_id => MenuOption.find(menu).option_id)
- else
- MenuOption.where(:menu_id => menu, :parent_id => nil)
- end
- else
- m = Menu.find_by_key(menu)
- data =
- if m.blank?
- []
- elsif sub
- MenuOption.where(:parent_id => MenuOption.find(m[:id]).option_id)
- else
- MenuOption.where(:menu_id => m[:id], :parent_id => nil)
- end
-
- end
-
-
- html = "<ul class='menu_#{menu} #{c}'>"
-
- if !data.blank?
-
- data.each do |m|
- if m.parent_id != 0
- existingData = make_hash m.custom_data
-
- name = existingData['label']
- attributes = menu_routing(m)
- html += "<li class='menu_link_wrapper wrapper_#{existingData['class']}' ><a " + attributes + ">#{name}</a>"
-
- if descendants_count(m) > 0
- html += get_menu m.id, true
-
- end
-
- html += '</li>'
-
- end
- end
-
- end
-
- html +='</ul>'
-
- html.html_safe
-
- end
-
- # returns the menu in a raw json format
- # Params:
- # +menu+:: the key of the menu that you want to return
- # +sub+:: boolean as to wether the menu is a sub menu or not
-
- def raw_menu_data(menu, sub = false)
- if menu.is_a?(Integer)
- data =
- if sub
- MenuOption.where(:parent_id => MenuOption.find(menu).option_id)
- else
- MenuOption.where(:menu_id => menu, :parent_id => nil)
- end
- else
- m = Menu.find_by_key(menu)
- data =
- if sub
- MenuOption.where(:parent_id => MenuOption.find(m[:id]).option_id)
- else
- MenuOption.where(:menu_id => m[:id], :parent_id => nil)
- end
- end
-
- data
-
- end
-
- # create the a links with the given attributes
- # Params:
- # +menuOption+:: is the menu option record
-
- def menu_routing(menuOption)
-
- # create a hash of the menu option id
- existingData = make_hash menuOption.custom_data
-
- # create generic variables
- home_id = Setting.get('home_page')
- article_url = Setting.get('articles_slug')
- category_url = Setting.get('category_slug')
- tag_url = Setting.get('tag_slug')
-
- # start the string by defining the target
- atts = get_target(existingData['target'])
-
- if menuOption.data_type == 'page'
- p = Post.find_by_id(existingData['linkto'])
- if !p.blank?
- url = p.id == home_id.to_i ? site_url() : site_url(p.structured_url)
- atts += " href='#{url}' class='menu_link'"
- end
- elsif menuOption.data_type == 'article'
- p = Post.find_by_id(existingData['linkto'])
- if !p.blank?
- url = site_url(article_url + p.structured_url)
- atts += " href='#{url}' class='menu_link'"
- end
-
- elsif menuOption.data_type == 'category'
- t = Term.find(existingData['linkto'])
- url = site_url(article_url + '/' + category_url + t.structured_url)
- atts += " href='#{url}' class='menu_link'"
-
- elsif menuOption.data_type == 'tag'
- t = Term.find(existingData['linkto'])
- url = site_url(article_url + '/' + tag_url + t.structured_url)
- atts += " href='#{url}' class='menu_link'"
-
- elsif menuOption.data_type == article_url && menuOption.option_id == 0
- url = site_url(article_url)
- atts += " href='#{url}'"
-
- elsif menuOption.data_type == 'custom'
- url = existingData['customlink']
- atts += " href='#{url}' class='menu_link'"
- end
-
- atts = (atts[0..-2] + " #{existingData['class']}'") if !existingData['class'].blank?
- atts = (atts[0..-2] + " active'") if url == request.original_url
-
- atts
-
- end
-
-
- # returns target blank if target is equal to nt
- # Params:
- # +target+:: is the "target" value that comes from the custom data
-
- def get_target(target)
- ret = ''
- ret = 'target="_blank"' if target == 'nt'
- ret
- end
-
- end
+module Roroacms
+ module MenuHelper
+
+ # Returns a hash as key and value from the custom data string
+ # Params:
+ # +str+:: contains all of the data for the link
+
+ def make_hash(str)
+
+ str = str.split('&')
+ hash = {}
+
+ str.each do |s|
+ opt = s.split('=')
+ hash[opt[0]] = URI.unescape(opt[1].to_s.gsub('+', ' '))
+ end
+
+ hash
+
+ end
+
+ # returns the count of the children within the lft and rgt values
+ # Params:
+ # +m+:: the current record that you want to check against
+
+ def descendants_count(m)
+ (m.rgt - m.lft - 1)/2
+ end
+
+ # returns the menu in html format
+ # Params:
+ # +menu+:: the key of the menu that you want to return
+ # +sub+:: boolean as to wether the menu is a sub menu or not
+ # +c+:: class you want to give the UL
+
+ def obtain_menu(menu = nil, sub = false, c = '')
+ if menu.is_a? Integer
+ data =
+ if sub
+ MenuOption.where(:parent_id => MenuOption.find(menu).option_id)
+ else
+ MenuOption.where(:menu_id => menu, :parent_id => nil)
+ end
+ else
+ m = Menu.find_by_key(menu)
+ data =
+ if m.blank?
+ []
+ elsif sub
+ MenuOption.where(:parent_id => MenuOption.find(m[:id]).option_id)
+ else
+ MenuOption.where(:menu_id => m[:id], :parent_id => nil)
+ end
+
+ end
+
+
+ html = "<ul class='menu_#{menu} #{c}'>"
+
+ if !data.blank?
+
+ data.each do |m|
+ if m.parent_id != 0
+ existingData = make_hash m.custom_data
+
+ name = existingData['label']
+ attributes = menu_routing(m)
+ html += "<li class='menu_link_wrapper wrapper_#{existingData['class']}' ><a " + attributes + ">#{name}</a>"
+
+ if descendants_count(m) > 0
+ html += get_menu m.id, true
+
+ end
+
+ html += '</li>'
+
+ end
+ end
+
+ end
+
+ html +='</ul>'
+
+ html.html_safe
+
+ end
+
+ # returns the menu in a raw json format
+ # Params:
+ # +menu+:: the key of the menu that you want to return
+ # +sub+:: boolean as to wether the menu is a sub menu or not
+
+ def raw_menu_data(menu, sub = false)
+ if menu.is_a?(Integer)
+ data =
+ if sub
+ MenuOption.where(:parent_id => MenuOption.find(menu).option_id)
+ else
+ MenuOption.where(:menu_id => menu, :parent_id => nil)
+ end
+ else
+ m = Menu.find_by_key(menu)
+ data =
+ if sub
+ MenuOption.where(:parent_id => MenuOption.find(m[:id]).option_id)
+ else
+ MenuOption.where(:menu_id => m[:id], :parent_id => nil)
+ end
+ end
+
+ data
+
+ end
+
+ # create the a links with the given attributes
+ # Params:
+ # +menuOption+:: is the menu option record
+
+ def menu_routing(menuOption)
+
+ # create a hash of the menu option id
+ existingData = make_hash menuOption.custom_data
+
+ # create generic variables
+ home_id = Setting.get('home_page')
+ article_url = Setting.get('articles_slug')
+ category_url = Setting.get('category_slug')
+ tag_url = Setting.get('tag_slug')
+
+ # start the string by defining the target
+ atts = get_target(existingData['target'])
+
+ if menuOption.data_type == 'page'
+ p = Post.find_by_id(existingData['linkto'])
+ if !p.blank?
+ url = p.id == home_id.to_i ? site_url() : site_url(p.structured_url)
+ atts += " href='#{url}' class='menu_link'"
+ end
+ elsif menuOption.data_type == 'article'
+ p = Post.find_by_id(existingData['linkto'])
+ if !p.blank?
+ url = site_url(article_url + p.structured_url)
+ atts += " href='#{url}' class='menu_link'"
+ end
+
+ elsif menuOption.data_type == 'category'
+ t = Term.find(existingData['linkto'])
+ url = site_url(article_url + '/' + category_url + t.structured_url)
+ atts += " href='#{url}' class='menu_link'"
+
+ elsif menuOption.data_type == 'tag'
+ t = Term.find(existingData['linkto'])
+ url = site_url(article_url + '/' + tag_url + t.structured_url)
+ atts += " href='#{url}' class='menu_link'"
+
+ elsif menuOption.data_type == article_url && menuOption.option_id == 0
+ url = site_url(article_url)
+ atts += " href='#{url}'"
+
+ elsif menuOption.data_type == 'custom'
+ url = existingData['customlink']
+ atts += " href='#{url}' class='menu_link'"
+ end
+
+ atts = (atts[0..-2] + " #{existingData['class']}'") if !existingData['class'].blank?
+ atts = (atts[0..-2] + " active'") if url == request.original_url
+
+ atts
+
+ end
+
+
+ # returns target blank if target is equal to nt
+ # Params:
+ # +target+:: is the "target" value that comes from the custom data
+
+ def get_target(target)
+ ret = ''
+ ret = 'target="_blank"' if target == 'nt'
+ ret
+ end
+
+ end
end
\ No newline at end of file