OSDN Git Service

NP_gallery v0.95
[nucleus-jp/nucleus-plugins.git] / NP_gallery / tags / v0.95 / gallery / list_class.php
1 <?php\r
2 \r
3 class GALLERY_LIST {\r
4         \r
5         var $template;\r
6         \r
7         function GALLERY_LIST() {}\r
8         \r
9         function settemplate($template) {\r
10                 $this->template = & $template;\r
11         }\r
12         \r
13         function display($sortorder) {  \r
14                 global $gmember;\r
15                 global $NPG_CONF;\r
16                 \r
17                 if(!$NPG_CONF['template']) $NPG_CONF['template'] = 1;\r
18                 \r
19                 $this->template = & new NPG_TEMPLATE($NPG_CONF['template']);\r
20                 //$this->template->readall();\r
21                 \r
22                 $template_header = $this->template->section['LIST_HEADER'];\r
23                 if($NPG_CONF['thumborlist']=='list')$template_body = $this->template->section['LIST_BODY'];\r
24                 if($NPG_CONF['thumborlist']=='thumb')$template_body = $this->template->section['LIST_THUM'];\r
25                 \r
26                 $template_footer = $this->template->section['LIST_FOOTER'];\r
27                 \r
28                 $actions = new LIST_ACTIONS();\r
29                 $parser = new PARSER($actions->getdefinedActions(),$actions);\r
30                 $actions->setparser($parser);\r
31                 \r
32                 //header\r
33                 $parser->parse($template_header);\r
34                 \r
35                 //body\r
36                 switch($sortorder){\r
37                         case 'title': $so = ' order by title ASC, albumid DESC'; break;\r
38                         case 'desc': $so = ' order by description ASC, albumid DESC'; break;\r
39                         case 'owner': $so = ' order by ownername ASC, albumid DESC'; break;\r
40                         case 'date': $so = ' order by modified DESC, albumid DESC'; break;\r
41                         case 'numb': $so = ' order by numberofimages DESC, albumid DESC'; break;\r
42                         \r
43                         case 'titlea': $so = ' order by title DESC, albumid DESC'; break;\r
44                         case 'desca': $so = ' order by description DESC, albumid DESC'; break;\r
45                         case 'ownera': $so = ' order by ownername DESC, albumid DESC'; break;\r
46                         case 'datea': $so = ' order by modified ASC, albumid DESC'; break;\r
47                         case 'numba': $so = ' order by numberofimages ASC, albumid DESC'; break;\r
48                         default : $so =''; break;\r
49                 }\r
50                 \r
51                 $query = "select a.*, b.mname as ownername from ".sql_table('plug_gallery_album').' as a left join '.sql_table('member').' as b on a.ownerid=b.mnumber '.$so;\r
52                 $result = mysql_query($query);\r
53                 $albums = $gmember->getallowedalbums();\r
54                 $albumids = $gmember->getAllowedAlbumsids();\r
55                 \r
56                 while ($row = mysql_fetch_object($result)) {\r
57                         if(!$row->ownername) $row->ownername = 'guest';\r
58                         $actions->setCurrentRow($row);\r
59                         //if its public, show it\r
60                         //echo $row->albumid;\r
61                         if($row->publicalbum){\r
62                                 $parser->parse($template_body);\r
63                         }\r
64                         //if its not public, check if its in the array of allowed albums for this member\r
65                         elseif(@in_array($row->albumid,$albumids) ){\r
66                                 $parser->parse($template_body);\r
67                         }\r
68                 }\r
69                 \r
70                 //footer\r
71                 $parser->parse($template_footer);\r
72         } //end of display function\r
73 \r
74         \r
75 } //end of list class\r
76 \r
77 class LIST_ACTIONS extends BaseActions {\r
78         var $CurrentRow; //query object\r
79         var $parser;\r
80         \r
81         \r
82         function LIST_ACTIONS() {\r
83                 $this->BaseActions();\r
84                 \r
85         }\r
86 \r
87         function getdefinedActions() {\r
88                 return array(\r
89                         'breadcrumb',\r
90                         'sortbytitle',\r
91                         'sortbydescription',\r
92                         'sortbyowner',\r
93                         'sortbymodified',\r
94                         'sortbynumber',\r
95                         'albumlink',\r
96                         'albumthumbnail',\r
97                         'centeredtopmargin',\r
98                         'title',\r
99                         'description',\r
100                         'ownerid',\r
101                         'ownername',\r
102                         'modified',\r
103                         'numberofimages',\r
104                         'addalbumlink',\r
105                         'addpictureslink',\r
106                         'if',\r
107                         'else',\r
108                         'endif' );\r
109                         \r
110         }\r
111         \r
112         function setParser(&$parser) {$this->parser =& $parser; }\r
113         function setCurrentRow(&$currentrow) { $this->CurrentRow =& $currentrow; }\r
114         \r
115         function parse_breadcrumb() {\r
116                 //$breadcrumb = getBreadcrumb(); echo $breadcrumb; \r
117                 echo __NPG_BREADCRUMB_GALLERY;\r
118         }\r
119         function parse_sortbytitle() { \r
120                 $so = requestvar('sort');\r
121                 if($so == 'title') $so = 'titlea'; else $so = 'title';\r
122                 echo generateLink('list', $so); \r
123         }\r
124         function parse_sortbydescription() {\r
125                 $so = requestvar('sort');\r
126                 if($so == 'desc') $so = 'desca'; else $so = 'desc';\r
127                 echo generateLink('list', $so); \r
128         }\r
129         function parse_sortbyowner() {\r
130                 $so = requestvar('sort');\r
131                 if($so == 'owner') $so = 'ownera'; else $so = 'owner';\r
132                 echo generateLink('list', $so); \r
133         }\r
134         function parse_sortbymodified() {\r
135                 $so = requestvar('sort');\r
136                 if($so == 'date') $so = 'datea'; else $so = 'date';\r
137                 echo generateLink('list', $so); \r
138         }\r
139         function parse_sortbynumber() {\r
140                 $so = requestvar('sort');\r
141                 if($so == 'numb') $so = 'numba'; else $so = 'numb';\r
142                 echo generateLink('list', $so); \r
143         }\r
144         \r
145         function parse_albumthumbnail() { \r
146                 global $CONF;\r
147                 echo $CONF['IndexURL'].$this->CurrentRow->thumbnail; }\r
148         function parse_centeredtopmargin($height,$adjustment) {\r
149                 global $NP_BASE_DIR;\r
150                 $image_size = getimagesize($NP_BASE_DIR.$this->CurrentRow->thumbnail);\r
151                 $topmargin = ((intval($height) - intval($image_size[1])) / 2) + intval($adjustment);\r
152                 echo 'margin-top: '.$topmargin.'px;';\r
153         }\r
154         \r
155         function parse_albumlink() {\r
156                 echo generateLink('album', $this->CurrentRow->albumid);\r
157         }\r
158         function parse_title() {echo $this->CurrentRow->title; }\r
159         function parse_description() {echo $this->CurrentRow->description; }\r
160         function parse_ownerid() {echo $this->CurrentRow->ownerid; }\r
161         function parse_ownername() {echo $this->CurrentRow->ownername; }\r
162         function parse_modified($format = 'M j, h:i',$arg1 ='',$arg2='',$arg3='') {\r
163                 if($arg1) $arg1 = ','.$arg1;\r
164                 if($arg2) $arg2 = ','.$arg2;\r
165                 if($arg3) $arg3 = ','.$arg3;\r
166                 $format = $format . $arg1 . $arg2 . $arg3;\r
167                 $d = $this->CurrentRow->modified;\r
168                 $d = converttimestamp($d);\r
169                 $d = date($format,$d);\r
170                 echo $d;\r
171         }\r
172         function parse_numberofimages() {echo $this->CurrentRow->numberofimages; }\r
173         \r
174         function parse_addalbumlink() {$aa = generateLink('addAlbumF'); echo $aa;}\r
175         function parse_addpictureslink() {$ap = generateLink('batchaddPictF'); echo $ap;}\r
176         \r
177 \r
178         function parse_if($field, $name='', $value = '') {\r
179                 global $gmember;\r
180                 \r
181                 $condition = 0;\r
182                 switch ($field) {\r
183                         case 'canaddpicture':\r
184                                 $condition = $gmember->canAddPicture();\r
185                                 break;\r
186                         case 'canaddalbum':\r
187                                 $condition = $gmember->canAddAlbum();\r
188                                 break;\r
189                         default: \r
190                                 break;\r
191                 }\r
192                 \r
193                 $this->_addIfCondition($condition);\r
194                 \r
195         }\r
196 \r
197 \r
198 }\r
199 ?>\r