Class: Optimacms::Page
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Optimacms::Page
- Includes:
- MetaContent
- Defined in:
- app/models/optimacms/page.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#_before_save ⇒ Object
def self.search_by_filter(filter) pg = filter.page #pg =1 if pg.nil? || pg<=0.
- #_before_validate ⇒ Object
-
#build_translations ⇒ Object
def translations_by_lang return @translations_by_lang unless @translations_by_lang.nil?.
-
#content(lang = '') ⇒ Object
content.
- #content=(v, lang = '') ⇒ Object
- #content_filename(lang = '') ⇒ Object
- #content_filename_full(lang) ⇒ Object
- #content_page? ⇒ Boolean
-
#parent_title ⇒ Object
folder.
-
#save ⇒ Object
save.
Methods included from MetaContent
#meta_keywords_content, #meta_keywords_content=
Class Method Details
.content_filename_dir ⇒ Object
120 121 122 |
# File 'app/models/optimacms/page.rb', line 120 def self.content_filename_dir Rails.root.to_s + '/app/views/pages/' end |
.where_parent(parent_id) ⇒ Object
search
68 69 70 71 72 73 74 |
# File 'app/models/optimacms/page.rb', line 68 def self.where_parent(parent_id) if parent_id.nil? || parent_id==0 where("parent_id is null") elsif parent_id>0 where(parent_id: parent_id) end end |
Instance Method Details
#_before_save ⇒ Object
def self.search_by_filter(filter)
pg = filter.page
#pg =1 if pg.nil? || pg<=0
order = filter.order
if order.empty?
orderby = 'id'
orderdir = 'asc'
else
orderby = order[0][0]
orderdir = order[0][1]
end
self.where(get_where(filter.data))
.order(" #{orderby} #{orderdir}")
.page(pg)
end
def self.get_where(values)
w = '1=1 '
#w << " AND uid like '#{values['uid']}%' " if values['uid'] && !values['uid'].blank?
v = values[:title]
w << " AND title like '%#{v}%' " if v && !v.blank?
v = values[:parent_id]
w << " AND parent_id = '#{v}' " if !v!=-1
w
end
166 167 168 169 170 171 172 173 |
# File 'app/models/optimacms/page.rb', line 166 def _before_save if self.url_changed? self.url_parts_count = PageServices::PageRouteService.count_url_parts(self.url) self.url_vars_count = PageServices::PageRouteService::count_url_vars(self.url) self.parsed_url = PageServices::PageRouteService::parse_url(self.url) end end |
#_before_validate ⇒ Object
90 91 92 |
# File 'app/models/optimacms/page.rb', line 90 def _before_validate self.parent_id = nil if self.parent_id && self.parent_id==0 end |
#build_translations ⇒ Object
def translations_by_lang
return @translations_by_lang unless @translations_by_lang.nil?
@translations_by_lang = {}
Language.list_with_default.each{|lang| @translations_by_lang[lang] = nil}
self.translations.all.each { |r| @translations_by_lang[r.lang] = r }
@translations_by_lang
end
190 191 192 193 194 195 196 197 198 |
# File 'app/models/optimacms/page.rb', line 190 def build_translations langs = Language.list_with_default langs_missing = langs - self.translations.all.map{|r| r.lang} langs_missing.each do |lang| self.translations.new(:lang=>lang) end end |
#content(lang = '') ⇒ Object
content
97 98 99 100 101 102 |
# File 'app/models/optimacms/page.rb', line 97 def content(lang='') filename = content_filename_full(lang) return nil if filename.nil? return '' if !File.exists? filename File.read(filename) end |
#content=(v, lang = '') ⇒ Object
104 105 106 107 108 |
# File 'app/models/optimacms/page.rb', line 104 def content=(v, lang='') File.open(content_filename_full(lang), "w+") do |f| f.write(v) end end |
#content_filename(lang = '') ⇒ Object
115 116 117 118 |
# File 'app/models/optimacms/page.rb', line 115 def content_filename(lang='') return nil if self.name.nil? self.name+content_filename_lang_postfix(lang)+'.'+content_filename_ext end |
#content_filename_full(lang) ⇒ Object
124 125 126 127 128 |
# File 'app/models/optimacms/page.rb', line 124 def content_filename_full(lang) f = content_filename(lang) return nil if f.nil? Page.content_filename_dir + f end |
#content_page? ⇒ Boolean
110 111 112 |
# File 'app/models/optimacms/page.rb', line 110 def content_page? self.controller_action.nil? || self.controller_action.blank? end |
#parent_title ⇒ Object
folder
79 80 81 |
# File 'app/models/optimacms/page.rb', line 79 def parent_title self.folder.title rescue nil end |
#save ⇒ Object
save
58 59 60 61 62 63 64 65 |
# File 'app/models/optimacms/page.rb', line 58 def save begin super rescue => e #ActiveRecord::RecordInvalid false end end |