23 function ALBUM($id = 0){
\r
24 //check if exists, populate variables, etc.
\r
26 $data = $this->get_data($id);
\r
27 $this->id = $data->albumid;
\r
28 $this->title = $data->title;
\r
29 $this->description = $data->description;
\r
30 $this->ownerid = $data->ownerid;
\r
31 $this->modified = $data->modified;
\r
32 $this->noi = $data->numberofimages;
\r
33 $this->ownername = $data->name;
\r
34 $this->thumbnail = $data->thumbnail;
\r
35 $this->options['commentsallowed'] = $data->commentsallowed;
\r
36 $this->options['publicalbum'] = $data->publicalbum;
\r
41 function getIDfromPictureID($pictureid) {
\r
45 function commentsallowed($pictureid) {
\r
46 $query = 'select a.commentsallowed from '.sql_table('plug_gallery_album').' as a, '.sql_table('plug_gallery_picture').' as b where a.albumid=b.albumid and pictureid='.$pictureid;
\r
47 $res = sql_query($query);
\r
48 $row = mysql_fetch_object($res);
\r
49 return $row->commentsallowed;
\r
53 function settemplate($template) {
\r
54 $this->template = & $template;
\r
57 function setquery($query) {
\r
58 $this->query = & $query;
\r
61 function add_new($data) {
\r
62 $atitle = addslashes($data['title']);
\r
63 $adescription = addslashes($data['description']);
\r
64 $aowner = $data['ownerid'];
\r
65 $apublicalbum = $data['publicalbum'];
\r
66 if(!$aowner) $aowner = 0; //make the owner guest
\r
67 $query = "insert into ".sql_table('plug_gallery_album')." (albumid, title, description, ownerid, modified, numberofimages, commentsallowed, publicalbum) values ".
\r
68 "(NULL, '$atitle','$adescription',$aowner,NULL,0,1,'$apublicalbum')";
\r
70 return mysql_insert_id();
\r
73 function get_data($id) {
\r
74 $result = sql_query("select a.*,b.mname as name from ".sql_table('plug_gallery_album').' as a left join '.sql_table('member')." as b on a.ownerid=b.mnumber where a.albumid=$id" );
\r
75 if(mysql_num_rows($result)) $data = mysql_fetch_object($result);
\r
81 if(!$data->name) $data->name='guest';
\r
83 //default album thumbnail if thumbnail is blank
\r
84 if(!$data->thumbnail) {
\r
85 $query = 'select thumb_filename from '.sql_table('plug_gallery_picture').' where albumid='.$data->albumid.' LIMIT 1';
\r
86 $result = sql_query($query);
\r
87 if(mysql_num_rows($result) ){
\r
88 $row = mysql_fetch_object($result);
\r
89 $data->thumbnail = $row->thumb_filename;
\r
90 sql_query('update '.sql_table('plug_gallery_album').' set thumbnail=\''.$row->thumb_filename.'\' where albumid='.$data->albumid);
\r
96 function get_team($id) {
\r
97 $result = sql_query("select a.*, b.mname from ".sql_table('member').' as b, '.sql_table('plug_gallery_album_team')." as a where a.talbumid=$id and a.tmemberid=b.mnumber");
\r
98 if(!mysql_num_rows($result)) return false;
\r
100 while ($team[$j] = mysql_fetch_object($result)) {
\r
106 function get_pictures($id = 0,$so) {
\r
107 if($this->query == '' && $id == 0) return null;
\r
108 if($this->query == '') $this->query = "select * from ".sql_table('plug_gallery_picture')." where albumid=$id $so";
\r
109 $result = sql_query($this->query);
\r
111 while ($row = mysql_fetch_object($result)) {
\r
113 $res = sql_query('select views from '.sql_table('plug_gallery_views').' where vpictureid = '.$row->pictureid);
\r
114 if(mysql_num_rows($res)) {
\r
115 $row2 = mysql_fetch_object($res);
\r
116 $data[$i]->views = $row2->views;
\r
118 else $data[$i]->views = 0;
\r
119 mysql_free_result($res);
\r
122 $this->totalpictures = $i;
\r
127 function get_set_pictures($splitdata,$so) {
\r
128 if($splitdata == '') return null;
\r
131 $limit = sizeof($splitdata);
\r
133 //print_r($splitdata);
\r
135 $keyword = $splitdata[$j];
\r
137 $this->query = "select * from ".sql_table('plug_gallery_picture')." WHERE keywords like '%".$keyword."%' ";
\r
138 $result = sql_query($this->query);
\r
139 while ($row = @mysql_fetch_object($result)) {
\r
141 $res = sql_query('select views from '.sql_table('plug_gallery_views').' where vpictureid = '.$row->pictureid);
\r
142 if(mysql_num_rows($res)) {
\r
143 $row2 = mysql_fetch_object($res);
\r
144 $data[$i]->views = $row2->views;
\r
146 else $data[$i]->views = 0;
\r
147 mysql_free_result($res);
\r
152 $this->totalpictures = $i;
\r
157 function increaseNumberByOne($id) {
\r
158 if(!$id) $id = $this->id;
\r
159 $result = sql_query("update ".sql_table('plug_gallery_album')." set numberofimages = numberofimages + 1 where albumid =$id");
\r
162 function decreaseNumberByOne($id) {
\r
163 if(!$id) $id = $this->id;
\r
164 $result = sql_query("update ".sql_table('plug_gallery_album')." set numberofimages = numberofimages - 1 where albumid =$id");
\r
167 function fixnumberofimages($id) {
\r
170 $numberofimages = $this->numberofimages;
\r
173 $result = sql_query('select numberofimages from '.sql_table('plug_gallery_album'). " where albumid=$id");
\r
174 $row = mysql_fetch_object($result);
\r
175 $numberofimages = $row->numberofimages;
\r
177 $result = sql_query('select count(*) as noi from '.sql_table('plug_gallery_picture')." where albumid=$id");
\r
178 $row = mysql_fetch_object($result);
\r
180 if($noi <> $numberofimages) {
\r
181 sql_query("update ".sql_table('plug_gallery_album')." set numberofimages=$noi where albumid=$id");
\r
185 $query = "update ".sql_table('plug_gallery_album')
\r
186 ." set title='{$this->title}', "
\r
187 ." commentsallowed= {$this->option['commentsallowed']}, "
\r
188 ." thumbnail='{$this->thumbnail}', "
\r
189 ." description='{$this->description}', "
\r
190 ." publicalbum= {$this->option['publicalbum']}"
\r
191 ." where albumid={$this->id}";
\r
195 function getId() { return $this->id; }
\r
196 function getName() {return $this->name;}
\r
197 function getDescription() {return $this->description;}
\r
198 function getNoi() {return $this->noi;}
\r
199 function getOwnerName() {}
\r
200 function getOwnerid() {return $this->ownerid;}
\r
201 function getLastModified() {return $this->modified;}
\r
202 function getOptions() {return $this->options; }
\r
203 function getTitle() {return $this->title;}
\r
205 function set_title($title) { $this->title = $title;}
\r
206 function set_description($description) { $this->description = $description; }
\r
207 function set_thumbnail($thumbnail) { $this->thumbnail = $thumbnail; }
\r
208 function set_commentsallowed($value) {$this->option['commentsallowed'] = intval($value);}
\r
209 function set_publicalbum($value) {$this->option['publicalbum'] = intval($value);}
\r
211 function display($sort) {
\r
212 global $NPG_CONF,$manager;
\r
213 $defaultorder = $NPG_CONF['defaultorder'];
\r
214 $sorting = array('title'=>'title ASC',
\r
215 'desc'=>'description ASC',
\r
216 'owner'=>'ownername ASC',
\r
217 'date'=>'modified DESC',
\r
218 'titlea'=>'title DESC',
\r
219 'desca'=>'description DESC',
\r
220 'ownera'=>'ownername DESC',
\r
221 'datea'=>'modified ASC',
\r
222 'filenamea'=>'filename ASC',
\r
223 'filename'=>'filename DESC');
\r
226 if(array_key_exists($sort,$sorting)){
\r
227 $so = 'order by '.$sorting[$sort].', pictureid DESC';
\r
230 $so = 'order by '.$sorting[$defaultorder].', pictureid DESC';
\r
233 $page = intval(requestvar('page'));
\r
234 if(!$page) $page = 1;
\r
236 $amount = requestvar('amount');
\r
238 if (!$NPG_CONF['ThumbnailsPerPage']) {
\r
239 setNPGOption('ThumbnailsPerPage',20);
\r
240 $NPG_CONF['ThumbnailsPerPage'] = 20;
\r
243 if($amount) $this->pageamount = intval($amount);
\r
244 else $this->pageamount = $NPG_CONF['ThumbnailsPerPage'];
\r
246 $offset = intval($page - 1) * $this->pageamount;
\r
247 if ($offset <= 0) $offset = 0;
\r
248 $this->displayoffset = $offset;
\r
250 if(!$NPG_CONF['template']) $NPG_CONF['template'] = 1;
\r
252 $this->template = & new NPG_TEMPLATE($NPG_CONF['template']);
\r
254 $template_header = $this->template->section['ALBUM_HEADER'];
\r
255 $template_body = $this->template->section['ALBUM_BODY'];
\r
256 $template_footer = $this->template->section['ALBUM_FOOTER'];
\r
258 $actions = new ALBUM_ACTIONS($this);
\r
259 $parser = new PARSER($actions->getdefinedActions(),$actions);
\r
260 $actions->setparser($parser);
\r
262 $data = $this->get_pictures($this->getId(),$so);
\r
265 $parser->parse($template_header);
\r
270 if($i >= $offset && $i < ($offset + $this->pageamount)) {
\r
271 $actions->setCurrentThumb($data[$i]);
\r
272 $parser->parse($template_body);
\r
278 $parser->parse($template_footer);
\r
279 } //end of display()
\r
281 function displayset($splitdata,$sort) {
\r
282 global $NPG_CONF,$manager;
\r
283 $defaultorder = $NPG_CONF['defaultorder'];
\r
284 $sorting = array('title'=>'title ASC',
\r
285 'desc'=>'description ASC',
\r
286 'owner'=>'ownername ASC',
\r
287 'date'=>'modified DESC',
\r
288 'titlea'=>'title DESC',
\r
289 'desca'=>'description DESC',
\r
290 'ownera'=>'ownername DESC',
\r
291 'datea'=>'modified ASC',
\r
292 'filenamea'=>'filename ASC',
\r
293 'filename'=>'filename DESC');
\r
295 $so = 'order by '.$sorting[$sort].', pictureid DESC';
\r
298 $so = 'order by '.$sorting[$defaultorder].', pictureid DESC';
\r
301 if(!$NPG_CONF['template']) $NPG_CONF['template'] = 1;
\r
303 $this->template = & new NPG_TEMPLATE($NPG_CONF['template']);
\r
305 $template_setdisplay = $this->template->section['ALBUM_BODY'];
\r
307 $actions = new ALBUM_ACTIONS($this);
\r
308 $parser = new PARSER($actions->getdefinedActions(),$actions);
\r
309 $actions->setparser($parser);
\r
311 $data = $this->get_set_pictures($splitdata,$so);
\r
314 //$parser->parse($template_setdisplay);
\r
319 $actions->setCurrentThumb($data[$i]);
\r
320 $parser->parse($template_setdisplay);
\r
323 } //end of displayset()
\r
325 } //end album class
\r
327 class ALBUM_ACTIONS extends BaseActions {
\r
328 var $CurrentThumb; //query object
\r
333 function ALBUM_ACTIONS(& $currentalbum) {
\r
334 $this->BaseActions();
\r
335 $this->album = & $currentalbum;
\r
339 function getdefinedActions() {
\r
343 'sortbydescription',
\r
349 'albumdescription',
\r
350 'picturedescription',
\r
353 'centeredtopmargin',
\r
366 function setParser(&$parser) {$this->parser =& $parser; }
\r
367 function setCurrentThumb(&$currentthumb) { $this->CurrentThumb =& $currentthumb; }
\r
369 function parse_pages($sep = ' ') {
\r
371 $totalpages = $this->album->totalpictures / $this->album->pageamount;
\r
372 $currentpage = floor($this->album->displayoffset / $this->album->pageamount);
\r
375 for($j=0; $j < $totalpages; $j++) {
\r
376 $extra['page']=$j+1;
\r
377 $extra['amount']=$this->album->pageamount;
\r
378 if ($j == $currentpage) echo ($j+1);
\r
381 $this->parse_albumlink($extra);
\r
382 echo '">'.($j+1).'</a>';
\r
384 if($j <> $totalpages) echo $sep;
\r
387 function parse_sortbytitle() {
\r
388 $so = requestvar('sort');
\r
389 if($so == 'title') $so = 'titlea'; else $so = 'title';
\r
390 echo generateLink('album', $so);
\r
392 function parse_sortbydescription() {
\r
393 $so = requestvar('sort');
\r
394 if($so == 'desc') $so = 'desca'; else $so = 'desc';
\r
395 echo generateLink('album', $so);
\r
397 function parse_sortbyowner() {
\r
398 $so = requestvar('sort');
\r
399 if($so == 'owner') $so = 'ownera'; else $so = 'owner';
\r
400 echo generateLink('album', $so);
\r
402 function parse_sortbymodified() {
\r
403 $so = requestvar('sort');
\r
404 if($so == 'date') $so = 'datea'; else $so = 'date';
\r
405 echo generateLink('album', $so);
\r
407 function parse_sortbynumber() {
\r
408 $so = requestvar('sort');
\r
409 if($so == 'numb') $so = 'numba'; else $so = 'numb';
\r
410 echo generateLink('album', $so);
\r
412 function parse_albumlink($extra2 = 0) {
\r
413 $type = requestvar('type');
\r
414 $knownactions = array( 'album','item' );
\r
415 if(in_array($type,$knownactions)) {
\r
416 $extra['id'] = $this->album->getID();
\r
420 $allowed = array('limit');
\r
421 foreach($_GET as $key => $value) if(in_array($key,$allowed)) $extra[$key] = $value;
\r
423 $extraparams = array_merge($extra, $extra2);
\r
424 echo NP_gallery::MakeLink($type,$extraparams);
\r
427 function parse_breadcrumb($sep = '>') {
\r
429 echo generateLink('list');
\r
430 echo '">'.__NPG_BREADCRUMB_GALLERY.'</a> '.$sep.' ';
\r
431 $this->parse_albumtitle();
\r
434 function parse_albumtitle() {
\r
435 echo $this->album->getTitle();
\r
437 function parse_albumid(){
\r
438 echo $this->album->getId();
\r
441 function parse_albumdescription() {echo $this->album->getDescription(); }
\r
442 function parse_picturedescription() {echo $this->CurrentThumb->description; }
\r
443 function parse_picturelink() {
\r
444 $type = requestvar('type');
\r
445 $sort = requestvar('sort');
\r
447 if($type == 'album') $ltype = 'item';
\r
448 else $ltype = $type;
\r
449 } else $ltype = 'item';
\r
450 $extra = array('id' => $this->CurrentThumb->pictureid,
\r
453 $allowed = array('limit');
\r
454 foreach($_GET as $key => $value) if(in_array($key,$allowed)) $extra[$key] = $value;
\r
455 echo NP_gallery::MakeLink($ltype, $extra );
\r
458 function parse_thumbnail() {
\r
460 echo $CONF['IndexURL'].$this->CurrentThumb->thumb_filename;
\r
463 function parse_picturetitle() {echo $this->CurrentThumb->title; }
\r
464 function parse_centeredtopmargin($height,$adjustment) {
\r
465 global $NP_BASE_DIR;
\r
466 $image_size = getimagesize($NP_BASE_DIR.$this->CurrentThumb->thumb_filename);
\r
467 $topmargin = ((intval($height) - intval($image_size[1])) / 2) + intval($adjustment);
\r
468 echo 'margin-top: '.$topmargin.'px;';
\r
470 function parse_pictureviews() {echo $this->CurrentThumb->views; }
\r
471 function parse_editalbumlink() { if($this->album->getID()) echo generateLink('editAlbumF',$this->album->getID() );}
\r
472 function parse_addpicturelink() { if($this->album->getID()) echo generateLink('addPictF',$this->album->getID() );}
\r
474 function parse_if($field, $name='', $value = '') {
\r
479 case 'canaddpicture':
\r
480 $condition = $gmember->canAddPicture($this->album->getID());
\r
482 case 'caneditalbum':
\r
483 $condition = $gmember->canModifyAlbum($this->album->getID());
\r
489 $this->_addIfCondition($condition);
\r