0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
tikiwiki
/
1.9.7-31
/
htdocs
/
lib
/
minical
/
[
Home
]
File: minicallib.php
<?php //this script may only be included - so its better to die if called directly. if (strpos($_SERVER["SCRIPT_NAME"],basename(__FILE__)) !== false) { header("location: index.php"); exit; } class MiniCalLib extends TikiLib { function MiniCalLib($db) { # this is probably uneeded now if (!$db) { die ("Invalid db object passed to MiniCalLib constructor"); } $this->db = $db; } // Returns an array where each member of the array has: // start: unix timestamp of the interval start time // end : unix timestamp of the interval end time // events : array of events for the slot listing: // title, description and duration function minical_events_by_slot($user, $start, $end, $interval) { // since interval is in hour convert it to seconds //$interval = $interval * 60 * 60; $slots = array(); while ($start <= $end) { $aux = array(); $aux['start'] = $start; $end_p = $start + $interval; $aux['end'] = $end_p; $query = "select * from `tiki_minical_events` where `user`=? and `start`>=? and `start`<? order by ".$this->convert_sortmode("start_asc"); //print($query);print("<br />"); $result = $this->query($query,array($user,(int)$start,(int)$end_p)); $events = array(); while ($res = $result->fetchRow()) { $res['end'] = $res['start'] + $res['duration']; $res2 = array(); if ($res['topicId']) { $query2 = "select `topicId`,`isIcon`,`path`,`name` from `tiki_minical_topics` where `topicId`=?"; $result = $this->query($query2, array((int)$res['topicId'])); $res2 = $result->fetchRow(); } $res['topic'] = $res2; $events[] = $res; } $aux['events'] = $events; $slots[] = $aux; $start += $interval; } return $slots; } function minical_upload_topic($user, $topicname, $name, $type, $size, $data, $path) { if (strlen($data) == 0) { $isIcon = 'y'; } else { $isIcon = 'n'; } $query = "insert into `tiki_minical_topics`(`user`,`name`,`filename`,`filetype`,`filesize`,`data`,`isIcon`,`path`) values(?,?,?,?,?,?,?,?)"; $this->query($query, array($user,$topicname,$name,$type,(int)$size,$data,$isIcon,$path)); } function minical_list_topics($user, $offset, $maxRecords, $sort_mode, $find) { $bindvars = array($user); if ($find) { $mid = " and (`name` like ? or `filename` like ?)"; $bindvars[] = "%$find%"; $bindvars[] = "%$find%"; } else { $mid = ""; } $query = "select `isIcon`,`path`,`name`,`topicId` from `tiki_minical_topics` where `user`=? $mid order by ".$this->convert_sortmode($sort_mode); $query_cant = "select count(*) from `tiki_minical_topics` where `user`=? $mid"; $result = $this->query($query,$bindvars,$maxRecords,$offset); $cant = $this->getOne($query_cant,$bindvars); $ret = array(); while ($res = $result->fetchRow()) { $ret[] = $res; } $retval = array(); $retval["data"] = $ret; $retval["cant"] = $cant; return $retval; } function minical_get_topic($user, $topicId) { $query = "select * from `tiki_minical_topics` where `user`=? and `topicId`=?"; $result = $this->query($query,array($user,(int)$topicId)); $res = $result->fetchRow(); return $res; } function minical_list_events($user, $offset, $maxRecords, $sort_mode, $find) { $bindvars = array($user); if ($find) { $mid = " and (`title` like ? or `description` like ?)"; $bindvars[] = "%$find%"; $bindvars[] = "%$find%"; } else { $mid = ""; } $query = "select * from `tiki_minical_events` where `user`=? $mid order by ".$this->convert_sortmode($sort_mode); $query_cant = "select count(*) from `tiki_minical_events` where `user`=? $mid"; $result = $this->query($query,$bindvars,$maxRecords,$offset); $cant = $this->getOne($query_cant,$bindvars); $ret = array(); while ($res = $result->fetchRow()) { $res2 = array(); if ($res['topicId']) { $query2 = "select `topicId`,`isIcon`,`path`,`name` from `tiki_minical_topics` where `topicId`=?"; $result2 = $this->query($query2,array((int)$res['topicId'])); $res2 = $result2->fetchRow(); } $res['topic'] = $res2; $ret[] = $res; } $retval = array(); $retval["data"] = $ret; $retval["cant"] = $cant; return $retval; } function minical_list_events_from_date($user, $offset, $maxRecords, $sort_mode, $find, $pdate) { $bindvars = array((int)$pdate,$user); if ($find) { $mid = " and (`title` like ? or `description` like ?)"; $bindvars[] = "%$find%"; $bindvars[] = "%$find%"; } else { $mid = ""; } $query = "select * from `tiki_minical_events` where `start`>? and `user`=? $mid order by ".$this->convert_sortmode($sort_mode); $query_cant = "select count(*) from `tiki_minical_events` where `start`>? and `user`=? $mid"; $result = $this->query($query,$bindvars,$maxRecords,$offset); $cant = $this->getOne($query_cant,$bindvars); $ret = array(); while ($res = $result->fetchRow()) { $res2 = array(); if ($res['topicId']) { $query2 = "select `topicId`,`isIcon`,`path`,`name` from `tiki_minical_topics` where `topicId`=?"; $result2 = $this->query($query2,array((int)$res['topicId'])); $res2 = $result2->fetchRow(); } $res['topic'] = $res2; $res['start'] += $this->get_site_time_difference($user); //added by WellsWang to Solove Mini Cal Upcoming Events wrong TimeZone Problem $ret[] = $res; } $retval = array(); $retval["data"] = $ret; $retval["cant"] = $cant; return $retval; } function minical_get_event($user, $eventId) { $query = "select * from `tiki_minical_events` where `user`=? and `eventId`=?"; $result = $this->query($query,array($user,(int)$eventId)); $res = $result->fetchRow(); return $res; } function minical_remove_topic($user, $topicId) { $query = "delete from `tiki_minical_topics` where `user`=? and `topicId`=?"; $this->query($query,array($user,(int)$topicId)); } function minical_event_reminded($user, $eventId) { $query = "update `tiki_minical_events` set `reminded`=? where `user`=? and `eventId`=?"; $this->query($query,array("y",$user,(int)$eventId)); } function minical_replace_event($user, $eventId, $title, $description, $start, $duration, $topicId) { $now = date("U"); if ($eventId) { $query = "update `tiki_minical_events` set `topicId`=?,`end`=?,`title`=?,`description`=?,`start`=?,`duration`=?,`reminded`=? where `user`=? and `eventId`=?"; $this->query($query,array((int)$topicId,$start+$duration,$title,$description,(int)$start,(int)$duration,"n",$user,(int)$eventId)); return $eventId; } else { $query = "insert into `tiki_minical_events`(`user`,`title`,`description`,`start`,`duration`,`end`,`topicId`,`reminded`) values(?,?,?,?,?,?,?,?)"; $this->query($query,array($user,$title,$description,(int)$start,(int)$duration,$start+$duration,(int)$topicId,"n")); $Id = $this->getOne("select max(`eventId`) from `tiki_minical_events` where `user`=? and `start`=?",array($user,(int)$start)); return $Id; } } function minical_remove_event($user, $eventId) { $query = "delete from `tiki_minical_events` where `user`=? and `eventId`=?"; $this->query($query,array($user,(int)$eventId)); } function minical_get_events_to_remind($user, $rem) { // Search for events that are not reminded and will start // in less than $rem $limit = date("U") + $rem; $now = date("U"); $query = "select * from `tiki_minical_events` where `user`=? and `reminded`<>? and `start`<=? and `start`>?"; $result = $this->query($query,array($user,'y',(int)$limit,(int)$now)); $ret = array(); while ($res = $result->fetchRow()) { $ret[] = $res; } return $ret; } function minical_remove_old($user, $pdate) { $query = "delete from `tiki_minical_events` where `user`=? and `start`<?"; $this->query($query,array($user,(int)$pdate)); } } global $dbTiki; $minicallib = new MiniCalLib($dbTiki); ?>