OSDN Git Service

NP_gallery v0.95
[nucleus-jp/nucleus-plugins.git] / NP_gallery / tags / v0.95 / gallery / list_class.php
diff --git a/NP_gallery/tags/v0.95/gallery/list_class.php b/NP_gallery/tags/v0.95/gallery/list_class.php
new file mode 100644 (file)
index 0000000..962c250
--- /dev/null
@@ -0,0 +1,199 @@
+<?php\r
+\r
+class GALLERY_LIST {\r
+       \r
+       var $template;\r
+       \r
+       function GALLERY_LIST() {}\r
+       \r
+       function settemplate($template) {\r
+               $this->template = & $template;\r
+       }\r
+       \r
+       function display($sortorder) {  \r
+               global $gmember;\r
+               global $NPG_CONF;\r
+               \r
+               if(!$NPG_CONF['template']) $NPG_CONF['template'] = 1;\r
+               \r
+               $this->template = & new NPG_TEMPLATE($NPG_CONF['template']);\r
+               //$this->template->readall();\r
+               \r
+               $template_header = $this->template->section['LIST_HEADER'];\r
+               if($NPG_CONF['thumborlist']=='list')$template_body = $this->template->section['LIST_BODY'];\r
+               if($NPG_CONF['thumborlist']=='thumb')$template_body = $this->template->section['LIST_THUM'];\r
+               \r
+               $template_footer = $this->template->section['LIST_FOOTER'];\r
+               \r
+               $actions = new LIST_ACTIONS();\r
+               $parser = new PARSER($actions->getdefinedActions(),$actions);\r
+               $actions->setparser($parser);\r
+               \r
+               //header\r
+               $parser->parse($template_header);\r
+               \r
+               //body\r
+               switch($sortorder){\r
+                       case 'title': $so = ' order by title ASC, albumid DESC'; break;\r
+                       case 'desc': $so = ' order by description ASC, albumid DESC'; break;\r
+                       case 'owner': $so = ' order by ownername ASC, albumid DESC'; break;\r
+                       case 'date': $so = ' order by modified DESC, albumid DESC'; break;\r
+                       case 'numb': $so = ' order by numberofimages DESC, albumid DESC'; break;\r
+                       \r
+                       case 'titlea': $so = ' order by title DESC, albumid DESC'; break;\r
+                       case 'desca': $so = ' order by description DESC, albumid DESC'; break;\r
+                       case 'ownera': $so = ' order by ownername DESC, albumid DESC'; break;\r
+                       case 'datea': $so = ' order by modified ASC, albumid DESC'; break;\r
+                       case 'numba': $so = ' order by numberofimages ASC, albumid DESC'; break;\r
+                       default : $so =''; break;\r
+               }\r
+               \r
+               $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
+               $result = mysql_query($query);\r
+               $albums = $gmember->getallowedalbums();\r
+               $albumids = $gmember->getAllowedAlbumsids();\r
+               \r
+               while ($row = mysql_fetch_object($result)) {\r
+                       if(!$row->ownername) $row->ownername = 'guest';\r
+                       $actions->setCurrentRow($row);\r
+                       //if its public, show it\r
+                       //echo $row->albumid;\r
+                       if($row->publicalbum){\r
+                               $parser->parse($template_body);\r
+                       }\r
+                       //if its not public, check if its in the array of allowed albums for this member\r
+                       elseif(@in_array($row->albumid,$albumids) ){\r
+                               $parser->parse($template_body);\r
+                       }\r
+               }\r
+               \r
+               //footer\r
+               $parser->parse($template_footer);\r
+       } //end of display function\r
+\r
+       \r
+} //end of list class\r
+\r
+class LIST_ACTIONS extends BaseActions {\r
+       var $CurrentRow; //query object\r
+       var $parser;\r
+       \r
+       \r
+       function LIST_ACTIONS() {\r
+               $this->BaseActions();\r
+               \r
+       }\r
+\r
+       function getdefinedActions() {\r
+               return array(\r
+                       'breadcrumb',\r
+                       'sortbytitle',\r
+                       'sortbydescription',\r
+                       'sortbyowner',\r
+                       'sortbymodified',\r
+                       'sortbynumber',\r
+                       'albumlink',\r
+                       'albumthumbnail',\r
+                       'centeredtopmargin',\r
+                       'title',\r
+                       'description',\r
+                       'ownerid',\r
+                       'ownername',\r
+                       'modified',\r
+                       'numberofimages',\r
+                       'addalbumlink',\r
+                       'addpictureslink',\r
+                       'if',\r
+                       'else',\r
+                       'endif' );\r
+                       \r
+       }\r
+       \r
+       function setParser(&$parser) {$this->parser =& $parser; }\r
+       function setCurrentRow(&$currentrow) { $this->CurrentRow =& $currentrow; }\r
+       \r
+       function parse_breadcrumb() {\r
+               //$breadcrumb = getBreadcrumb(); echo $breadcrumb; \r
+               echo __NPG_BREADCRUMB_GALLERY;\r
+       }\r
+       function parse_sortbytitle() { \r
+               $so = requestvar('sort');\r
+               if($so == 'title') $so = 'titlea'; else $so = 'title';\r
+               echo generateLink('list', $so); \r
+       }\r
+       function parse_sortbydescription() {\r
+               $so = requestvar('sort');\r
+               if($so == 'desc') $so = 'desca'; else $so = 'desc';\r
+               echo generateLink('list', $so); \r
+       }\r
+       function parse_sortbyowner() {\r
+               $so = requestvar('sort');\r
+               if($so == 'owner') $so = 'ownera'; else $so = 'owner';\r
+               echo generateLink('list', $so); \r
+       }\r
+       function parse_sortbymodified() {\r
+               $so = requestvar('sort');\r
+               if($so == 'date') $so = 'datea'; else $so = 'date';\r
+               echo generateLink('list', $so); \r
+       }\r
+       function parse_sortbynumber() {\r
+               $so = requestvar('sort');\r
+               if($so == 'numb') $so = 'numba'; else $so = 'numb';\r
+               echo generateLink('list', $so); \r
+       }\r
+       \r
+       function parse_albumthumbnail() { \r
+               global $CONF;\r
+               echo $CONF['IndexURL'].$this->CurrentRow->thumbnail; }\r
+       function parse_centeredtopmargin($height,$adjustment) {\r
+               global $NP_BASE_DIR;\r
+               $image_size = getimagesize($NP_BASE_DIR.$this->CurrentRow->thumbnail);\r
+               $topmargin = ((intval($height) - intval($image_size[1])) / 2) + intval($adjustment);\r
+               echo 'margin-top: '.$topmargin.'px;';\r
+       }\r
+       \r
+       function parse_albumlink() {\r
+               echo generateLink('album', $this->CurrentRow->albumid);\r
+       }\r
+       function parse_title() {echo $this->CurrentRow->title; }\r
+       function parse_description() {echo $this->CurrentRow->description; }\r
+       function parse_ownerid() {echo $this->CurrentRow->ownerid; }\r
+       function parse_ownername() {echo $this->CurrentRow->ownername; }\r
+       function parse_modified($format = 'M j, h:i',$arg1 ='',$arg2='',$arg3='') {\r
+               if($arg1) $arg1 = ','.$arg1;\r
+               if($arg2) $arg2 = ','.$arg2;\r
+               if($arg3) $arg3 = ','.$arg3;\r
+               $format = $format . $arg1 . $arg2 . $arg3;\r
+               $d = $this->CurrentRow->modified;\r
+               $d = converttimestamp($d);\r
+               $d = date($format,$d);\r
+               echo $d;\r
+       }\r
+       function parse_numberofimages() {echo $this->CurrentRow->numberofimages; }\r
+       \r
+       function parse_addalbumlink() {$aa = generateLink('addAlbumF'); echo $aa;}\r
+       function parse_addpictureslink() {$ap = generateLink('batchaddPictF'); echo $ap;}\r
+       \r
+\r
+       function parse_if($field, $name='', $value = '') {\r
+               global $gmember;\r
+               \r
+               $condition = 0;\r
+               switch ($field) {\r
+                       case 'canaddpicture':\r
+                               $condition = $gmember->canAddPicture();\r
+                               break;\r
+                       case 'canaddalbum':\r
+                               $condition = $gmember->canAddAlbum();\r
+                               break;\r
+                       default: \r
+                               break;\r
+               }\r
+               \r
+               $this->_addIfCondition($condition);\r
+               \r
+       }\r
+\r
+\r
+}\r
+?>\r