Add sub_menu to site_info

This commit is contained in:
Christophe Vilayphiou 2012-05-08 17:27:02 +08:00
parent caba8ce7a4
commit 5c7cf1aef2
7 changed files with 43 additions and 8 deletions

View File

@ -18,6 +18,7 @@ class Site
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :footer, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy has_one :footer, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :sub_menu, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_many :site_metas, :autosave => true, :dependent => :destroy has_many :site_metas, :autosave => true, :dependent => :destroy
before_save :set_key before_save :set_key
@ -33,7 +34,6 @@ class Site
end end
def up_to_date? def up_to_date?
p res = %x(git remote show origin)
res = res.split('rails_3_1').pop.gsub('(', '').gsub(')','').strip rescue nil res = res.split('rails_3_1').pop.gsub('(', '').gsub(')','').strip rescue nil
res.eql?('local out of date') ? false : true res.eql?('local out of date') ? false : true
end end
@ -46,6 +46,10 @@ class Site
@footer ||= I18nVariable.first(:conditions => {:key => 'footer', :language_value_id => self.id, :language_value_type => self.class}) rescue nil @footer ||= I18nVariable.first(:conditions => {:key => 'footer', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
end end
def sub_menu
@sub_menu ||= I18nVariable.first(:conditions => {:key => 'sub_menu', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
end
METAS.each do |meta| METAS.each do |meta|
define_method meta do define_method meta do
fetch_meta = self.site_metas.where(key: meta).limit(1) fetch_meta = self.site_metas.where(key: meta).limit(1)
@ -66,6 +70,7 @@ class Site
def set_key def set_key
title.key = 'title' if title && (title.key.blank? rescue true) title.key = 'title' if title && (title.key.blank? rescue true)
footer.key = 'footer' if footer && (footer.key.blank? rescue true) footer.key = 'footer' if footer && (footer.key.blank? rescue true)
sub_menu.key = 'sub_menu' if sub_menu && (sub_menu.key.blank? rescue true)
end end
end end

View File

@ -55,6 +55,14 @@
<% end %> <% end %>
</div> </div>
</div> </div>
<div class="control-group">
<label class="control-label"><%= t 'admin.site_sub_menu' %></label>
<div class="controls">
<%= f.fields_for :sub_menu, @site.sub_menu do |f| %>
<%= f.text_area locale, :class => "tinymce_textarea input-xxlarge" %>
<% end %>
</div>
</div>
<% end %> <% end %>
<% end %> <% end %>
</div> </div>

View File

@ -205,6 +205,7 @@ en:
site_description: Site description site_description: Site description
site_footer: Site footer site_footer: Site footer
site_settings: Site Setting site_settings: Site Setting
site_sub_menu: Site sub-menu
site_title: Site title site_title: Site title
super_pages: Super pages super_pages: Super pages
structure: Structure structure: Structure

View File

@ -195,6 +195,7 @@ zh_tw:
site_description: 網站描述 site_description: 網站描述
site_footer: 網站頁尾 site_footer: 網站頁尾
site_settings: 基本設定 site_settings: 基本設定
site_sub_menu: 網站次選單
site_title: 網站標題 site_title: 網站標題
setup_member: 成員設置 setup_member: 成員設置
setup_translations: 語系設定 setup_translations: 語系設定

View File

@ -29,6 +29,7 @@ module ParserBackEnd
public_r_tags = parse_content_edits(body, page, id) public_r_tags = parse_content_edits(body, page, id)
parse_images(body, page) parse_images(body, page)
parse_footer(body, page, true) parse_footer(body, page, true)
parse_sub_menu(body, page, true)
public_r_tags.each do |tag| public_r_tags.each do |tag|
send("parse_#{tag}s", body, page,id) send("parse_#{tag}s", body, page,id)

View File

@ -116,14 +116,32 @@ module ParserCommon
end end
end end
# page_menu # page_footer
def parse_footer(body, page, edit=nil) def parse_footer(body, page, edit=nil)
page_footer = body.css('.page_footer').first page_footer = body.css('.page_footer').first
res = "<div, id='footer', class='footer'>" if page_footer
res << @site.footer[I18n.locale] res = "<div id='#{page_footer['id']}', class='#{page_footer['class']}'>"
res << @site.footer[I18n.locale] rescue nil
res << "</div>" res << "</div>"
fragment = Nokogiri::HTML::DocumentFragment.new(body ,res) fragment = Nokogiri::HTML::DocumentFragment.new(body ,res)
page_footer.swap(fragment) rescue nil page_footer.swap(fragment) rescue nil
else
''
end
end
# page_sub_menu
def parse_sub_menu(body, page, edit=nil)
page_sub_menu = body.css('.page_sub_menu').first
if page_sub_menu
res = "<div id='#{page_sub_menu['id']}', class='#{page_sub_menu['class']}'>"
res << @site.sub_menu[I18n.locale] rescue nil
res << "</div>"
fragment = Nokogiri::HTML::DocumentFragment.new(body ,res)
page_sub_menu.swap(fragment) rescue nil
else
''
end
end end
end end

View File

@ -26,7 +26,8 @@ module ParserFrontEnd
parse_menu(body, page) parse_menu(body, page)
public_r_tags = parse_contents(body, page, id,params[:preview]) public_r_tags = parse_contents(body, page, id,params[:preview])
parse_images(body, page) parse_images(body, page)
parse_footer(body, page, true) parse_footer(body, page)
parse_sub_menu(body, page)
public_r_tags.each do |tag| public_r_tags.each do |tag|
send("parse_#{tag}s", body, page,id) send("parse_#{tag}s", body, page,id)