Add page counter

This commit is contained in:
chris 2012-12-28 10:36:18 +08:00
parent 1c07224694
commit ec96a2e0e7
5 changed files with 33 additions and 6 deletions

View File

@ -12,6 +12,6 @@
<% end %>
<p>
<%= f.submit t(:update) %> <%= link_back %>
<%= f.submit t(:update_) %> <%= link_back %>
</p>
<% end %>

View File

@ -389,6 +389,7 @@ zh_tw:
paper: Paper was successfully updated.
user: User was successfully updated.
success_: S使用者已更新成功
update_: 更新
update_at: 最後更新時間
url: 網址
use_status: ''

View File

@ -30,6 +30,7 @@ module ParserBackEnd
parse_images_edit(body, page)
parse_footer_edit(body, page)
parse_sub_menu_edit(body, page)
parse_counter_edit(body)
public_r_tags.each do |tag|
send("parse_#{tag}s_edit", body, page, true)
end

View File

@ -233,7 +233,7 @@ module ParserCommon
end
# page_counter
def parse_counter(body = nil, page = nil, edit=nil)
def parse_counter_edit(body = nil)
body.css('.page_counter').each do |counter|
res = ''
case counter['option']

View File

@ -11,6 +11,7 @@ module ParserFrontEnd
parse_images(body, page)
parse_menu(body, page)
parse_sub_menu(body, page, site)
parse_counter(body)
i18n.merge!({locale => body.to_html})
end
i18n
@ -21,10 +22,14 @@ module ParserFrontEnd
tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id]
body = Nokogiri::HTML(page.content)
body.css('orbit_front').each do |front|
ret = ''
part = PagePart.find(front['part_id']) if front['part_id']
ret << eval("\"#{front['path']}\"") rescue ''
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load widget' path='#{ret}'></div>")
if front['class'] && front['class'].include?('dymanic_load')
ret = ''
part = PagePart.find(front['part_id']) if front['part_id']
ret << eval("\"#{front['path']}\"") rescue ''
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load widget' path='#{ret}'></div>")
else
fragment = Nokogiri::HTML::DocumentFragment.new(body, eval("#{front['value']}").to_s)
end
front.swap(fragment)
end
body.to_html
@ -131,6 +136,26 @@ module ParserFrontEnd
end
end
def parse_counter(body = nil)
body.css('.page_counter').each do |counter|
ret = ''
case counter['option']
when 'all'
ret << "display_visitors"
when 'today'
ret << "display_visitors_today"
when 'this_week'
ret << "display_visitors_this_week"
when 'this_month'
ret << "display_visitors_this_month"
when 'this_year'
ret << "display_visitors_this_year"
end
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<orbit_front id='#{counter['id']}' class='#{counter['class']}' value='#{ret}'></orbit_front>")
counter.swap(fragment)
end
end
# ad_banners
def generate_ad_banners(*args)
"<div class='dymanic_load' path='#{front_show_banner_path(args[0])}'></div>"