/** * Populates the array of calendar information * * @return array */ private function buildCal() { $counter = 0; $ms = new milestone(); $tsk = new task(); for ($j = 0; $j < $this->weeksInMonth; $j++) { for ($i = 0; $i < 7; $i++) { $counter++; $theday = $counter - $this->firstDay; if ($theday < 1) { $this->calendar[$j][$i]["val"] = $this->daysLastMonth + $theday; $this->calendar[$j][$i]["currmonth"] = 0; } elseif ($theday > $this->daysInMonth) { $this->calendar[$j][$i]["val"] = $theday - $this->daysInMonth; $this->calendar[$j][$i]["currmonth"] = 0; } else { $miles = $ms->getTodayMilestones($this->month, $this->year, $theday, $this->project); $milesnum = count($miles); $tasks = $tsk->getTodayTasks($this->month, $this->year, $theday, $this->project); $tasksnum = count($tasks); $this->calendar[$j][$i] = array("val" => $theday, "milestones" => $miles, "milesnum" => $milesnum, "tasks" => $tasks, "tasksnum" => $tasksnum, "currmonth" => 1); } } } return $this; }
private function addMilestones($project_id, $milestonesArray) { $milestonesHash = array(); $addMilestone = new milestone(); foreach ($milestonesArray->{'milestone'} as $milestone) { $name = $milestone->{'title'}; $desc = $name; $end = $milestone->{'deadline'}; $status = 1; if ($milestone->{'completed'} == "completed") { $status = 0; } $mid = $addMilestone->add($project_id, $name, $desc, $end, $status); if ($mid) { $iid = "" . $milestone->id; $milestonesHash[$iid] = $mid; ++$this->milesCount; } } return $milestonesHash; }
/** * Finish / close a tasklist * * * @param int $id Tasklist ID * @param bool $closeMilestones Determines if the parent milestone is closed too if $id is the last assigned tasklist to that ms * @return bool */ function close_liste($id, $closeMilestones = true) { global $conn, $mylog; $id = (int) $id; $updStmt = $conn->prepare("UPDATE tasklist SET status = 0 WHERE ID = ?"); $upd = $updStmt->execute(array($id)); if ($closeMilestones) { // Close assigned milestone too, if no other open tasklists are assigned to it $milestone = $conn->query("SELECT milestone FROM tasklist WHERE ID = {$id}")->fetch(); if ($milestone[0] > 0) { $cou = $conn->query("SELECT count(*) FROM tasklist WHERE milestone = {$milestone['0']} AND status = 1")->fetch(); if ($cou[0] == 0) { $miles = new milestone(); $miles->close($milestone[0]); } } } // Close tasks in this list $tasks = $this->getTasksFromList($id); if (!empty($tasks)) { $taskobj = new task(); foreach ($tasks as $task) { $taskobj->close($task["ID"]); } } // Log entry if ($upd) { $nam = $conn->query("SELECT project, name FROM tasklist WHERE ID = {$id}")->fetch(); $project = $nam[0]; $name = $nam[1]; $mylog->add($name, 'tasklist', 5, $project); return true; } else { return false; } }
/** * Removes a user from a project * * @param int $user User ID of user to remove * @param int $id Project ID of project to remove from * @return bool */ function deassign($user, $id) { global $conn; $sqlStmt = $conn->prepare("DELETE FROM projekte_assigned WHERE user = ? AND projekt = ?"); $milestone = new milestone(); // Delete the users assignments to closed milestones $donemiles = $milestone->getDoneProjectMilestones($id); if (!empty($donemiles)) { $sql1Stmt = $conn->prepare("DELETE FROM milestones_assigned WHERE user = ? AND milestone = ?"); foreach ($donemiles as $dm) { $sql1 = $sql1Stmt->execute(array((int) $user, $dm['ID'])); } } // Delete the users assignments to open milestones $openmiles = $milestone->getAllProjectMilestones($id, 100000); if (!empty($openmiles)) { $sql2Stmt = $conn->prepare("DELETE FROM milestones_assigned WHERE user = ? AND milestone = ?"); foreach ($openmiles as $om) { $sql2 = $sql2Stmt->execute(array((int) $user, $om['ID'])); } } $task = new task(); $tasks = $task->getProjectTasks($id); // Delete tasks assignments of the user if (!empty($tasks)) { $sql3Stmt = $conn->prepare("DELETE FROM tasks_assigned WHERE user = ? AND task = ?"); foreach ($tasks as $t) { $sql3 = $sql3Stmt->execute(array((int) $user, $t['ID'])); } } // Finally remove the user from the project $del = $sqlStmt->execute(array((int) $user, (int) $id)); if ($del) { $userObj = new user(); $user = $userObj->getProfile($user); $this->mylog->add($user["name"], 'user', 7, $id); return true; } else { return false; } }
<?php require("./init.php"); // check if user is logged in if (!isset($_SESSION["userid"])) { $template->assign("loginerror", 0); $template->display("login.tpl"); die(); } $milestone = new milestone(); $action = getArrayVal($_GET, "action"); $mid = getArrayVal($_GET, "mid"); $mode = getArrayVal($_GET, "mode"); $template->assign("mode", $mode); $id = getArrayVal($_GET, "id"); $name = getArrayVal($_POST, "name"); $desc = getArrayVal($_POST, "desc"); $status = getArrayVal($_POST, "status"); $user = getArrayVal($_POST, "user"); $end = getArrayVal($_POST, "end"); $lim = getArrayVal($_POST, "lim"); $project = array(); $project['ID'] = $id; $template->assign("project", $project); // define the active tab in the project navigation $classes = array("overview" => "overview", "msgs" => "msgs", "tasks" => "tasks", "miles" => "miles_active", "files" => "files", "users" => "users", "tracker" => "tracking");
<?php require "./init.php"; // check if user is logged in if (!isset($_SESSION["userid"])) { $template->assign("loginerror", 0); $template->display("login.tpl"); die; } $milestone = new milestone(); $action = getArrayVal($_GET, "action"); $mid = getArrayVal($_GET, "mid"); $mode = getArrayVal($_GET, "mode"); $template->assign("mode", $mode); $id = getArrayVal($_GET, "id"); $name = getArrayVal($_POST, "name"); $desc = getArrayVal($_POST, "desc"); $status = getArrayVal($_POST, "status"); $user = getArrayVal($_POST, "user"); $end = getArrayVal($_POST, "end"); $lim = getArrayVal($_POST, "lim"); $project = array(); $project['ID'] = $id; $template->assign("project", $project); // define the active tab in the project navigation $classes = array("overview" => "overview", "msgs" => "msgs", "tasks" => "tasks", "miles" => "miles_active", "files" => "files", "users" => "users", "tracker" => "tracking"); $template->assign("classes", $classes); // check if the user belongs to the current project. die if he does not. if (!chkproject($userid, $id)) { $errtxt = $langfile["notyourproject"]; $noperm = $langfile["accessdenied"];
$errtxt = $langfile["nopermission"]; $noperm = $langfile["accessdenied"]; $template->assign("errortext", "{$errtxt}<br>{$noperm}"); $template->display("error.tpl"); die; } if (!chkproject($userid, $id)) { $errtxt = $langfile["notyourproject"]; $noperm = $langfile["accessdenied"]; $template->assign("errortext", "{$errtxt}<br>{$noperm}"); $template->display("error.tpl"); die; } $tasklist = new tasklist(); $myproject = new project(); $milestone = new milestone(); // Get open and closed tasklists $lists = $tasklist->getProjectTasklists($id); $oldlists = $tasklist->getProjectTasklists($id, 0); // Get number of assignable users $project_members = $myproject->getProjectMembers($id, $myproject->countMembers($id)); // Get all the milestones in the project $milestones = $milestone->getAllProjectMilestones($id); //get the current project $pro = $myproject->getProject($id); $projectname = $pro["name"]; $title = $langfile['tasks']; $template->assign("title", $title); $template->assign("milestones", $milestones); $template->assign("projectname", $projectname); $template->assign("assignable_users", $project_members);
/** * Return a message including its answers * * @param int $id Eindeutige Nummer der Nachricht * @return array $message Eigenschaften der Nachricht */ function getMessage($id) { global $conn; $id = (int) $id; $messageStmt = $conn->prepare("SELECT * FROM messages WHERE ID = ? LIMIT 1"); $messageStmt->execute(array($id)); $message = $messageStmt->fetch(); $milesobj = new milestone(); if (!empty($message)) { $repliesStmt = $conn->prepare("SELECT COUNT(*) FROM messages WHERE replyto = ?"); $repliesStmt->execute(array($id)); $replies = $repliesStmt->fetch(); $replies = $replies[0]; $user = new user(); $avatar = $user->getAvatar($message["user"]); $userGender = $conn->query("SELECT gender FROM user WHERE ID = {$message['user']}")->fetch(); $gender = $userGender[0]; $message["gender"] = $gender; $project = $conn->query("SELECT name FROM projekte WHERE ID = {$message['project']}")->fetch(); $message["pname"] = $project[0]; $posted = date(CL_DATEFORMAT . " - H:i", $message["posted"]); $message["postdate"] = $posted; $message["endstring"] = $posted; $message["replies"] = $replies; $message["avatar"] = $avatar; $message["title"] = $message["title"]; $message["text"] = $message["text"]; $message["username"] = $message["username"]; $attached = $this->getAttachedFiles($message["ID"]); $message["files"] = $attached; if ($message["milestone"] > 0) { $miles = $milesobj->getMilestone($message["milestone"]); } else { $miles = array(); } $message["milestones"] = $miles; return $message; } else { return false; } }
/** * Finish / close a tasklist * * @param int $id Tasklist ID * @return bool */ function close_liste($id) { $id = (int) $id; $upd = mysql_query("UPDATE tasklist SET status = 0 WHERE ID = {$id}"); // Close assigned milestone too, if no other open tasklists are assigned to it $sql = mysql_query("SELECT milestone FROM tasklist WHERE ID = {$id}"); $milestone = mysql_fetch_row($sql); if ($milestone[0] > 0) { $sql2 = mysql_query("SELECT count(*) FROM tasklist WHERE milestone = {$milestone['0']} AND status = 1"); $cou = mysql_fetch_row($sql2); if ($cou[0] == 0) { $miles = new milestone(); $miles->close($milestone[0]); } } $tasks = $this->getTasksFromList($id); if (!empty($tasks)) { $taskobj = new task(); foreach ($tasks as $task) { $taskobj->close($task["ID"]); } } // Log entry if ($upd) { $nam = mysql_query("SELECT project, name FROM tasklist WHERE ID = {$id}"); $nam = mysql_fetch_row($nam); $project = $nam[0]; $name = $nam[1]; $this->mylog->add($name, 'tasklist', 5, $project); return true; } else { return false; } }
/** * Return a message including its answers * * @param int $id Eindeutige Nummer der Nachricht * @return array $message Eigenschaften der Nachricht */ function getMessage($id) { $id = (int) $id; $sel = mysql_query("SELECT * FROM messages WHERE ID = {$id} LIMIT 1"); $message = mysql_fetch_array($sel, MYSQL_ASSOC); $tagobj = new tags(); $milesobj = new milestone(); if (!empty($message)) { $replies = mysql_query("SELECT COUNT(*) FROM messages WHERE replyto = {$id}"); $replies = mysql_fetch_row($replies); $replies = $replies[0]; $user = new user(); $avatar = $user->getAvatar($message["user"]); $sel = mysql_query("SELECT gender FROM user WHERE ID = {$message['user']}"); $ds = mysql_fetch_row($sel); $gender = $ds[0]; $message["gender"] = $gender; $project = mysql_query("SELECT name FROM projekte WHERE ID = {$message['project']}"); $project = mysql_fetch_row($project); $project = $project[0]; $project["name"] = stripslashes($project["name"]); $message["pname"] = $project; $posted = date(CL_DATEFORMAT . " - H:i", $message["posted"]); $message["postdate"] = $posted; $message["endstring"] = $posted; $message["replies"] = $replies; $message["avatar"] = $avatar; $message["title"] = stripslashes($message["title"]); $message["text"] = stripslashes($message["text"]); $message["username"] = stripslashes($message["username"]); $message["tagsarr"] = $tagobj->splitTagStr($message["tags"]); $message["tagnum"] = count($message["tagsarr"]); $attached = $this->getAttachedFiles($message["ID"]); $message["files"] = $attached; if ($message["milestone"] > 0) { $miles = $milesobj->getMilestone($message["milestone"]); } else { $miles = array(); } $message["milestones"] = $miles; return $message; } else { return false; } }
/** * Copy a project * by: Daniel Tlach <*****@*****.**>, * Philipp Kiszka <*****@*****.**> * * @param int $id ID of project to copy * @return int $insid New project's ID */ function makecopy($id) { // copy project $q = mysql_query("INSERT INTO projekte (`name`, `desc`, `end`, `start`, `status`, `budget`) SELECT `name`, `desc`, `end`, `start`, `status`, `budget` FROM projekte WHERE ID = " . (int) $id); $insid = mysql_insert_id(); $uid = $_SESSION['userid']; $this->assign($uid, $insid); $milesobj = new milestone(); $objtasklist = new tasklist(); $objtask = new task(); if ($q) { $pname = $this->getProject($insid); $name = $pname["name"] . " Copy"; mysql_query("UPDATE projekte SET `name` = '{$name}' WHERE ID = " . $insid . " LIMIT 1"); // now copy the milestones $miles = $milesobj->getAllProjectMilestones($id); if (!empty($miles)) { // go through the milestones foreach ($miles as $ms) { // copy milestone $msid = $milesobj->add($insid, $ms["name"], $ms["desc"], $ms["end"], 1); // get all tasklists for milestone $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = {$ms['ID']}"); if ($qb) { // go through the tasklists while ($tl = mysql_fetch_array($qb)) { // copy tasklist $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid); // get tasks for the tasklist $tasks = $objtasklist->getTasksFromList($tl["ID"]); if (!empty($tasks)) { foreach ($tasks as $task) { $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid); } // tasks END } } // tasklists END } } // milestones END } // get all tasklists and tasks that do not belong to a milestone $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = 0"); if ($qb) { // go through the tasklists while ($tl = mysql_fetch_array($qb)) { // copy tasklist $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid); // get tasks for the tasklist $tasks = $objtasklist->getTasksFromList($tl["ID"]); if (!empty($tasks)) { foreach ($tasks as $task) { $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid); } // tasks END } } // tasklists END } mkdir(CL_ROOT . "/files/" . CL_CONFIG . "/{$insid}/", 0777); $this->mylog->add($name, 'projekt', 1, $insid); return $insid; } else { return false; } }