OSDN Git Service

t#32349:addd js model
[pettanr/pettanr.git] / vendor / plugins / content / lib / content.rb
1 module ActiveRecord
2   class Base
3     module Content
4       def self.included(base)
5         base.extend(ClassMethods)
6         base.__send__ :include, InstanceMethods
7       end
8       
9       module ClassMethods
10         
11         def self.mylist_where au
12           ['panels.author_id = ?', au.id]
13         end
14         
15         def self.himlist_where au
16           ['panels.author_id = ? and panels.publish > 0', au.id]
17         end
18         
19         def self.mylist au, page = 1, page_size = Author.default_panel_picture_page_size
20           PanelPicture.where(self.mylist_where(au)).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
21         end
22         
23         def self.himlist au, page = 1, page_size = Author.default_panel_picture_page_size
24           PanelPicture.where(self.himlist_where(au)).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
25         end
26         
27         def self.mylist_paginate au, page = 1, page_size = Author.default_panel_picture_page_size
28           Kaminari.paginate_array(Array.new(PanelPicture.where(self.mylist_where(au)).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
29         end
30         
31         def self.himlist_paginate au, page = 1, page_size = Author.default_panel_picture_page_size
32           Kaminari.paginate_array(Array.new(PanelPicture.where(self.himlist_where(au)).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
33         end
34         
35       end
36       
37       module InstanceMethods
38         private
39         
40         public
41         
42         def visible? roles
43           if MagicNumber['run_mode'] == 0
44             return false unless guest_role_check(roles)
45           else
46             return false unless reader_role_check(roles)
47           end
48           return true if self.panel.own?(roles)
49           self.panel.visible? roles
50         end
51         
52         def supply_default
53           self.x = 0
54           self.y = 0
55           if self.picture
56             self.width = self.picture.width 
57             self.height = self.picture.height 
58           end
59           if self.panel
60             self.t = self.panel.new_t 
61             self.z = self.panel.new_z 
62           end
63         end
64         
65         def overwrite  pid
66           self.panel_id = pid
67         end
68         
69       end
70       
71     end
72     include Content
73   end
74 end
75