4 Gallery Plugin for nucleus cms http://nucleuscms.org
\r
6 Security fix in 0.95 by Katsumi
\r
7 http://sourceforge.jp/projects/nucleus-jp/svn/view/plugin/NP_gallery/trunk/
\r
12 include_once(dirname(__FILE__).'/gallery/config.php');
\r
14 class NP_gallery extends NucleusPlugin {
\r
18 var $currentPageID;
\r
19 var $currentPageOpt;
\r
22 function getName() {return 'Nucleus Image Gallery';}
\r
23 function getAuthor() { return 'John Bradshaw, Gene Cambridge Tsai'; }
\r
24 function getURL() { return 'http://www.sircambridge.net/nucleus/index.php?itemid=57'; }
\r
25 function getVersion() { return '0.95'; }
\r
26 function getDescription() { return 'Image Gallery for Nucleus CMS'; }
\r
27 function supportsFeature($what) { switch($what) {
\r
28 case 'SqlTablePrefix': return 1; break;
\r
29 case 'HelpPage': return 1; break;
\r
30 default: return 0; break;
\r
34 function getTableList() {
\r
35 return array(sql_table('plug_gallery_album'),
\r
36 sql_table('plug_gallery_picture'),
\r
37 sql_table('plug_gallery_template'),
\r
38 sql_table('plug_gallery_config'),
\r
39 sql_table('plug_gallery_comment'),
\r
40 sql_table('plug_gallery_album_team'),
\r
41 sql_table('plug_gallery_member'),
\r
42 sql_table('plug_gallery_promo'),
\r
43 sql_table('plug_gallery_views'),
\r
44 sql_table('plug_gallery_views_log'),
\r
45 sql_table('plug_gallery_picturetags') );
\r
48 function getEventList() {
\r
49 return array('QuickMenu','PreItem');
\r
52 function hasAdminArea() {
\r
56 function event_QuickMenu(&$data) {
\r
59 if (!($member->isLoggedIn() )) return;
\r
63 'title' => 'gallery',
\r
64 'url' => $this->getAdminURL(),
\r
65 'tooltip' => 'NP Gallery admin'
\r
70 function event_PreItem(&$data) {
\r
72 $actions = new NPG_EXT_ITEM_ACTIONS();
\r
73 $parser = new NPG_PREPARSER($actions->getdefinedActions(),$actions);
\r
74 $actions->setparser($parser);
\r
76 //pre-parse item body
\r
78 $parser->parse($data['item']->body);
\r
79 $data['item']->body = ob_get_contents();
\r
82 //pre-parse item more
\r
84 $parser->parse($data['item']->more);
\r
85 $data['item']->more = ob_get_contents();
\r
91 function install() {
\r
92 global $NPG_CONF,$DIR_NUCLEUS;
\r
94 $this->createOption('deletetables',__NPG_OPT_DONT_DELETE_TABLES,'yesno','no');
\r
97 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_album').' ( '.
\r
98 'albumid int unsigned not null auto_increment PRIMARY KEY, '.
\r
99 'title varchar(255), '.
\r
100 'description varchar(255), '.
\r
101 'ownerid int unsigned , '.
\r
102 'modified TIMESTAMP, '.
\r
103 'numberofimages int unsigned, '.
\r
104 "thumbnail varchar(100), ".
\r
105 'commentsallowed tinyint DEFAULT 1 ) ';
\r
107 // code to update table to have publicalbum field
\r
108 $query = 'SHOW COLUMNS FROM '.sql_table('plug_gallery_album').' LIKE "publicalbum"';
\r
109 $result = sql_query($query);
\r
110 if (mysql_num_rows($result) == 0){
\r
111 //if it doesnt exist, add it (there must be a better way to do this via SQL syntax, but i couldnt figure it out)
\r
112 $query = 'ALTER TABLE '. sql_table('plug_gallery_album').
\r
113 ' ADD COLUMN publicalbum tinyint DEFAULT 1 AFTER commentsallowed';
\r
117 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_picture').' ( '.
\r
118 'pictureid int unsigned not null auto_increment PRIMARY KEY, '.
\r
119 'title varchar(255), '.
\r
120 'description varchar(255), '.
\r
121 'ownerid int unsigned , '.
\r
122 'modified TIMESTAMP, '.
\r
123 'albumid int unsigned, '.
\r
124 'filename varchar(255), '.
\r
125 'int_filename varchar(255), '.
\r
126 'thumb_filename varchar(255) ) ';
\r
129 //add the picturesets column after thumb_filename for people upgrading
\r
130 //first test if the picturesets column exists
\r
131 $query = 'SHOW COLUMNS FROM '.sql_table('plug_gallery_picture').' LIKE "keywords"';
\r
132 $result = sql_query($query);
\r
133 if (mysql_num_rows($result) == 0){
\r
134 //if it doesnt exist, add it (there must be a better way to do this via SQL syntax, but i couldnt figure it out)
\r
135 $query = 'ALTER TABLE '. sql_table('plug_gallery_picture').
\r
136 ' ADD COLUMN keywords varchar(255) AFTER thumb_filename';
\r
139 // this is to change the descriptions to have text up to 64k characters instead of 255 characters.
\r
140 //had to put it here in case someone is upgrading.
\r
141 $query = 'ALTER TABLE '. sql_table('plug_gallery_picture').
\r
142 ' MODIFY description TEXT';
\r
145 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_template').' ( '.
\r
146 'tdesc int unsigned, '.
\r
147 'name varchar(20), '.
\r
151 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_template_desc').' ( '.
\r
152 'tdid int unsigned not null auto_increment PRIMARY KEY, '.
\r
153 'tdname varchar(20), '.
\r
154 'tddesc varchar(200) )';
\r
157 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_config').' ( '.
\r
158 'oname varchar(20), ovalue varchar(60) )';
\r
161 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_album_team').' ( '.
\r
162 'tmemberid int unsigned not null, '.
\r
163 'talbumid int unsigned not null, '.
\r
164 'tadmin tinyint DEFAULT 0 )';
\r
167 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_member').' ( '.
\r
168 'memberid int unsigned not null PRIMARY KEY, '.
\r
169 'addalbum tinyint DEFAULT 0 )';
\r
172 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_comment').' ( '.
\r
173 'commentid int unsigned not null auto_increment PRIMARY KEY, '.
\r
175 'cuser varchar(40), '.
\r
176 'cmail varchar(100), '.
\r
177 'chost varchar(60), '.
\r
178 'cip varchar(15), '.
\r
179 'cmemberid int unsigned default 0, '.
\r
180 'ctime timestamp, '.
\r
181 'cpictureid int not null )';
\r
184 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_promo').' ( '.
\r
185 'ppictureid int unsigned not null, '.
\r
186 'pblogitemid int unsigned not null )';
\r
189 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_views').' ( '.
\r
190 'vpictureid int unsigned not null PRIMARY KEY, '.
\r
191 'views int unsigned )';
\r
194 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_views_log').' ( '.
\r
195 'vlpictureid int unsigned not null, '.
\r
196 'ip varchar(20), '.
\r
197 'time timestamp )';
\r
200 $query = 'CREATE TABLE IF NOT EXISTS '.sql_table('plug_gallery_picturetag').' ( '.
\r
201 '`pictureid` VARCHAR( 255 ) NOT NULL , '.
\r
202 '`top` VARCHAR( 255 ) NOT NULL ,'.
\r
203 '`left` VARCHAR( 255 ) NOT NULL ,'.
\r
204 '`height` VARCHAR( 255 ) NOT NULL ,'.
\r
205 '`width` VARCHAR( 255 ) NOT NULL ,'.
\r
206 '`text` VARCHAR( 255 ) NOT NULL )';
\r
209 //set default options
\r
210 $NPG_CONF = getNPGconfig();
\r
212 if(!$NPG_CONF['viewtime']) setNPGoption('viewtime', 30);
\r
213 setNPGoption('currentversion',94);
\r
215 if(!$NPG_CONF['im_path']) setNPGoption('im_path','/usr/local/bin/'); // currently needs to have trailing slash, need to change to be consistent
\r
216 if(!$NPG_CONF['im_options']) setNPGoption('im_options', '-filter Lanczos');
\r
217 if(!$NPG_CONF['im_quality']) setNPGoption('im_quality', '80');
\r
218 if(!$NPG_CONF['graphics_library']) {
\r
219 if (GDisPresent()) {
\r
220 setNPGoption('graphics_library', 'gd');
\r
221 } else if (IMisPresent()) {
\r
222 setNPGoption('graphics_library', 'im');
\r
223 setNPGoption('im_version', getIMversion());
\r
225 setNPGoption('graphics_library', 'not configured');
\r
226 setNPGoption('configured', false);
\r
231 if(!$NPG_CONF['galleryDir']) setNPGoption('galleryDir', 'media/gallery'); //when adding, need to make sure that no trailing slash
\r
232 if(!$NPG_CONF['thumbwidth']) setNPGoption('thumbwidth', '100');
\r
233 if(!$NPG_CONF['thumbheight']) setNPGoption('thumbheight', '100');
\r
234 if(!$NPG_CONF['maxwidth']) setNPGoption('maxwidth', '600');
\r
235 if(!$NPG_CONF['maxheight']) setNPGoption('maxheight', '600');
\r
236 if(!$NPG_CONF['int_prefix']) setNPGoption('int_prefix', 'int_');
\r
237 if(!$NPG_CONF['thumb_prefix']) setNPGoption('thumb_prefix', 'thumb_');
\r
239 if(!$NPG_CONF['max_filesize']) setNPGOption('max_filesize', '2000000');
\r
240 if(!$NPG_CONF['add_album']) setNPGOption('add_album', 'admin_only');
\r
241 if(!$NPG_CONF['batch_add_num']) setNPGOption('batch_add_num', '10');
\r
242 if(!$NPG_CONF['dateorrandom']) setNPGOption('dateorrandom', 'randomprefix');
\r
243 if(!$NPG_CONF['tooltips']) setNPGOption('tooltips', 'no');
\r
244 if(!$NPG_CONF['nextprevthumb']) setNPGOption('nextprevthumb', 'no');
\r
245 if(!$NPG_CONF['defaultorder']) setNPGOption('defaultorder', 'aesc');
\r
246 if(!$NPG_CONF['setorpromo']) setNPGOption('setorpromo', 'promo');
\r
247 if(!$NPG_CONF['slideshowson']) setNPGOption('slideshowson', 'no');
\r
248 if(!$NPG_CONF['thumborlist']) setNPGOption('thumborlist', 'list');
\r
256 $chk = checkgalleryconfig();
\r
257 if($chk['configured'] == false) setNPGoption('configured',false); else setNPGoption('configured',true);
\r
259 //?create skin NPGallery or make user do it
\r
261 //set default templates
\r
262 //include($DIR_NUCLEUS.'/plugins/gallery/update/default_templates_076.inc');
\r
263 //include($DIR_NUCLEUS.'/plugins/gallery/update/default_templates_080.inc');
\r
264 //include($DIR_NUCLEUS.'/plugins/gallery/update/default_templates_090.inc');
\r
265 include($DIR_NUCLEUS.'/plugins/gallery/update/default_templates_094.inc');
\r
268 function unInstall() {
\r
269 if ($this->getOption('deletetables') == 'yes') {
\r
271 //delete promo posts
\r
272 $query = 'select pictureid from '.sql_table('plug_gallery_picture');
\r
273 $res = sql_query($query);
\r
274 while($row = mysql_fetch_object($res)) {
\r
275 PICTURE::deletepromoposts($res->pictureid);
\r
278 sql_query('DROP TABLE '.sql_table('plug_gallery_album'));
\r
279 sql_query('DROP TABLE '.sql_table('plug_gallery_picture'));
\r
280 sql_query('DROP TABLE '.sql_table('plug_gallery_template'));
\r
281 sql_query('DROP TABLE '.sql_table('plug_gallery_template_desc'));
\r
282 sql_query('DROP TABLE '.sql_table('plug_gallery_config'));
\r
283 sql_query('DROP TABLE '.sql_table('plug_gallery_album_team'));
\r
284 sql_query('DROP TABLE '.sql_table('plug_gallery_member'));
\r
285 sql_query('DROP TABLE '.sql_table('plug_gallery_comment'));
\r
286 sql_query('DROP TABLE '.sql_table('plug_gallery_promo'));
\r
287 sql_query('DROP TABLE '.sql_table('plug_gallery_views'));
\r
288 sql_query('DROP TABLE '.sql_table('plug_gallery_views_log'));
\r
289 sql_query('DROP TABLE '.sql_table('plug_gallery_picturetag'));
\r
294 function doAction($type) {
\r
295 global $gmember, $CONF, $NPG_CONF;
\r
296 global $skinid,$manager,$blog,$blogid;
\r
300 //display -- these are done in doSkinVar
\r
304 case 'deletePictureF':
\r
305 case 'editPictureF':
\r
307 $this->currentPage = $type;
\r
308 $this->currentPageID = requestVar('id');
\r
311 $this->currentPage = $type;
\r
312 $this->currentPageOpt = requestVar('sort');
\r
315 $this->currentPage = $type;
\r
318 //these are the actions, done here, then currentpage is set and skin called to display something
\r
319 case 'addcomment':
\r
322 $post['itemid'] = intPostVar('itemid');
\r
323 $post['user'] = postVar('user');
\r
324 $post['userid'] = postVar('userid');
\r
325 $post['body'] = postVar('body');
\r
327 // set cookies when required
\r
328 $remember = intPostVar('remember');
\r
329 if ($remember == 1) {
\r
330 $lifetime = time()+2592000;
\r
331 setcookie($CONF['CookiePrefix'] . 'comment_user',$post['user'],$lifetime,'/','',0);
\r
332 setcookie($CONF['CookiePrefix'] . 'comment_userid', $post['userid'],$lifetime,'/','',0);
\r
335 $comments = new NPG_COMMENTS($post['itemid']);
\r
337 $errormessage = $comments->addComment($post);
\r
339 //need to add code to display the error
\r
340 if ($errormessage == '1') {
\r
341 $_POST['id'] = $post['itemid'];
\r
345 $this->currentPage = 'list';
\r
346 $this->currentPageOpt = 'date';
\r
351 if($gmember->canAddAlbum() ){
\r
352 $NPG_vars['ownerid'] = $gmember->getID();
\r
353 $NPG_vars['title'] = requestVar('title');
\r
354 $NPG_vars['description'] = requestVar('desc');
\r
355 $NPG_vars['publicalbum'] = requestVar('publicalbum');
\r
356 ALBUM::add_new($NPG_vars);
\r
359 case 'finaldeletepicture':
\r
360 $id = requestVar('id');
\r
361 $delpromo = requestVar('delpromo');
\r
362 if($gmember->canModifyPicture($id)) {
\r
364 $manager->notify('NPgPreDeletePicture', array('pictureid' => $id));
\r
365 $result = PICTURE::delete($id);
\r
367 if($result['status'] == 'error') {
\r
368 echo $result['message'];
\r
371 $manager->notify('NPgPostDeletePicture', array('pictureid' => $id));
\r
373 if($delpromo == 'yes') {
\r
374 $result2 = PICTURE::deletepromoposts($id);
\r
375 if($result2['status'] == 'error') echo $result2['message'];
\r
378 $_POST['id'] = $result['albumid'];
\r
381 } else echo 'No permission to delete picture<br/>';
\r
383 case 'editPicture':
\r
384 $id = requestVar('id');
\r
385 if($gmember->canModifyPicture($id)) {
\r
386 $pict = new PICTURE($id);
\r
387 $pict->setTitle(requestVar('ptitle'));
\r
388 $pict->setDescription(requestVar('pdesc'));
\r
389 $pict->setkeywords(requestVar('keywords'));
\r
390 $aid = requestVar('aid');
\r
391 if($aid && $gmember->canAddPicture($aid)) {
\r
392 ALBUM::decreaseNumberByOne($pict->getAlbumID());
\r
393 ALBUM::increaseNumberByOne($aid);
\r
394 $pict->setAlbumID($aid);
\r
397 echo "<SCRIPT LANGUAGE=\"JavaScript\">
\r
398 window.location=\"" . $NP_BASE_DIR . "action.php?action=plugin&name=gallery&type=item&id=". $id . "\"" .
\r
401 $manager->notify('NPgPostUpdatePicture',array('picture', &$pict));
\r
404 $Pos1x = requestVar('Pos1x');
\r
405 $Pos1y = requestVar('Pos1y');
\r
406 $Pos2x = requestVar('Pos2x');
\r
407 $Pos2y = requestVar('Pos2y');
\r
408 $RelX = requestVar('RelX');
\r
409 $pictureid = requestVar('pictureid');
\r
410 $RelY = requestVar('RelY');
\r
411 $desc = requestVar('desc');
\r
412 $left = $Pos1x - $RelX;
\r
413 $top = $Pos1y - $RelY;
\r
414 $width = $Pos2x - $Pos1x;
\r
415 $height = $Pos2y - $Pos1y;
\r
417 //these lines should be moved into picture_class.php
\r
418 sql_query("INSERT INTO ".sql_table('plug_gallery_picturetag')." ( `pictureid` , `top` , `left` , `height` , `width` , `text` )
\r
419 VALUES ( '" . addslashes($pictureid) ." ', '" .addslashes($top)."', '" .addslashes($left)." ' , '" .addslashes($height)."' , '" .addslashes($width)."' , '" .addslashes($text)."' ); ");
\r
420 echo "<SCRIPT LANGUAGE=\"JavaScript\">
\r
421 window.location=\"" . $NP_BASE_DIR . "action.php?action=plugin&name=gallery&type=item&id=". $pictureid . "\"" .
\r
425 $pictureid = requestVar('pictureid');
\r
426 //these lines should be moved into picture_class.php
\r
427 sql_query("DELETE FROM ".sql_table('plug_gallery_picturetag'). " WHERE `pictureid` = '" . addslashes($pictureid) . "' LIMIT 1; ");
\r
428 echo "<SCRIPT LANGUAGE=\"JavaScript\">
\r
429 window.location=\"" . $NP_BASE_DIR . "action.php?action=plugin&name=gallery&type=item&id=". $pictureid . " \"" .
\r
432 // this is done in editpicture now.
\r
433 //case 'updatesets':
\r
434 //$id = requestVar('id');
\r
435 //$setname = requestVar('setname');
\r
436 //$pict = new PICTURE($id);
\r
437 //$pict->addtoset($id,$setname);
\r
439 //$manager->notify('NPgPostUpdatePicture',array('picture', &$pict));
\r
446 $blogid = $CONF['DefaultBlog'];
\r
448 $b =& $manager->getBlog($blogid);
\r
451 selectSkin('NPGallery');
\r
453 $skin =& new SKIN($skinid);
\r
454 $skin->parse('index');
\r
458 function doSkinVar() {
\r
459 global $NPG_CONF, $gmember, $manager;
\r
461 $params = func_get_args();
\r
462 $numargs = func_num_args();
\r
463 $skinType = $params[0];
\r
465 $type = requestvar('type');
\r
466 $id = requestvar('id');
\r
467 $startstop = requestvar('startstop');
\r
468 $sliderunning = requestvar('sliderunning');
\r
470 $defaulttoitem = array('editPicture','addcomment');
\r
471 $defaulttolist = array('addAlbum');
\r
472 $defaulttoalbum = array('finaldeletepicture');
\r
473 if(in_array($type,$defaulttoitem)) $type = 'item';
\r
475 switch($params[1]) {
\r
477 if($numargs >= 3) {
\r
478 switch($params[2]) {
\r
479 case 'picture': echo generatelink('item',$params[3]); break;
\r
480 case 'album': echo generateLink('album',$params[3]); break;
\r
481 default: echo generateLink('list'); break;
\r
483 } else echo generateLink('list');
\r
486 //things to display
\r
488 if(!$NPG_CONF['configured']) {
\r
489 echo __NPG_ERR_GALLLERY_NOT_CONFIG;
\r
493 //plugin hook for collections
\r
496 $manager->notify('NPgCollectionDisplay', array('type' => $type, 'query' => &$hookquery , 'title' => &$hooktitle) );
\r
499 $collection = new ALBUM();
\r
500 $collection->setquery($hookquery);
\r
501 $collection->set_title($hooktitle);
\r
502 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
503 $collection->settemplate($t);
\r
504 $collection->display();
\r
507 $pict = new PICTURE($id);
\r
508 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
509 $pict->setalbumtitle($hooktitle);
\r
510 $pict->settemplate($t);
\r
511 $pict->setquery($hookquery);
\r
520 $alb = new ALBUM($id);
\r
521 if($alb->getID()) {
\r
522 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
523 $alb->settemplate($t);
\r
524 $alb->display(requestVar('sort'));
\r
526 else echo __NPG_ERR_NOSUCHTHING.'<br/>';
\r
530 // $alb = new ALBUM($setid);
\r
531 //this should work, but not sure what $alb->getID() does...
\r
532 // if($alb->getID()) {
\r
533 // $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
534 // $alb->settemplate($t);
\r
535 // $alb->displayset(requestVar('sort'));
\r
537 // else echo __NPG_ERR_NOSUCHTHING.'<br/>';
\r
540 $pict = new PICTURE($id);
\r
541 if($pict->getID()) {
\r
542 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
543 $pict->settemplate($t);
\r
544 $pict->display($startstop,$sliderunning);
\r
546 else echo __NPG_ERR_NOSUCHTHING.'<br/>';
\r
549 $l = new GALLERY_LIST();
\r
550 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
551 $l->settemplate($t);
\r
552 $l->display(requestVar('sort'));
\r
557 case 'editAlbumF':
\r
558 editAlbumForm($id);
\r
560 case 'editPictureF':
\r
561 editPictureForm($id);
\r
563 case 'deletePictureF':
\r
564 deletePictureForm($id);
\r
567 addPictureForm($id);
\r
572 $l = new GALLERY_LIST();
\r
573 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
574 $l->settemplate($t);
\r
575 $l->display(requestvar('sort'));
\r
583 function MakeLink($type, $extraparams = array()) {
\r
586 if($CONF['URLMode'] == 'pathinfo') {
\r
587 //fancy URLs having problems, so I changed it to revert back to regular URLS.
\r
588 //$base = '/gallery/';
\r
591 $base = 'action.php?action=plugin&name=gallery&type=';
\r
596 $base = 'action.php?action=plugin&name=gallery&type=';
\r
600 //if extraparams is assoc array
\r
601 if(is_array($extraparams) && array_keys($extraparams)!==range(0,sizeof($extraparams)-1)) {
\r
602 foreach($extraparams as $key => $value)
\r
603 $extra = $extra . $sep1 . $key . $sep2 . $value;
\r
605 return $base.$type.$extra;
\r
610 function MakeLinkRaw($base, $extraparams = '') {
\r
613 if($CONF['URLMode'] == 'pathinfo') {
\r
621 foreach($extraparams as $key => $value) $extra = $extra . $sep1 . $key . $sep2 .$value;
\r
622 return $base.$extra;
\r
626 class NPG_PREPARSER extends PARSER {
\r
628 function doAction($action) {
\r
629 if (!$action) return;
\r
630 $action_raw = '<%'.$action.'%>';
\r
632 // split into action name + arguments
\r
633 if (strstr($action,'(')) {
\r
634 $paramStartPos = strpos($action, '(');
\r
635 $params = substr($action, $paramStartPos + 1, strlen($action) - $paramStartPos - 2);
\r
636 $action = substr($action, 0, $paramStartPos);
\r
637 $params = explode ($this->pdelim, $params);
\r
638 $params = array_map('trim',$params);
\r
643 $actionlc = strtolower($action);
\r
645 if (in_array($actionlc, $this->actions) || $this->norestrictions ) {
\r
646 call_user_func_array(array(&$this->handler,'parse_' . $actionlc), $params);
\r
656 class NPG_EXT_ITEM_ACTIONS extends BaseActions {
\r
659 function NPG_EXT_ACTIONS() {
\r
660 $this->BaseActions();
\r
663 function getdefinedActions() {
\r
664 return array( 'gallery' );
\r
667 function setParser(&$parser) {$this->parser =& $parser; }
\r
669 function parse_gallery($param1, $param2, $param3) {
\r
670 if($param1 == 'link') {
\r
671 if($param2 == 'picture') {
\r
672 $param3 = intval($param3);
\r
673 echo generatelink('item',$param3);
\r
675 else if($param2 == 'album') {
\r
676 $param3 = intval($param3);
\r
677 echo generatelink('album',$param3);
\r
679 else echo '<b>NOT HERE</b>';
\r
681 if($param1 == 'keywords') {
\r
683 $splitdata = explode(' and ',$setid);
\r
685 //$alb = new ALBUM($id);
\r
686 //if($alb->getID()) {
\r
687 //$t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
688 //$alb->settemplate($t);
\r
689 //$alb->display(requestVar('sort'));
\r
690 $thisset = new ALBUM;
\r
691 $t = new NPG_TEMPLATE($NPG_CONF['template']);
\r
692 $thisset->settemplate($t);
\r
693 $thisset->displayset($splitdata,$sort);
\r