Sha256: 673cc38558ab0e5d820aff9cec4084e1cbd85111e6ddaaf42ccbb10896922954
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
class Site < ActiveRecord::Base set_table_name 'exp_sites' set_primary_key 'site_id' has_many :template_groups has_many :templates PREFERENCE_PATHS = [ 'system:theme_folder_path', 'system:captcha_path', 'template:tmpl_file_basepath', 'member:avatar_path', 'member:photo_path', 'member:sig_img_path', 'member:prv_msg_upload_path' ] before_save :update_preferences def after_initialize @preferences = Hash.new end def name self.site_label end def slug self.site_name end def preferences if @preferences.empty? preference_map.each do |key, method_base| @preferences[key] = ExpressionEngine::Preference.new(self.send(method_base.to_sym)) end end @preferences end def update_preferences preference_map.each do |key, method_base| self.send("#{method_base}=".to_sym, @preferences[key].to_s) end end def root_path=(other) pattern = Regexp.quote(self.root_path) PREFERENCE_PATHS.each do |preference| group, setting = preference.split(':') self.preferences[group.to_sym][setting.to_sym].gsub!(/^#{pattern}/, other) end end def root_path common_elements = nil PREFERENCE_PATHS.each do |preference| group, setting = preference.split(':') path = self.preferences[group.to_sym][setting.to_sym].split('/') unless path.empty? common_elements = path if common_elements.nil? common_elements = common_elements & path end end common_elements.join('/') end private def preference_map [:system, :mailing_list, :member, :template, :weblog].inject({}) do |list, key| list.merge(key => "site_#{key.to_s.gsub('_', '')}_preferences") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbee-0.1.0 | lib/models/site.rb |