6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'app/models/fabulator_context.rb', line 6
def self.find_by_page(p)
if p.request.session[:user_id].blank?
c = self.first(:conditions => [
'page_id = ? AND session = ? AND (user_id IS NULL OR user_id=0)',
p.id, p.request.session[:session_id]
] )
else
c = self.first(:conditions => [
'page_id = ? AND session = ? AND user_id = ?',
p.id, p.request.session[:session_id], p.request.session[:user_id]
] )
end
if c.nil? && !p.request.session[:user_id].blank?
c = self.first(:conditions => [
'page_id = ? AND session = ?',
p.id, p.request.session[:session_id]
] )
if !c.nil? && c.user.nil?
c.update_attribute(:user_id, p.request.session[:user_id])
end
end
p.fabulator_context = c.context unless c.nil?
return c unless c.nil?
self.new(
:context => YAML::dump(p.fabulator_context),
:page_id => p.id,
:user_id => p.request.session[:user_id],
:session => p.request.session[:session_id]
)
end
|