Change the way links are displayed in menus in front-end
This commit is contained in:
		
							parent
							
								
									6c83b3f9ae
								
							
						
					
					
						commit
						8fcb8ef8de
					
				|  | @ -21,7 +21,7 @@ class PagesController < ApplicationController | ||||||
|            when 'Page'     |            when 'Page'     | ||||||
|              render_page |              render_page | ||||||
|            when 'Link' |            when 'Link' | ||||||
|              redirect_to "http://#{@item[:url]}" |              redirect_to @item[:url] | ||||||
|          end |          end | ||||||
|        else |        else | ||||||
|          render :file => "#{Rails.root}/public/404.html", :status => :not_found |          render :file => "#{Rails.root}/public/404.html", :status => :not_found | ||||||
|  |  | ||||||
|  | @ -2,10 +2,20 @@ class Link < Item | ||||||
|    |    | ||||||
|   field :url |   field :url | ||||||
|    |    | ||||||
|   validates_presence_of :url |   validates :url, :presence => true, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix | ||||||
|  | 
 | ||||||
|  | 	before_validation :add_http | ||||||
| 
 | 
 | ||||||
|   def link |   def link | ||||||
|     ApplicationController.helpers.link_to(self.name, self.url) |     ApplicationController.helpers.link_to(self.name, self.url) | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   protected | ||||||
|  | 
 | ||||||
|  | 	def add_http | ||||||
|  | 	  unless self.url[/^http?s:\/\//] | ||||||
|  | 	    self.url = 'http://' + self.url | ||||||
|  | 	  end | ||||||
|  | 	end | ||||||
|      |      | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -27,7 +27,8 @@ module ParserCommon | ||||||
|     res << "_#{i}" if i |     res << "_#{i}" if i | ||||||
|     res << " active" if (current_page.id.eql?(page.id) || current_page.descendant_of?(page)) |     res << " active" if (current_page.id.eql?(page.id) || current_page.descendant_of?(page)) | ||||||
|     res << "'>" |     res << "'>" | ||||||
|     res << "<a href='/#{edit ? admin_page_path(page.id) : page.path}'><span>#{page.i18n_variable[I18n.locale]}</span></a>" |     root = "/" | ||||||
|  |     res << "<a href='#{edit ? root + admin_page_path(page.id) : (page._type.eql?('Page') ? root + page.path : page.url)}'><span>#{page.i18n_variable[I18n.locale]}</span></a>" | ||||||
|     if page.visible_children.size > 0 && current <= menu.levels |     if page.visible_children.size > 0 && current <= menu.levels | ||||||
|       res << "<span class='dot'></span>" |       res << "<span class='dot'></span>" | ||||||
|       res << menu_level(page, current_page, current + 1, menu, edit) |       res << menu_level(page, current_page, current + 1, menu, edit) | ||||||
|  | @ -119,7 +120,8 @@ module ParserCommon | ||||||
|         res << "<ul class='list'>" |         res << "<ul class='list'>" | ||||||
|         menu_page.visible_children.each do |child| |         menu_page.visible_children.each do |child| | ||||||
|           res << "<li class='#{page.id.eql?(child.id) ? 'active' : nil}'>" |           res << "<li class='#{page.id.eql?(child.id) ? 'active' : nil}'>" | ||||||
|           res << "<a href='/#{edit ? admin_page_path(child.id) : child.path}'>#{child.i18n_variable[I18n.locale]}</a>" |           root = "/" | ||||||
|  |           res << "<a href='#{edit ? root + admin_page_path(child.id) : (child._type.eql?('Page') ? root + child.path : child.url)}'>#{child.i18n_variable[I18n.locale]}</a>" | ||||||
|           res << "</li>" |           res << "</li>" | ||||||
|         end |         end | ||||||
|         res << "</ul>" |         res << "</ul>" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue