Finalize ad_banner changes: front-end, back-end, mobile

This commit is contained in:
chris committed 2013-10-19 19:17:59 +08:00
1 parent fea86ba3a9
commit 7353b48212
11 files changed
+86 -95

No files matched your search

+27 -35
View File
@@ -1,5 +1,6 @@
module ParserCommon
include ActionView::Helpers::TagHelper
include ActionView::Helpers::FrontHelper
# include ActionView::Helpers::UrlHelper
def menu_level(page, current_page, current, menu, edit = false)
@@ -44,47 +45,38 @@ module ParserCommon
res = ''
ad_banner = AdBanner.find(banner["id"]) rescue nil
if ad_banner
res << "<script type='text/javascript'>
jQuery(function( $ ){
$.preload( '#slideshow-#{ad_banner.title.dehumanize} img', {
onFinish:finish,
threshold: 2 //'2' is the default, how many at a time, to load.
});
function finish(){
$('#slideshow-#{ad_banner.title.dehumanize}').cycle({
delay: -1000,
fx: '#{ad_banner.ad_fx.nil? ? 'fade': ad_banner.ad_fx}',
timeoutFn: getTimeout,
pager: '.banner_nav-#{ad_banner.title.dehumanize}',
pagerAnchorBuilder: function(idx, slide) {
return \"<li><a href='#'></a></li>\";
}
});
};
});
</script>"
res << "<div style='position:relative'>"
res << "<ul id='banner_nav' class='clear banner_nav-#{ad_banner.title.dehumanize}'></ul>"
res << "<div id='slideshow-#{ad_banner.title.dehumanize}' class='slideshow'>"
printable_ad_images = []
res << "<div id='slideshow-#{ad_banner.title.dehumanize}' class='orbit-cycle-slideshow' data-cycle-timeout=#{ad_banner.timeout_millisecond} data-cycle-pager='.banner_nav_#{ad_banner.title.dehumanize}' data-cycle-pager-template='<li><a href=\"#\"></a></li>' data-cycle-pager-active-class='activeSlide' data-cycle-random='true' style='z-index: 0'>"
ad_banner.ad_images.can_display.each do |ad_image|
ad_image.weight.times do
printable_ad_images << ad_image
end
end
printable_ad_images.shuffle!
hide = printable_ad_images.size > 1
printable_ad_images.each do |ad_image| #TODO Need Reflact
res << "<img src='#{ad_image.file}' "
res << "alt='#{ad_image.title || ' '}' "
res << "time_to_next='#{ad_banner.transition_msec}' "
res << "link_open='#{ad_image.link_open}' "
res << "link_url='#{(ad_image.out_link)}' "
res << "style='#{'display:none;' if hide} #{'cursor:pointer;' if !ad_image.out_link.blank?}'"
res << "/>"
link = ad_image_link(ad_image)
res << "<img src=#{ad_image.file} "
res << "alt=#{ad_image.title} "
res << "link_open=#{ad_image.link_open} "
res << "link_url=#{link} "
res << "height=#{ad_banner.height} "
res << "width=#{ad_banner.width} "
res << "style='display:none; #{'cursor:pointer;' if link}'"
res << "/>"
end
res << "</div>"
res << "</div>"
res << "<script>"
res << "$(function(){"
res << "if($('#slideshow-#{ad_banner.title.dehumanize} img').length > 1){"
res << "var a = [];"
ad_banner.ad_images.can_display.each do |image|
res << "a.push('#{image.file.url}');"
end
res << "$.preload(a, 2, function(){"
res << "$('.orbit-cycle-slideshow').cycle();"
res << "});"
res << "}"
res << "else{"
res << "$('#slideshow-#{ad_banner.title.dehumanize} img').show()"
res << "}"
res << "});"
res << "</script>"
end
fragment = Nokogiri::HTML::DocumentFragment.new(body, res)
banner.swap(fragment)