OSDN Git Service

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