* @license http://www.contenido.org/license/LIZENZ.txt * @link http://www.4fb.de * @link http://www.contenido.org * @since file available since contenido release <= 4.6 * * {@internal * created unknown * modified 2008-06-30, Frederic Schneider, add security fix * modified 2011-03-14, Murat Purc, adapted to new GenericDB, partly ported to PHP 5, formatting * * $Id$: * }} * */ if (!defined('CON_FRAMEWORK')) { die('Illegal call'); } class TODOCollection extends CommunicationCollection { public function __construct() { parent::__construct(); $this->_setItemClass("TODOItem"); } public function select($where = "", $group_by = "", $order_by = "", $limit = "") { if ($where == "") { $where = "comtype='todo'"; } else { $where .= " AND comtype='todo'"; } return parent::select($where, $group_by, $order_by, $limit); } /** * Creates a new communication item */ public function createItem($itemtype, $itemid, $reminderdate, $subject, $content, $notimail, $notibackend, $recipient) { $item = parent::create(); $item->set("subject", $subject); $item->set("message", $content); $item->set("comtype", "todo"); $item->set("recipient", $recipient); $item->store(); if ($notimail === true) { $notimail = 1; } // Is the date passed as string? if (!is_numeric($reminderdate)) { // Convert to timestamp $reminderdate = strtotime($reminderdate); } $item->setProperty("todo", "reminderdate", $reminderdate); $item->setProperty("todo", "itemtype", $itemtype); $item->setProperty("todo", "itemid", $itemid); $item->setProperty("todo", "emailnoti", $notimail); $item->setProperty("todo", "backendnoti", $notibackend); $item->setProperty("todo", "status", "new"); $item->setProperty("todo", "priority", "medium"); $item->setProperty("todo", "progress", "0"); return $item; } public function getStatusTypes() { $statusTypes = array( "new" => i18n("New"), "progress" => i18n("In progress"), "done" => i18n("Done"), "waiting" => i18n("Waiting for action"), "deferred" => i18n("Deferred") ); return ($statusTypes); } public function getPriorityTypes() { $priorityTypes = array( "low" => i18n("Low"), "medium" => i18n("Medium"), "high" => i18n("High"), "immediately" => i18n("Immediately") ); return ($priorityTypes); } } class TODOItem extends CommunicationItem { public function setProperty ($type, $name, $value) { if ($type == "todo" && $name == "emailnoti") { if ($value) { parent::setProperty("todo", "emailnoti-sent", false); $value = true; } else { $value = false; } } parent::setProperty($type, $name, $value); } } class TODOLink extends cHTMLLink { public function __construct($itemtype, $itemid, $subject, $message) { global $sess; parent::__construct(); $subject = urlencode($subject); $message = urlencode($message); $this->setEvent("click", 'javascript:window.open('."'".$sess->url("main.php?subject=$subject&message=$message&area=todo&frame=1&itemtype=$itemtype&itemid=$itemid")."', 'todo', 'scrollbars=yes, resizable=yes, height=350, width=550');"); $this->setEvent("mouseover", "this.style.cursor='pointer'"); $img = new cHTMLImage("images/but_setreminder.gif"); $img->setStyle("padding-left: 2px; padding-right: 2px;"); $img->setAlt(i18n("Set reminder / add to todo list")); $this->setLink("#"); $this->setContent($img->render()); $this->setAlt(i18n("Set reminder / add to todo list")); } } ?>