back_end widget breadcrumb finish
This commit is contained in:
		
							parent
							
								
									0b88f7d1f8
								
							
						
					
					
						commit
						2a61470f8b
					
				
							
								
								
									
										3
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										3
									
								
								Gemfile
								
								
								
								
							|  | @ -76,8 +76,8 @@ group :test, :development do | |||
|   gem 'pry-remote' | ||||
|   gem 'pry-stack_explorer' | ||||
|   gem 'pry-debugger' | ||||
|   gem 'debugger' | ||||
|   gem 'faker' | ||||
| 
 | ||||
|   gem "sunspot-rails-tester" | ||||
|   gem 'database_cleaner'  #Strategies for cleaning databases. Can be used to ensure a clean state for testing. | ||||
|   gem "rspec", "~> 2.0" | ||||
|  | @ -93,4 +93,3 @@ group :test, :development do | |||
|   # gem "bluecloth" | ||||
| end | ||||
| 
 | ||||
| gem 'debugger' | ||||
|  |  | |||
|  | @ -2,6 +2,11 @@ class FrontController < ApplicationController | |||
| 
 | ||||
|   layout false | ||||
| 
 | ||||
|   def show_breadcrumb | ||||
|     @ancestors = Page.find(params[:menu_page_id]).ancestors_and_self.map{|m|m.title_translations[locale]}.delete_at(0) rescue [] | ||||
|     @ancestors.delete_at(0) | ||||
|   end | ||||
| 
 | ||||
|   def show_banner | ||||
|     @ad_banner = AdBanner.find(params[:id]) rescue nil | ||||
|   end | ||||
|  |  | |||
|  | @ -7,7 +7,8 @@ | |||
| 		<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %> | ||||
| 		<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>	 | ||||
| 	<% elsif @r_tag.eql?('sitemap') %> | ||||
| 	<% elsif @r_tag.eql?('breadcrumb') %> | ||||
| 	<% else %> | ||||
| 		<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> | ||||
| 	<% end %> | ||||
| </span> | ||||
| </span> | ||||
|  |  | |||
|  | @ -0,0 +1,11 @@ | |||
| <% if not @ancestors.empty? %> | ||||
|   <div class='category_list'> | ||||
|     <ul class='list'> | ||||
|       <%= @ancestors.each do |node| %> | ||||
|         <li class='active'> | ||||
|           <%= link_to node.title, (node.class.to_s.eql?('Page') ? '/' + node.path : node.url) %> | ||||
|         </li> | ||||
|       <% end %> | ||||
|     </ul> | ||||
|   </div> | ||||
| <% end %> | ||||
|  | @ -37,17 +37,18 @@ markups: | |||
|     muti_lang_input_supprt: true | ||||
|     ext_support: true | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| public_r_tags: | ||||
|   - ad_banner | ||||
|   - sub_menu | ||||
|   - sitemap | ||||
|    | ||||
|   - breadcrumb | ||||
| 
 | ||||
| page_part_kinds: | ||||
|   - text | ||||
|   - public_r_tag | ||||
|   - module_widget | ||||
|    | ||||
| 
 | ||||
| widget_field: | ||||
|   - title | ||||
|   - category | ||||
|  | @ -57,7 +58,7 @@ widget_field: | |||
|   - content | ||||
|   - link | ||||
|   - file | ||||
|    | ||||
| 
 | ||||
| widget_field_type: | ||||
|   - title | ||||
|   - category | ||||
|  | @ -76,4 +77,4 @@ default_widget_style: | |||
|   - style2 | ||||
|   - style3 | ||||
|   - style4 | ||||
|   - style5 | ||||
|   - style5 | ||||
|  |  | |||
|  | @ -255,7 +255,7 @@ Orbit::Application.routes.draw do | |||
|     end  | ||||
|   end | ||||
| 
 | ||||
|   controller_paths :front, %w[show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap] | ||||
|   controller_paths :front, %w[show_breadcrumb show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap] | ||||
|   # controller_paths :mobile, %w[index announcement announcement_content dialog_contact dialog_copyright dialog_language map page page_content] | ||||
| 
 | ||||
|   # scope 'app' do | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ module ParserBackEnd | |||
|     parse_images_edit(body, page) | ||||
|     parse_footer_edit(body, page) | ||||
|     parse_sub_menu_edit(body, page) | ||||
|     parse_breadcrumb_edit(body, page) | ||||
|     parse_counter_edit(body) | ||||
|     public_r_tags.each do |tag| | ||||
|       send("parse_#{tag}s_edit", body, page, true) | ||||
|  |  | |||
|  | @ -144,6 +144,31 @@ module ParserCommon | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # breadcrumb | ||||
|   def parse_breadcrumbs_edit(body = nil, page = nil, edit=nil) | ||||
|     body.css('breadcrumb').each do |breadcrumb| | ||||
|       ancestors = Page.find(page.id).ancestors_and_self.map{|m|m.title} rescue nil | ||||
|       ancestors.delete_at(0) | ||||
|       res = '' | ||||
| 
 | ||||
|       if ancestors | ||||
|         res << "<div class='category_list'>" | ||||
|         res << "<ul class='list'>" | ||||
|         ancestors.each do |node| | ||||
|           res << "<li class='active'>" | ||||
|         #  root = "/" | ||||
|         #  res << "<a href='#{edit ? root + admin_page_path(child.id) : (child.class.to_s.eql?('Page') ? root + child.path : child.url)}'>#{child.title}</a>" | ||||
|           res << "<a herf ='/' + node.path )}>#{node}</a>" | ||||
|           res << "</li>" | ||||
|         end | ||||
|         res << "</ul>" | ||||
|         res << "</div>" | ||||
|       end | ||||
|       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | ||||
|       breadcrumb.swap(fragment) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # page_footer | ||||
|   def parse_footer_edit(body, page) | ||||
|     page_footer = body.css('.page_footer').first | ||||
|  | @ -172,6 +197,18 @@ module ParserCommon | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def parse_breadcrumb_edit(body, page) | ||||
|     page_breadcrumb = body.css('.page_breadcrumb').first | ||||
|     if page_breadcrumb | ||||
|       res = "<div id='#{page_breadcrumb['id']}', class='#{page_breadcrumb['class']}'>" | ||||
|       res << @site.breadcrumb rescue nil | ||||
|       res << "</div>" | ||||
|       fragment = Nokogiri::HTML::DocumentFragment.new(body ,res) | ||||
|       page_breadcrumb.swap(fragment) rescue nil | ||||
|     else | ||||
|       '' | ||||
|     end | ||||
|   end | ||||
|   # sitemap | ||||
|   def parse_sitemaps_edit(body = nil, page = nil, edit=nil) | ||||
|     sitemap = body.css('sitemap').first | ||||
|  |  | |||
|  | @ -178,5 +178,9 @@ module ParserFrontEnd | |||
|   def generate_sub_menus(*args) | ||||
|     "<div class='dymanic_load' path='#{front_show_page_sub_menu_path({:menu_page_id => args[0], :page_id => args[1]})}'></div>" | ||||
|   end | ||||
|    | ||||
| 
 | ||||
|   # breadcrumb | ||||
|   def generate_breadcrumbs(*args) | ||||
|     "<div class='dymanic_load' path='#{front_show_breadcrumb_path({:menu_page_id => args[0], :page_id => args[1]})}'></div>" | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Reference in New Issue