Class: Optimacms::Page

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
MetaContent
Defined in:
app/models/optimacms/page.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from MetaContent

#meta_keywords_content, #meta_keywords_content=

Class Method Details

.content_filename_dir ⇒ Object



68
69
70
# File 'app/models/optimacms/page.rb', line 68

def self.content_filename_dir
  Rails.root.to_s + '/app/views/pages/'
end

.get_where(values) ⇒ Object



104
105
106
107
108
109
110
111
# File 'app/models/optimacms/page.rb', line 104

def self.get_where(values)
  w = '1=1 '
  #w << " AND uid like '#{values['uid']}%' " if values['uid'] && !values['uid'].blank?
  w << " AND title like '%#{values['title']}%' " if values['title'] && !values['title'].blank?
  w << " AND parent_id = '#{values['parent_id']}' " if !values['parent_id']!=-1

  w
end

.list(filter, pg) ⇒ Object

search



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'app/models/optimacms/page.rb', line 81

def self.list(filter, pg)

  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

  #@items = Task.includes(:status, :client, :contacts).for_user(current_user.id).all
  #includes(:status, :client, :contacts).for_user(filter['user_id'])
  #includes(:status, :client, :contacts, :received_user)
  self.where(get_where(filter.data))
    .order(" #{orderby} #{orderdir}")
    .page(pg)

end

Instance Method Details

#_before_save ⇒ Object



113
114
115
116
117
118
119
120
# File 'app/models/optimacms/page.rb', line 113

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

#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


137
138
139
140
141
142
143
144
145
# File 'app/models/optimacms/page.rb', line 137

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



45
46
47
48
49
50
# File 'app/models/optimacms/page.rb', line 45

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



52
53
54
55
56
# File 'app/models/optimacms/page.rb', line 52

def content=(v, lang='')
  File.open(content_filename_full(lang), "w+") do |f|
    f.write(v)
  end
end

#content_filename(lang = '') ⇒ Object



63
64
65
66
# File 'app/models/optimacms/page.rb', line 63

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



72
73
74
75
76
# File 'app/models/optimacms/page.rb', line 72

def content_filename_full(lang)
  f = content_filename(lang)
  return nil if f.nil?
  Page.content_filename_dir + f
end

#content_page? ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
# File 'app/models/optimacms/page.rb', line 58

def content_page?
  self.controller_action.nil? || self.controller_action.blank?
end

#parent_title ⇒ Object

folder



38
39
40
# File 'app/models/optimacms/page.rb', line 38

def parent_title
  self.folder.title
end

#save ⇒ Object

save



26
27
28
29
30
31
32
33
# File 'app/models/optimacms/page.rb', line 26

def save
  begin
    super
  rescue => e
    #ActiveRecord::RecordInvalid
    false
  end
end