public static function get_list($_FORM = array()) { // Two modes, 1: get all comments for an entity, eg a task if ($_FORM["entity"] && in_array($_FORM["entity"], array("project", "client", "task", "timeSheet")) && $_FORM["entityID"]) { $e = new $_FORM["entity"](); $e->set_id($_FORM["entityID"]); if ($e->select()) { // this ensures that the user can read the entity return comment::util_get_comments_array($_FORM["entity"], $_FORM["entityID"], $_FORM); } // Or 2: get all starred comments } else { if ($_FORM["starred"]) { $filter = comment::get_list_filter($_FORM); if (is_array($filter) && count($filter)) { $filter = " WHERE " . implode(" AND ", $filter); } $q = "SELECT comment.*, commentCreatedUser as personID, clientContact.clientContactName\n FROM comment \n LEFT JOIN clientContact on comment.commentCreatedUserClientContactID = clientContact.clientContactID\n " . $filter . " \n ORDER BY commentCreatedTime"; $db = new db_alloc(); $db->query($q); $people =& get_cached_table("person"); while ($row = $db->next_record()) { $e = new $row["commentMaster"](); $e->set_id($row["commentMasterID"]); $e->select(); $row["entity_link"] = $e->get_link(); $row["personID"] and $row["person"] = $people[$row["personID"]]["name"]; $row["clientContactName"] and $row["person"] = $row["clientContactName"]; $rows[] = $row; } has("timeSheetItem") and $tsi_rows = timeSheetItem::get_timeSheetItemComments(null, true); foreach ((array) $tsi_rows as $row) { $t = new task(); $t->set_id($row["taskID"]); $t->select(); $row["entity_link"] = $t->get_link(); $row["commentMaster"] = "Task"; $row["commentMasterID"] = $row["taskID"]; $row["commentCreatedTime"] = $row["date"]; $row["personID"] and $row["person"] = $people[$row["personID"]]["name"]; $rows[] = $row; } return (array) $rows; } } }
/** * Get all time sheet item comments in a faked mbox format * @param integer $taskID which task the time sheet item comments relate to * @return string of mbox format emails */ public function get_timeSheetItem_comments($taskID) { $people =& get_cached_table("person"); has("time") and $rows = timeSheetItem::get_timeSheetItemComments($taskID); foreach ((array) $rows as $row) { $d = $row["timeSheetItemCreatedTime"] or $d = $row["date"]; $timestamp = format_date("U", $d); $name = $people[$row["personID"]]["name"]; $str .= $br . "From allocPSA " . date('D M j G:i:s Y', $timestamp); $str .= "\nFrom: " . $name; $str .= "\nDate: " . date("D, d M Y H:i:s O", $timestamp); $str .= "\n\n" . $name . " " . $row["duration"] . " " . $row["comment"]; $br = "\n\n"; } return $str; }