| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  | module ParserCommon | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  |   def menu_level(page, current, menu, edit = false) | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |     res = '' | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  |     if current <= menu.levels | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |       if current != 0
 | 
					
						
							|  |  |  |         res << "<div class='rc_dm'>" | 
					
						
							|  |  |  |         item = rand(100000) | 
					
						
							| 
									
										
										
										
											2012-02-24 11:11:51 +00:00
										 |  |  |         res << "<a href='#{edit ? admin_page_path(page.id) : page.full_name}' class='dm_ctrl' rel='#{item}'>#{page.i18n_variable[I18n.locale]}<span class='down'></span></a>" | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |         if page.children.size > 0
 | 
					
						
							|  |  |  |           res << "<div id='#{item}' class='dm_list #{menu.values['class_#{current}']}'>" | 
					
						
							|  |  |  |           res << "<ul class='ini_list'>" | 
					
						
							|  |  |  |           i = nil | 
					
						
							|  |  |  |           i = 1 if menu.values["li_incremental_#{current}"] | 
					
						
							|  |  |  |           page.children.each do |child| | 
					
						
							|  |  |  |             res << menu_li(child, current, menu, i, edit) | 
					
						
							|  |  |  |             i += 1 if i | 
					
						
							|  |  |  |           end | 
					
						
							|  |  |  |           res << "</ul>" | 
					
						
							|  |  |  |         res << "</div>" | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |         res << "</div>" | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         res << '<ul>' | 
					
						
							| 
									
										
										
										
											2012-02-24 11:11:51 +00:00
										 |  |  |         res << "<li>" + "<a href='#{edit ? admin_page_path(page.id) : page.full_name}' class='dm_ctrl'>#{page.i18n_variable[I18n.locale]}</a>" + "</li>" | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |         page.children.each do |child| | 
					
						
							|  |  |  |           res << "<li>" + menu_level(child, current + 1, menu, edit) + "</li>" | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |         res << '</ul>' | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   def menu_li(page, current, menu, i, edit) | 
					
						
							|  |  |  |     res = "<li class=" | 
					
						
							|  |  |  |     res << menu.values["li_class_#{current}"] | 
					
						
							|  |  |  |     res << "_#{i}" if i | 
					
						
							|  |  |  |     res << ">" | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |     if page.children.size > 0 
 | 
					
						
							|  |  |  |       res << menu_level(page, current + 1, menu, edit) | 
					
						
							|  |  |  |     else | 
					
						
							| 
									
										
										
										
											2012-02-24 11:11:51 +00:00
										 |  |  |       res << "<a href='#{edit ? admin_page_path(page.id) : page.full_name}' class='nav dm_ctrl'>#{page.i18n_variable[I18n.locale]}</a>" | 
					
						
							| 
									
										
										
										
											2012-01-24 03:38:53 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  |     res << "</li>" | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-27 09:57:50 +00:00
										 |  |  |   # ad_banners | 
					
						
							|  |  |  |   def parse_ad_banners(body = nil, page = nil, id = nil) | 
					
						
							|  |  |  |     body.css('ad_banner').each do |banner| | 
					
						
							|  |  |  |       res = '' | 
					
						
							|  |  |  |       ad_banner = AdBanner.find(banner["id"]) rescue nil | 
					
						
							|  |  |  |       if ad_banner && ad_banner.display? | 
					
						
							|  |  |  |         res << "<script type='text/javascript'>
 | 
					
						
							|  |  |  |                 $(document).ready(function(){ $('#slideshow-#{ad_banner.title.dehumanize}').cycle({delay: -1000, fx: '#{ad_banner.ad_fx.nil?? 'fade': ad_banner.ad_fx}', timeoutFn: getTimeout }); }); | 
					
						
							|  |  |  |                 </script>"
 | 
					
						
							|  |  |  |         res << "<div id='slideshow-#{ad_banner.title.dehumanize}'>" | 
					
						
							|  |  |  |          ad_banner.ad_images.each do |ad_image| | 
					
						
							|  |  |  |            res << "<img src='#{ad_image.file}' " | 
					
						
							|  |  |  |            res << "alt='#{ad_image.picture_intro || ' '}' " | 
					
						
							|  |  |  |            res << "time_to_next='#{ad_image.get_delay_time}' " | 
					
						
							|  |  |  |            res << "link_open='#{ad_image.link_open}' " | 
					
						
							|  |  |  |            res << "link_url='#{(ad_banner.direct_to_after_click?? ad_image.out_link : ad_banner.context) || ' '}' " | 
					
						
							|  |  |  |            res << "/>" | 
					
						
							|  |  |  |           end | 
					
						
							|  |  |  |         res << "</div>" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | 
					
						
							|  |  |  |       banner.swap(fragment) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # page_images | 
					
						
							|  |  |  |   def parse_images(body, page) | 
					
						
							|  |  |  |     body.css('.page_image').each do |page_image| | 
					
						
							|  |  |  |       # image = page.custom_images.detect{|image| image.name.eql?(tag.attr['name']) } | 
					
						
							|  |  |  |       # image = page.design.custom_images.detect{|image| image.name.eql?(tag.attr['name']) } unless image | 
					
						
							|  |  |  |       image = page.design.images.detect{|image| image.name.eql?(page_image['name']) } unless image | 
					
						
							|  |  |  |       if image | 
					
						
							|  |  |  |         res = "<img src=#{image.file.url} " | 
					
						
							|  |  |  |         page_image.attributes.each do |l| | 
					
						
							|  |  |  |           res << "#{l[0]}='#{l[1]}' " | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |         res << '>' | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | 
					
						
							|  |  |  |       page_image.swap(fragment) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # page_menu | 
					
						
							|  |  |  |   def parse_menu(body, page, edit=nil) | 
					
						
							|  |  |  |     page_menu = body.css('.page_menu').first | 
					
						
							|  |  |  |     home = get_homepage | 
					
						
							|  |  |  |     menu = page.design.layout.menu | 
					
						
							|  |  |  |     fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, 0, menu, true)) | 
					
						
							|  |  |  |     page_menu.swap(fragment) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  | end |