function fyi_read() { $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); $ts = date('Y-m-d H:i:s'); $query = "update healingcrystals_assignments_action_request set is_fyi='R', last_modified='" . $ts . "', fyi_marked_read_on='" . $ts . "' where is_fyi='1' and user_id='" . $this->logged_user->getId() . "' and comment_id='" . $this->active_comment->getId() . "'"; mysql_query($query); mysql_close($link); // $this->redirectToUrl(assemble_url('goto_home_tab')); }
public function renderComment(Comment $comm, $template) { $vars = array('id' => $comm->getId(), 'username' => $comm->getUsername(), 'text' => $comm->getText(), 'date' => date('j.m.Y H:i', $comm->getDate()), 'ip' => $comm->getIpAddress()); $user = FrontController::getUser(); $config = FrontController::$config; if (in_array($this->_user->user_group, $config['moder_groups']) || in_array($this->_user->user_id, $config['moders']) || ($user->user_id == $comm->getUserId() && $comm->getUserId() || $user->ip_address == $comm->getIpAddress() && $comm->getDate() > time() - $config['owner_comment_del_time'])) { $blocks['perm_del'] = true; } return $this->render($template, $vars, $blocks); }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param Comment $value A Comment object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(Comment $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }
/** * Exclude object from result * * @param Comment $comment Object to remove from the list of results * * @return CommentQuery The current query, for fluid interface */ public function prune($comment = null) { if ($comment) { $this->addUsingAlias(CommentPeer::ID, $comment->getId(), Criteria::NOT_EQUAL); } return $this; }
if ($comment->getAuthor() == $uid) { $permEdit = true; } $blog_user = Database::get()->querySingle("SELECT user_id FROM blog_post WHERE id = ?d", $comment->getRid()); if ($blog_user->user_id == $uid) { $permEdit = true; } if (isset($is_admin) && $is_admin) { $permEdit = true; } } if ($permEdit) { if ($comment->edit($_POST['commentText'])) { $response[0] = 'OK'; $response[1] = "<div class='alert alert-success'>".$langCommentsSaveSuccess."</div>"; $response[2] = '<div id="comment_content-'.$comment->getId().'">'.q($comment->getContent()).'</div>'; } else { $response[0] = 'ERROR'; $response[1] = "<div class='alert alert-warning'>".$langCommentsSaveFail."</div>"; } } else { $response[0] = 'ERROR'; $response[1] = "<div class='alert alert-warning'>".$langCommentsEditNoPerm."</div>"; } } else { $response[0] = 'ERROR'; $response[1] = "<div class='alert alert-warning'>".$langCommentsLoadFail."</div>"; } echo json_encode($response); } }
function getAssignedActionRequestContent($user_id = '', $tickets_due_flag = '') { require_once SMARTY_PATH . '/plugins/modifier.html_excerpt.php'; if (empty($user_id)) { $user_id = $this->getId(); } $status_str = ''; if ($_POST['status'] == 'complete') { $status_str = "and a.is_action_request != '1'"; } elseif ($_POST['status'] == 'incomplete') { $status_str = "and a.is_action_request = '1'"; } if ($_POST['sort'] == 'name') { $order_by = " order by first_name ASC, date_added DESC"; } else { $order_by = " order by date_added DESC"; } $assigned_ar_content = '<table width="250" border="1" cellspacing="2" cellpadding="2"> <form action="' . assemble_url('assigned_action_request') . '" method="post" name="sortForm"> <tr><td valign="top"><b>Sort:</b><br/><input style="width:10px;" type="radio" name="sort" value="date" onclick="" ' . ($_POST['sort'] != 'name' ? 'checked="checked"' : '') . '/> Date<br/><input style="width:10px;" type="radio" name="sort" value="name" onclick="" ' . ($_POST['sort'] == 'name' ? 'checked="checked"' : '') . '/> Assigned To</td></tr> <tr><td valign="top"><b>Status:</b><br/><input style="width:10px;" type="radio" name="status" value="" onclick="" ' . ($_POST['status'] == '' ? 'checked="checked"' : '') . '/> All Action Requests<br/><input style="width:10px;" type="radio" name="status" value="incomplete" onclick="" ' . ($_POST['status'] == 'incomplete' ? 'checked="checked"' : '') . '/> Incomplete Action Requests<br/><input style="width:10px;" type="radio" name="status" value="complete" onclick="" ' . ($_POST['status'] == 'complete' ? 'checked="checked"' : '') . '/> Completed Action Requests</td></tr> <tr><td><input style="cursor:pointer;" type="button" onclick="document.sortForm.submit();" name="Filter" value="Filter"/></td></tr> <tr><td><br/><br/></td></tr> </form> </table>'; $assigned_ar_content .= '<table width="100%" cellspacing="2" cellpadding="2"><tr><td align="center"><b>Date</b></td><td><b>Ticket Name</b></td><td><b>Assigned To</b></td></tr>'; $query = "select *\n from healingcrystals_assignments_action_request a, healingcrystals_users u\n where a.selected_by_user_id = '" . $user_id . "' and a.user_id = u.id " . $status_str . $order_by; $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME, $link); $result = mysql_query($query); while ($array = mysql_fetch_assoc($result)) { $comment = new Comment($array['comment_id']); $parent = $comment->getParent(); if (instance_of($parent, 'ProjectObject')) { $assigned_ar_content .= '<tr><td valign="top" align="center" style="vertical-align:top;">' . date('m-d-Y', strtotime($comment->getCreatedOn())) . '<br/>' . date('(H:i)', strtotime($comment->getCreatedOn())) . '</td><td valign="top" style="vertical-align:top;"><a href="' . $comment->getViewUrl() . '">' . $parent->getName() . '</a> <span style="cursor:pointer; font-weight:bold" onclick="$(this).text() == \'[+]\' ? $(this).text(\'[-]\') :$(this).text(\'[+]\');$(\'#ticketResp_' . $comment->getId() . '\').toggle()">[+]</span></td><td valign="top" style="vertical-align:top;">' . $array['first_name'] . ' ' . $array['last_name'] . '</td></tr><tr style="display:none;" id="ticketResp_' . $comment->getId() . '"><td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">'; //$assigned_user = new User($array['user_id']); $assigned_ar_content .= '<tr><td valign="top">Priority:</td><td valign="top">' . $comment->getPriorityName() . '</td></tr>'; $assigned_ar_content .= '<tr><td valign="top">Status:</td><td valign="top">' . ($array['is_action_request'] != '1' ? 'Complete' : 'Incomplete') . '</td></tr>'; $assigned_ar_content .= '<tr><td valign="top">Comment:</td><td valign="top">' . $comment->getBody() . '</td></tr></table></td></tr><tr><td><br/></td></tr>'; } //$assigned_ar_content .= '<tr><td colspan="3"><br/><br/></td></tr>'; } mysql_close($link); $assigned_ar_content .= '</table>'; return $assigned_ar_content; }
function getHomeTabContent($user_id = '', $tickets_due_flag = '') { require_once SMARTY_PATH . '/plugins/modifier.html_excerpt.php'; if (empty($user_id)) { $user_id = $this->getId(); } $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME, $link); $query = "select setting_value from healingcrystals_user_settings where user_id='" . $user_id . "' and setting_type='HOMETAB_LAYOUT'"; $result = mysql_query($query); if (mysql_num_rows($result)) { $info = mysql_fetch_assoc($result); $layout_type = $info['setting_value']; } else { $layout_type = 'summary'; } //possible values for tickets_due_flag: 'due' or 'all' if (empty($tickets_due_flag)) { $tickets_due_flag = 'due'; } $query = ''; if ($tickets_due_flag == 'due') { $query = "SELECT distinct a.id, a.type, b.user_id, c.reminder_date, IF(c.reminder_date is null, a.due_on, IF(a.due_on<=c.reminder_date, a.due_on, c.reminder_date)) as old_date\n FROM healingcrystals_project_objects a\n inner join healingcrystals_assignments b on a.id=b.object_id\n left outer join healingcrystals_project_object_misc c on (a.id=c.object_id)\n where a.state='" . STATE_VISIBLE . "' and b.user_id='" . $user_id . "' and b.is_owner='1' and\n (a.type='Task' or a.type='Ticket') and (a.completed_on is null or a.completed_on='') and\n ((c.reminder_date is not null and c.reminder_date<>'0000-00-00' and c.reminder_date<=now()) or (a.due_on is not null and a.due_on<=now()) )\n order by b.user_id, IFNULL(a.priority, '0') desc, old_date"; } elseif ($tickets_due_flag == 'all') { $query = "SELECT distinct a.id, a.type, b.user_id\n FROM healingcrystals_project_objects a\n inner join healingcrystals_assignments b on a.id=b.object_id\n left outer join healingcrystals_project_object_misc c on (a.id=c.object_id)\n where a.state='" . STATE_VISIBLE . "' and b.user_id='" . $user_id . "' and b.is_owner='1' and\n (a.type='Task' or a.type='Ticket') and (a.completed_on is null or a.completed_on='') and\n a.due_on is not null\n order by b.user_id, IFNULL(a.priority, '0') desc"; } if (!empty($query)) { $result = mysql_query($query, $link); $tickets_due_info = array(); if (mysql_num_rows($result)) { while ($entry = mysql_fetch_assoc($result)) { $tickets_due_info[] = array('type' => $entry['type'], 'id' => $entry['id'], 'reminder' => $entry['reminder_date']); } } } //BOF:mod 20111103 #462 /* //EOF:mod 20111103 #462 $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name from healingcrystals_assignments_action_request a inner join healingcrystals_project_objects b on a.comment_id=b.id inner join healingcrystals_project_objects d on b.parent_id=d.id left outer join healingcrystals_project_objects e on d.milestone_id=e.id inner join healingcrystals_projects c on b.project_id=c.id where b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_action_request='1' and d.state='" . STATE_VISIBLE . "' and (d.completed_on is null or d.completed_on='') ) union (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name from healingcrystals_assignments_flag_fyi_actionrequest a inner join healingcrystals_project_objects b on a.object_id=b.id left outer join healingcrystals_project_objects e on b.milestone_id=e.id inner join healingcrystals_projects c on b.project_id=c.id where a.user_id='" . $user_id . "' and flag_actionrequest='1' and b.state='" . STATE_VISIBLE . "' and (b.completed_on is null or b.completed_on='')) order by prio desc, project_name, date_value desc"; //BOF:mod 20111103 #462 */ $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name\n\t\t from healingcrystals_assignments_action_request a\n\t\t inner join healingcrystals_project_objects b on a.comment_id=b.id\n\t\t inner join healingcrystals_project_objects d on b.parent_id=d.id\n\t\t left outer join healingcrystals_project_objects e on d.milestone_id=e.id\n\t\t inner join healingcrystals_projects c on b.project_id=c.id\n\t\t where b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_action_request='1'\n and d.state='" . STATE_VISIBLE . "' )\n union\n (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_flag_fyi_actionrequest a\n inner join healingcrystals_project_objects b on a.object_id=b.id\n left outer join healingcrystals_project_objects e on b.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where a.user_id='" . $user_id . "' and flag_actionrequest='1' and b.state='" . STATE_VISIBLE . "'\n )\n\t\t order by prio desc, project_name, date_value desc"; //EOF:mod 20111103 #462 $result = mysql_query($query, $link); $action_request_info = array(); if (mysql_num_rows($result)) { while ($entry = mysql_fetch_assoc($result)) { if ($layout_type == 'summary') { if (!array_key_exists((string) $entry['parent_ref'], $action_request_info)) { $action_request_info[(string) $entry['parent_ref']] = array(); } $action_request_info[(string) $entry['parent_ref']][] = $entry['id']; } else { //BOF:mod 20111019 #448 if (empty($entry['id'])) { $action_request_info[] = $entry['parent_ref']; } else { //EOF:mod 20111019 #448 $action_request_info[] = $entry['id']; //BOF:mod 20111019 } //EOF:Mod 20111019 } } } //BOF:mod 20111103 #462 /* //EOF:mod 20111103 #462 $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name from healingcrystals_assignments_action_request a inner join healingcrystals_project_objects b on a.comment_id=b.id inner join healingcrystals_project_objects d on b.parent_id=d.id left outer join healingcrystals_project_objects e on d.milestone_id=e.id inner join healingcrystals_projects c on b.project_id=c.id where b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_fyi='1' and d.state='" . STATE_VISIBLE . "' and (d.completed_on is null or d.completed_on='') ) union (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name from healingcrystals_assignments_flag_fyi_actionrequest a inner join healingcrystals_project_objects b on a.object_id=b.id left outer join healingcrystals_project_objects e on b.milestone_id=e.id inner join healingcrystals_projects c on b.project_id=c.id where a.user_id='" . $user_id . "' and flag_fyi='1' and b.state='" . STATE_VISIBLE . "' and (b.completed_on is null or b.completed_on='')) order by prio desc, project_name, date_value desc"; //BOF:mod 20111103 #462 */ $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name\n\t\t from healingcrystals_assignments_action_request a\n\t\t inner join healingcrystals_project_objects b on a.comment_id=b.id\n\t\t inner join healingcrystals_project_objects d on b.parent_id=d.id\n\t\t left outer join healingcrystals_project_objects e on d.milestone_id=e.id\n\t\t inner join healingcrystals_projects c on b.project_id=c.id\n\t\t where b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_fyi='1'\n and d.state='" . STATE_VISIBLE . "' )\n union\n (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_flag_fyi_actionrequest a\n inner join healingcrystals_project_objects b on a.object_id=b.id\n left outer join healingcrystals_project_objects e on b.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where a.user_id='" . $user_id . "' and flag_fyi='1' and b.state='" . STATE_VISIBLE . "'\n )\n\t\t order by prio desc, project_name, date_value desc"; //EOF:mod 20111103 #462 $result = mysql_query($query, $link); $info = array(); if (mysql_num_rows($result)) { while ($entry = mysql_fetch_assoc($result)) { if ($layout_type == 'summary') { if (!array_key_exists((string) $entry['parent_ref'], $info)) { $info[(string) $entry['parent_ref']] = array(); } $info[(string) $entry['parent_ref']][] = $entry['id']; } else { //BOF:mod 20111019 #448 if (empty($entry['id'])) { $info[] = $entry['parent_ref']; } else { //EOF:mod 20111019 #448 $info[] = $entry['id']; //BOF:mod 20111019 } //EOF:Mod 20111019 } } } $search_from = time() - 24 * 60 * 60; $query = "SELECT a.id, b.user_id FROM healingcrystals_project_objects a\n inner join healingcrystals_assignments b on a.id=b.object_id\n\t\t where a.state='" . STATE_VISIBLE . "' and b.user_id='" . $user_id . "' and a.type='Ticket' and a.completed_on is not null and\n\t\t a.completed_on >= '" . date('Y-m-d H:i', $search_from) . "' order by b.user_id, a.due_on"; $result = mysql_query($query, $link); $completed_objects = array(); if (mysql_num_rows($result)) { while ($entry = mysql_fetch_assoc($result)) { $query02 = "select max(id) as comment_id from healingcrystals_project_objects where parent_id='" . $entry['id'] . "' and parent_type='Ticket' and type='Comment'"; $result02 = mysql_query($query02); if (mysql_num_rows($result02)) { $comment_info = mysql_fetch_assoc($result02); } $completed_objects[] = array('ticket_id' => $entry['id'], 'last_comment_id' => $comment_info['comment_id']); } } $fyi_updates = array(); $query = "select id, fyi_user_id, object_id from healingcrystals_project_objects_to_fyi_users where fyi_user_id='" . $user_id . "' and user_intimated_on is null"; $result = mysql_query($query); if (mysql_num_rows($result)) { while ($entry = mysql_fetch_assoc($result)) { $fyi_updates[] = $entry['object_id']; } } $fyi_table_start = ' <a name="fyi"></a> <table style="border:1px solid black;"> <tr> <td colspan="4"> </td> </tr>' . (count($info) ? ' <tr> <th colspan="4">FYI Comment(s)</th> </tr> <tr> <td colspan="4"> </td> </tr>' : ''); $fyi_table_end = ' </table>'; $action_request_table_start = ' <a name="action_request"></a> <table style="border:1px solid black;"> <tr> <td colspan="4"> </td> </tr>' . (count($action_request_info) ? ' <tr> <th colspan="4">Action Request Comment(s)</th> </tr> <tr> <td colspan="4"> </td> </tr>' : ''); $action_request_table_end = ' </table>'; $completed_objects_table_start = ' <a name="closed_tickets"></a> <table style="border:1px solid black;"> <tr> <td colspan="2"> </td> </tr>' . (count($completed_objects) ? ' <tr> <th colspan="2">Recently Closed Tickets</th> </tr> <tr> <td colspan="2"> </td> </tr>' : ''); $completed_objects_table_end = ' </table>'; $fyi_updates_table_start = ' <table style="border:1px solid black;"> <tr> <td colspan="2"> </td> </tr>' . (count($fyi_updates) ? ' <tr> <th colspan="2">FYI Updates</th> </tr> <tr> <td colspan="2"> </td> </tr>' : ''); $fyi_updates_table_end = ' </table>'; $tickets_due_table_start = ' <a name="tickets_due"></a> <table style="border:1px solid black;"> <tr><td colspan="4"> </td></tr> <tr> <th colspan="4"> Due Tickets & Tasks: <div style="float:right;font-weight:normal;"> <table cellspacing="0" cellpadding="0"> <tr> <td valign="middle"> <input type="radio" onclick="location.href=\'' . assemble_url('goto_home_tab') . '&due_flag=due\'" name="objects_due" value="due" style="width:20px;" ' . ($tickets_due_flag == 'due' ? ' checked="true"' : '') . ' /> </td> <td valign="middle">Show Due Dates/Reminders</td> <td valign="middle"> </td> <td valign="middle"> <input type="radio" onclick="location.href=\'' . assemble_url('goto_home_tab') . '&due_flag=all\'" name="objects_due" value="all" style="width:20px;" ' . ($tickets_due_flag == 'all' ? ' checked="true"' : '') . ' /> </td> <td valign="middle">Show All Tickets & Tasks</td> </tr> </table> </div> </th> </tr> <tr><td colspan="4"> </td></tr> <tr> <th align="left">Type</th> <th align="left">Name</th> <th align="left">Priority</th> <th align="left">' . ($tickets_due_flag == 'due' ? 'Due on / Reminder' : 'Due on') . '</th> </tr>'; $tickets_due_table_end = ' </table>'; $tickets_due_content = ''; if ($tickets_due_info && is_array($tickets_due_info)) { foreach ($tickets_due_info as $entry) { $type = $entry['type']; $obj = new $type($entry['id']); $due_date_val = $obj->getDueOn(); if (!empty($due_date_val)) { $due_date = date('F d, Y', strtotime($obj->getDueOn())); } else { $due_date = '--'; } if (!empty($entry['reminder']) && $entry['reminder'] != '0000-00-00') { $reminder_date = date('F d, Y', strtotime($entry['reminder'])); } else { $reminder_date = '--'; } if ($tickets_due_flag == 'due') { $date_string = $due_date . ' / ' . $reminder_date; } else { $date_string = $due_date; } $tickets_due_content .= ' <tr> <td>' . $type . '</td> <td> <a target="_blank" href="' . $obj->getViewUrl() . '"> <span class="homepageobject">' . strip_tags($obj->getName()) . '</span> </a> </td> <td>' . $obj->getFormattedPriority() . '</td> <td> ' . $date_string . '</td> </tr>'; unset($obj); } } else { $tickets_due_content .= ' <tr> <td colspan="4">No Records to Display</td> </tr>'; } $fyi_comments_unvisited = 0; $content = ''; if ($info && is_array($info)) { if ($layout_type == 'summary') { foreach ($info as $ticket_id => $comments) { //BOF:mod 20111019 #448 if (!empty($comments[0])) { //EOF:mod 20111019 #448 $temp_obj = new Comment($comments[0]); $parenttype = $temp_obj->getParentType(); //BOF:mod 20111019 #448 } else { $temp_obj = new ProjectObject($ticket_id); $parenttype = $temp_obj->getType(); } //EOF:mod 20111019 #448 $parentobj = new $parenttype($ticket_id); /*$projectobj = new Project($parentobj->getProjectId()); $milestone_id = $parentobj->getMilestoneId(); if (!empty($milestone_id)){ $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $parentobj->getAssignmentData(); foreach($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)){ $assigneesstring = substr($assigneesstring, 0, -2); } $dueon = date('F d, Y', strtotime($parentobj->getDueOn())); if ($dueon=='January 01, 1970'){ $dueon = '--'; } if ($milestoneobj){ $priority = $milestoneobj->getPriority(); if (!empty($priority) || $priority=='0'){ $priority = $milestoneobj->getFormattedPriority(); } else { $priority = '--'; } } else { $priority = '--'; }*/ $comment_links = ''; //$comment_info = ''; $count = 0; //$max_chars = 1000; foreach ($comments as $comment_id) { $count++; //BOF:mod 20111019 #448 if (!empty($comment_id)) { //EOF:mod 20111019 #448 $temp_obj = new Comment($comment_id); $is_unvisited = $this->link_unvisited($temp_obj->getId()); if ($is_unvisited) { $fyi_comments_unvisited++; } /* $created_by_id = $temp_obj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($temp_obj->getCreatedOn()); $created_on = date('m-d-y', $created_on); $temp = $temp_obj->getFormattedBody(true, true); $comment_body = $temp; */ //$comment_body = trim(str_excerpt(smarty_modifier_html_excerpt($temp), $max_chars)); //if (strlen($temp)>$max_chars){ // $show_read_link = true; //} else { // $show_read_link = false; //} $comment_links .= '<a target="_blank" href="' . $temp_obj->getViewUrl() . '" class="anc01' . (!$is_unvisited ? '_visited' : '') . '">#' . $count . '</a> '; /*$comment_info .= ' <tr ' . ($count%2==1 ? ' style="background-color:#ffffff;" ' : ' style="background-color:#eeeeee;" ') . '> <td valign="top"> Comment by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $temp_obj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $temp_obj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view comment]</a><br/> ' . $created_on . '<br/><br/><br/> <a class="mark_as_read" href="' . assemble_url('project_comment_fyi_read', array('project_id' => $temp_obj->getProjectId(), 'comment_id' => $temp_obj->getId())) . '">Mark this Notification<br/>as Read</a> </td> <td valign="top"> <div style="overflow:auto;">' . $comment_body . '</div>' . ($show_read_link ? '<a target="_blank" href="' . $temp_obj->getViewUrl() . '">Click here to read the rest of this Comment</a>' : '') . '</td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>';*/ //BOF:mod 20111019 #448 } else { $is_unvisited = $this->link_unvisited($temp_obj->getId()); if ($is_unvisited) { $fyi_comments_unvisited++; } /* $created_by_id = $parentobj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($parentobj->getCreatedOn()); $created_on = date('m-d-y', $created_on);*/ $comment_links .= '<a target="_blank" href="' . $parentobj->getViewUrl() . '" class="anc01' . (!$is_unvisited ? '_visited' : '') . '">#' . $count . '</a> '; /*$comment_info .= ' <tr ' . ($count%2==1 ? ' style="background-color:#ffffff;" ' : ' style="background-color:#eeeeee;" ') . '> <td valign="top"> Created by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $parentobj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $parentobj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view object]</a><br/> ' . $created_on . '<br/><br/><br/> <a class="mark_as_read" href="' . assemble_url('project_object_fyi_read', array('project_id' => $parentobj->getProjectId())) . '&object_id=' . $parentobj->getId() . '&project_id=' . $parentobj->getProjectId() . '">Mark this Notification<br/>as Read</a> </td> <td valign="top"> <div style="overflow:auto;">' . $parentobj->getFormattedBody(true, true) . '</div> </td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>';*/ } //EOF:mod 20111019 #448 } $content .= ' <tr> <td vlaign="top" class="comment_link" colspan="4"> <a target="_blank" href="' . $parentobj->getViewUrl() . '"> <span class="homepageobject">' . $parentobj->getName() . '</span> </a> ' . $comment_links . '<span id="fyi_' . $parentobj->getId() . '"><img id="icon_plus" src="' . ROOT_URL . '/assets/images/icons/icon_plus.png" hspace="0" vspace="0" border="0" style="cursor:pointer;" /></span> </td> </tr>'; /*<tr id="row_fyi_' . $parentobj->getId() . '" style="display:none;"> <td colspan="4"> <table width="100%"> <tr><td colspan="2" style="height:20px;"> </td></tr> <tr> <td style="width:250px;" valign="top">Ticket</td> <td valign="top"> <a target="_blank" href="' . $parentobj->getViewUrl() . '"><span class="homepageobject">' . $parentobj->getName() . '</span></a> </td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"> <a target="_blank" href="' . $projectobj->getOverviewUrl() . '"><span class="homepageobject">' . $projectobj->getName() . '</span></a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '"><span class="homepageobject">' . $milestoneobj->getName() . '</a></span>' : '--') . '</td> </tr> <tr> <td vlaign="top">Project Priority</td> <td valign="top">' . $priority . '</td> </tr> <tr> <td valign="top">Due on</td> <td valign="top">' . $dueon . '</td> </tr> <tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr> <tr><td colspan="2"> </td></tr>' . $comment_info . ' </table> </td> </tr>';*/ } } else { foreach ($info as $comment_id) { //BOF:mod 20111019 #448 $temp_obj = new ProjectObject($comment_id); $temp_type = $temp_obj->getType(); if ($temp_type == 'Comment') { //EOF:mod 20111019 #448 $obj = new Comment($comment_id); //BOF:mod 20111019 #448 $is_comment_obj = true; } else { $obj = new $temp_type($comment_id); $is_comment_obj = false; } //EOF:mod 20111019 #448 $is_unvisited = $this->link_unvisited($obj->getId()); if ($is_unvisited) { $fyi_comments_unvisited++; } $created_by_id = $obj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($obj->getCreatedOn()); $created_on = date('m-d-y', $created_on); $projectobj = new Project($obj->getProjectId()); $parenttype = $obj->getParentType(); //BOF:mod 20111019 #448 if ($is_comment_obj) { //EOF:mod 20111019 #448 $parentobj = new $parenttype($obj->getParentId()); //BOF:mod 20111019 #448 } else { $parentobj = $obj; } //EOF:mod 20111019 #448 $milestone_id = $parentobj->getMilestoneId(); if (!empty($milestone_id)) { $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $parentobj->getAssignmentData(); foreach ($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)) { $assigneesstring = substr($assigneesstring, 0, -2); } $dueon = date('F d, Y', strtotime($parentobj->getDueOn())); if ($dueon == 'January 01, 1970') { $dueon = '--'; } if ($milestoneobj) { $priority = $milestoneobj->getPriority(); if (!empty($priority) || $priority == '0') { $priority = $milestoneobj->getFormattedPriority(); } else { $priority = '--'; } } else { $priority = '--'; } $max_chars = 1000; $temp = $obj->getFormattedBody(true, true); $comment_body = $temp; /*$comment_body = trim(str_excerpt(smarty_modifier_html_excerpt($temp), $max_chars)); if (strlen($temp)>$max_chars){ $show_read_link = true; } else { $show_read_link = false; }*/ $content .= ' <tr> <td valign="top" width="150">Ticket</td> <td valign="top"> <a target="_blank" href="' . $parentobj->getViewUrl() . '">' . $parentobj->getName() . '</a> </td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"> <a target="_blank" href="' . $projectobj->getOverviewUrl() . '">' . $projectobj->getName() . '</a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '">' . $milestoneobj->getName() . '</a>' : '--') . '</td> </tr> <tr> <td valign="top">Project Priority</td> <td valign="top">' . $priority . '</td> </tr> <tr> <td valign="top">Due on</td> <td valign="top">' . $dueon . '</td> </tr>' . (!empty($assigneesstring) ? '<tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr>' : '<tr><td colpan="2"></td></tr>') . '<tr> <td valign="top">' . ($is_comment_obj ? 'Comment' : 'Created') . ' by<br/>' . $created_by_user->getName() . '<br/><br/><br/><a target="_blank" href="' . $obj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view ' . ($is_comment_obj ? 'comment' : 'object') . ']</a><br/>' . $created_on . '<br/><br/><br/><a class="mark_as_read" href="' . ($is_comment_obj ? assemble_url('project_comment_fyi_read', array('project_id' => $obj->getProjectId(), 'comment_id' => $obj->getId())) : assemble_url('project_object_fyi_read', array('project_id' => $obj->getProjectId())) . '&object_id=' . $obj->getId() . '&project_id=' . $obj->getProjectId()) . '">Mark this Notification<br/>as Read</a></td> <td valign="top" style="max-width:500px;"><div style="overflow:auto;">' . $obj->getBody() . '</div></td> </tr> <tr><td colspan="2" style="border-bottom:1px dotted #000000;"> </td></tr> <tr><td colspan="2"> </td></tr>'; } } unset($obj); unset($projectobj); unset($parentobj); unset($milestone_id); unset($milestoneobj); unset($assignees); unset($owner_id); } $action_request_content = ''; $action_request_comments_unvisited = 0; if ($action_request_info && is_array($action_request_info)) { if ($layout_type == 'summary') { foreach ($action_request_info as $ticket_id => $comments) { //BOF:mod 20111019 #448 if (!empty($comments[0])) { //EOF:mod 20111019 #448 $temp_obj = new Comment($comments[0]); $parenttype = $temp_obj->getParentType(); //BOF:mod 20111019 #448 } else { $temp_obj = new ProjectObject($ticket_id); $parenttype = $temp_obj->getType(); } //EOF:mod 20111019 #448 $parentobj = new $parenttype($ticket_id); /*$projectobj = new Project($parentobj->getProjectId()); $milestone_id = $parentobj->getMilestoneId(); if (!empty($milestone_id)){ $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $parentobj->getAssignmentData(); foreach($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)){ $assigneesstring = substr($assigneesstring, 0, -2); } $dueon = date('F d, Y', strtotime($parentobj->getDueOn())); if ($dueon=='January 01, 1970'){ $dueon = '--'; } if ($milestoneobj){ $priority = $milestoneobj->getPriority(); if (!empty($priority) || $priority=='0'){ $priority = $milestoneobj->getFormattedPriority(); } else { $priority = '--'; } } else { $priority = '--'; }*/ $comment_links = ''; //$comment_info = ''; $count = 0; //$max_chars = 1000; foreach ($comments as $comment_id) { $count++; //BOF:mod 20111019 #448 if (!empty($comment_id)) { //EOF:mod 20111019 #448 $temp_obj = new Comment($comment_id); $is_unvisited = $this->link_unvisited($temp_obj->getId()); if ($is_unvisited) { $action_request_comments_unvisited++; } /* $created_by_id = $temp_obj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($temp_obj->getCreatedOn()); $created_on = date('m-d-y', $created_on); $temp = $temp_obj->getFormattedBody(true, true); $comment_body = $temp; */ /*$comment_body = trim(str_excerpt(smarty_modifier_html_excerpt($temp), $max_chars)); if (strlen($temp)>$max_chars){ $show_read_link = true; } else { $show_read_link = false; }*/ $comment_links .= '<a target="_blank" href="' . $temp_obj->getViewUrl() . '" class="anc01' . (!$is_unvisited ? '_visited' : '') . '">#' . $count . '</a> '; /*$comment_info .= ' <tr ' . ($count%2==1 ? ' style="background-color:#ffffff;" ' : ' style="background-color:#eeeeee;" ') . '> <td valign="top"> Comment by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $temp_obj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $temp_obj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view comment]</a><br/> ' . $created_on . '<br/><br/><br/> <a class="mark_as_complete" href="' . assemble_url('project_comment_action_request_completed', array('project_id' => $temp_obj->getProjectId(), 'comment_id' => $temp_obj->getId())) . '">Mark Action Request Complete</a> </td> <td valign="top"> <div style="overflow:auto;">' . $comment_body . '</div> </td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>';*/ //BOF:mod 20111019 #448 } else { $is_unvisited = $this->link_unvisited($temp_obj->getId()); if ($is_unvisited) { $action_request_comments_unvisited++; } /*$created_by_id = $parentobj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($parentobj->getCreatedOn()); $created_on = date('m-d-y', $created_on);*/ $comment_links .= '<a target="_blank" href="' . $parentobj->getViewUrl() . '" class="anc01' . (!$is_unvisited ? '_visited' : '') . '">#' . $count . '</a> '; /*$comment_info .= ' <tr ' . ($count%2==1 ? ' style="background-color:#ffffff;" ' : ' style="background-color:#eeeeee;" ') . '> <td valign="top"> Created by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $parentobj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $parentobj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view object]</a><br/> ' . $created_on . '<br/><br/><br/> <a class="mark_as_complete" href="' . assemble_url('project_object_action_request_completed', array('project_id' => $parentobj->getProjectId())) . '&object_id=' . $parentobj->getId() . '&project_id=' . $parentobj->getProjectId() . '">Mark Action Request Complete</a> </td> <td valign="top"> <div style="overflow:auto;">' . $parentobj->getFormattedBody(true, true) . '</div>' . ($show_read_link ? '<a target="_blank" href="' . $temp_obj->getViewUrl() . '">Click here to read the rest of this Comment</a>' : '') . '</td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>';*/ } //EOF:mod 20111019 #448 } $action_request_content .= ' <tr> <td vlaign="top" class="comment_link" colspan="4"> <a target="_blank" href="' . $parentobj->getViewUrl() . '"> <span class="homepageobject">' . $parentobj->getName() . '</span> </a> ' . $comment_links . '<span id="action_' . $parentobj->getId() . '"><img id="icon_plus" src="' . ROOT_URL . '/assets/images/icons/icon_plus.png" hspace="0" vspace="0" border="0" style="cursor:pointer;" /></span> </td> </tr>'; /*<tr id="row_action_' . $parentobj->getId() . '" style="display:none;"> <td colspan="4"> <table width="100%"> <tr><td colspan="2" style="height:20px;"> </td></tr> <tr> <td style="width:250px;" valign="top">Ticket</td> <td valign="top"> <a target="_blank" href="' . $parentobj->getViewUrl() . '"><span class="homepageobject">' . $parentobj->getName() . '</span></a> </td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"> <a target="_blank" href="' . $projectobj->getOverviewUrl() . '"><span class="homepageobject">' . $projectobj->getName() . '</span></a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '"><span class="homepageobject">' . $milestoneobj->getName() . '</a></span>' : '--') . '</td> </tr> <tr> <td vlaign="top">Project Priority</td> <td valign="top">' . $priority . '</td> </tr> <tr> <td valign="top">Due on</td> <td valign="top">' . $dueon . '</td> </tr> <tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr> <tr><td colspan="2"> </td></tr>' . $comment_info . ' </table> </td> </tr>';*/ } } else { foreach ($action_request_info as $comment) { //BOF:mod 20111019 #448 $temp_obj = new ProjectObject($comment); $temp_type = $temp_obj->getType(); if ($temp_type == 'Comment') { //EOF:mod 20111019 #448 $obj = new Comment($comment); //BOF:mod 20111019 #448 $is_comment_obj = true; } else { $obj = new $temp_type($comment); $is_comment_obj = false; } //EOF:mod 20111019 #448 $is_unvisited = $this->link_unvisited($obj->getId()); if ($is_unvisited) { $action_request_comments_unvisited++; } $created_by_id = $obj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($obj->getCreatedOn()); $created_on = date('m-d-y', $created_on); $projectobj = new Project($obj->getProjectId()); $parenttype = $obj->getParentType(); //BOF:mod 20111019 #448 if ($is_comment_obj) { //EOF:mod 20111019 #448 $parentobj = new $parenttype($obj->getParentId()); //BOF:mod 20111019 #448 } else { $parentobj = $obj; } //EOF:mod 20111019 #448 $milestone_id = $parentobj->getMilestoneId(); if (!empty($milestone_id)) { $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $parentobj->getAssignmentData(); foreach ($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)) { $assigneesstring = substr($assigneesstring, 0, -2); } $dueon = date('F d, Y', strtotime($parentobj->getDueOn())); if ($dueon == 'January 01, 1970') { $dueon = '--'; } if ($milestoneobj) { $priority = $milestoneobj->getPriority(); if (!empty($priority) || $priority == '0') { $priority = $milestoneobj->getFormattedPriority(); } else { $priority = '--'; } } else { $priority = '--'; } $max_chars = 1000; $temp = $obj->getFormattedBody(true, true); $comment_body = $temp; /*$comment_body = trim(str_excerpt(smarty_modifier_html_excerpt($temp), $max_chars)); if (strlen($temp)>$max_chars){ $show_read_link = true; } else { $show_read_link = false; }*/ $action_request_content .= ' <tr> <td valign="top" width="150">Ticket</td> <td valign="top"> <a target="_blank" href="' . $parentobj->getViewUrl() . '">' . $parentobj->getName() . '</a> </td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"><a target="_blank" href="' . $projectobj->getOverviewUrl() . '">' . $projectobj->getName() . '</a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '">' . $milestoneobj->getName() . '</a>' : '--') . '</td> </tr> <tr> <td valign="top">Project Priority</td> <td valign="top">' . $priority . '</td> </tr> <tr> <td valign="top">Due on</td> <td valign="top">' . $dueon . '</td> </tr>' . (!empty($assigneesstring) ? '<tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr>' : '<tr><td colspan="2"></td></tr>') . '<tr> <td valign="top">' . ($is_comment_obj ? 'Comment' : 'Created') . ' by<br/>' . $created_by_user->getName() . '<br/><br/><br/><a target="_blank" href="' . $obj->getViewUrl() . '" class="anc02' . (!$is_unvisited ? '_visited' : '') . '">[view ' . ($is_comment_obj ? 'comment' : 'object') . ']</a><br/>' . $created_on . '<br/><br/><br/><a class="mark_as_complete" href="' . ($is_comment_obj ? assemble_url('project_comment_action_request_completed', array('project_id' => $obj->getProjectId(), 'comment_id' => $obj->getId())) : assemble_url('project_object_action_request_completed', array('project_id' => $obj->getProjectId())) . '&object_id=' . $obj->getId() . '&project_id=' . $obj->getProjectId()) . '">Mark Action Request Complete</a></td> <td valign="top" style="max-width:500px;"><div style="overflow:auto;">' . $obj->getBody() . '</div></td> </tr> <tr><td colspan="2" style="border-bottom:1px dotted #000000;"> </td></tr> <tr><td colspan="2"> </td></tr>'; } } unset($obj); unset($projectobj); unset($parentobj); unset($milestone_id); unset($milestoneobj); unset($assignees); unset($owner_id); } $completed_objects_content = ''; if ($completed_objects && is_array($completed_objects)) { foreach ($completed_objects[(string) $userid] as $entry) { $obj = new Ticket($entry['ticket_id']); $projectobj = new Project($obj->getProjectId()); $milestone_id = $obj->getMilestoneId(); if (!empty($milestone_id)) { $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $obj->getAssignmentData(); foreach ($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)) { $assigneesstring = substr($assigneesstring, 0, -2); } $completedon = date('F d, Y', strtotime($obj->getCompletedOn())); if (!empty($entry['last_comment_id'])) { $commentobj = new Comment($entry['last_comment_id']); $last_comment_body = '<br>' . $commentobj->getBody(); unset($commentobj); } else { $last_comment_body = '<br>None'; } $completed_objects_content .= ' <tr> <td valign="top" width="150">' . $obj->getType() . '</td> <td valign="top"><a target="_blank" href="' . $obj->getViewUrl() . '"><span class="homepageobject">' . $obj->getName() . '</span></a></td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"><a target="_blank" href="' . $projectobj->getOverviewUrl() . '"><span class="homepageobject">' . $projectobj->getName() . '</span></a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '"><span class="homepageobject">' . $milestoneobj->getName() . '</span></a>' : '--') . '</td> </tr> <tr> <td valign="top">Completed on</td> <td valign="top">' . $completedon . '</td> </tr>' . (!empty($assigneesstring) ? '<tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr>' : '') . '<tr> <td valign="top"> </td> <td valign="top" style="max-width:500px;"><div style="overflow:auto;">' . $obj->getBody() . '</div></td> </tr> <tr><td colspan="2"> </td></tr> <tr> <td valign="top"> </td> <td valign="top"><b>Last comment associated with the ticket:</b><br>' . $last_comment_body . '</td> </tr> <tr><td colspan="2" style="border-bottom:1px dotted #000000;"> </td></tr> <tr><td colspan="2"> </td></tr>'; unset($obj); unset($projectobj); unset($milestone_id); unset($milestoneobj); unset($assignees); unset($owner_id); } } $fyi_updates_content = ''; if ($fyi_updates && is_array($fyi_updates)) { foreach ($fyi_updates[(string) $userid] as $object_id) { $baseobj = new ProjectObject($object_id); $type = $baseobj->getType(); switch ($baseobj->getType()) { case 'Page': $obj = new Page($object_id); break; } if ($obj) { $projectobj = new Project($obj->getProjectId()); $milestone_id = $obj->getMilestoneId(); if (!empty($milestone_id)) { $milestoneobj = new Milestone($milestone_id); } $subscribers = $obj->getSubscribers(); foreach ($subscribers as $subscriber) { $subscriberstring .= '<a target="_blank" href="' . $subscriber->getViewUrl() . '">' . $subscriber->getName() . '</a>, '; } if (!empty($subscriberstring)) { $subscriberstring = substr($subscriberstring, 0, -2); } $fyi_updates_content .= ' <tr> <td valign="top" width="150">' . $obj->getType() . '</td> <td valign="top"><a target="_blank" href="' . $obj->getViewUrl() . '"><span class="homepageobject">' . $obj->getName() . '</span></a></td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"><a target="_blank" href="' . $projectobj->getOverviewUrl() . '"><span class="homepageobject">' . $projectobj->getName() . '</span></a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '"><span class="homepageobject">' . $milestoneobj->getName() . '</span></a>' : '--') . '</td> </tr>' . (!empty($subscriberstring) ? '<tr> <td valign="top">Subscribers</td> <td valign="top">' . $subscriberstring . '</td> </tr>' : '') . '<tr> <td valign="top"> </td> <td valign="top" style="max-width:500px;"><div style="overflow:auto;">' . $obj->getBody() . '</div></td> </tr> <tr><td colspan="2" style="border-bottom:1px dotted #000000;"> </td></tr> <tr><td colspan="2"> </td></tr>'; } unset($obj); unset($projectobj); unset($milestoneobj); } } $home_tab_content = ''; if (!empty($tickets_due_content)) { $home_tab_content .= $tickets_due_table_start . $tickets_due_content . $tickets_due_table_end . '<br/><br/>'; $goto_links .= '<a href="#tickets_due">Go to Due Tickets & Tasks</a><br/>'; } if (!empty($action_request_content)) { $home_tab_content .= $action_request_table_start . $action_request_content . $action_request_table_end . '<br/><br/>'; $goto_links .= '<a href="#action_request">Go to Action Request Comment(s)</a><br/>'; } if (!empty($content)) { $home_tab_content .= $fyi_table_start . $content . $fyi_table_end . '<br/><br/>'; $goto_links .= '<a href="#fyi">Go to FYI Comment(s)</a><br/>'; } if (!empty($fyi_updates_content)) { $home_tab_content .= $fyi_updates_table_start . $fyi_updates_content . $fyi_updates_table_end . '<br/><br/>'; } if (!empty($completed_objects_content)) { $home_tab_content .= $completed_objects_table_start . $completed_objects_content . $completed_objects_table_end; $goto_links .= '<a href="#closed_tickets">Go to Closed Ticket(s)</a><br/>'; } if (!empty($goto_links)) { $goto_links .= '<br/><br/>'; } $goto_links .= '<input type="hidden" id="unvisited_fyi_comments" value="' . $fyi_comments_unvisited . '" /> <input type="hidden" id="unvisited_action_request_comments" value="' . $action_request_comments_unvisited . '" /> <input type="hidden" id="user_id" value="' . $user_id . '" />'; $css = ' <style>' . '/*td a.icon {padding:0px 6px 6px 0px;background-image:url("assets/images/icons/icon_comment.png"); background-repeat:no-repeat;background-position:0px 0px;}*/ /*td a.anc01:visited, td a.anc02:visited {color:#FF00FF;}*/ td a.anc01_visited, td a.anc02_visited {color:#FF00FF;} body {} span.homepageobject {} table tr {line-height:1.5;}: </style>'; /*<script type="text/javascript"> function toggle_details(imgref, type, id){ try{ //$("tr[id^=\'row_action_\']").css("display", "none"); //$("tr[id^=\'row_fyi_\']").css("display", "none"); var src = $(imgref).attr("src"); if (src.indexOf("icon_plus.png")!=-1){ $("tr#row_" + type + "_" + id).css("display", ""); $(imgref).attr("src", src.replace(/icon_plus.png/, "icon_minus.png")); } else { $("tr#row_" + type + "_" + id).css("display", "none"); $(imgref).attr("src", src.replace(/icon_minus.png/, "icon_plus.png")); } } catch(e){ alert(e); } } </script>';*/ $home_tab_content = $css . $top_message . '<br/><br/>' . $goto_links . $home_tab_content; mysql_close($link); return $home_tab_content; }
/** * Executes commentCreate action * * @param sfRequest $request A request object */ public function executeCommentCreate(sfWebRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $paragraphId = $this->getRoute()->getObject()->getId(); $comment = new Comment(); $comment->setIdParagraph($paragraphId); $comment->save(); if (!$comment->getId()) { // action on error exit; } $this->form = new ArticleCommentForm($comment); $this->setTemplate('comment'); }
/** * Return # of specific object * * @param Comment $comment * @return integer */ function getCommentNum(Comment $comment) { $comments = $this->getComments(); if (is_array($comments)) { $counter = 0; foreach ($comments as $object_comment) { $counter++; if ($comment->getId() == $object_comment->getId()) { return $counter; } // if } // foreach } // if return 0; }
/** * Summary of commentEdited * @param Comment $comment */ public static function commentEdited(Comment $comment) { self::send("Comment {$comment->getId()} on request {$comment->getRequest()} ({$comment->getRequestObject()->getName()}) edited by " . User::getCurrent()->getUsername()); }
/** * This event is triggered when comment that belongs to this object is deleted * * @param Comment $comment * @return boolean */ function onDeleteComment(Comment $comment) { if ($this->isSearchable()) { SearchableObjects::dropContentByObjectColumn($this, 'comment' . $comment->getId()); } }
function render_comments() { $response = '<table width="100%" style="border:5px solid #dddddd;">'; $user_id = $this->request->get('user_id'); if (empty($user_id)) { $user_id = $this->request->post('user_id'); if (empty($user_id)) { $user_id = $this->logged_user->getId(); } } $action_type = $_GET['action_type']; $parent_id = $_GET['parent_id']; $temp_obj = new ProjectObject($parent_id); $parenttype = $temp_obj->getType(); $parentobj = new $parenttype($parent_id); $projectobj = new Project($parentobj->getProjectId()); $milestone_id = $parentobj->getMilestoneId(); if (!empty($milestone_id)) { $milestoneobj = new Milestone($milestone_id); } $assigneesstring = ''; list($assignees, $owner_id) = $parentobj->getAssignmentData(); foreach ($assignees as $assignee) { $assigneeobj = new User($assignee); $assigneesstring .= '<a target="_blank" href="' . $assigneeobj->getViewUrl() . '">' . $assigneeobj->getName() . '</a>, '; unset($assigneeobj); } if (!empty($assigneesstring)) { $assigneesstring = substr($assigneesstring, 0, -2); } $dueon = date('F d, Y', strtotime($parentobj->getDueOn())); if ($dueon == 'January 01, 1970') { $dueon = '--'; } if ($milestoneobj) { $priority = $milestoneobj->getPriority(); if (!empty($priority) || $priority == '0') { $priority = $milestoneobj->getFormattedPriority(); } else { $priority = '--'; } } else { $priority = '--'; } $response .= ' <tr><td colspan="2" style="height:20px;"> </td></tr> <tr> <td style="width:25%;" valign="top">' . $parenttype . '</td> <td valign="top"> <a target="_blank" href="' . $parentobj->getViewUrl() . '"><span class="homepageobject">' . $parentobj->getName() . '</span></a> </td> </tr> <tr> <td valign="top">Team » Project</td> <td valign="top"> <a target="_blank" href="' . $projectobj->getOverviewUrl() . '"><span class="homepageobject">' . $projectobj->getName() . '</span></a> » ' . ($milestoneobj ? '<a target="_blank" href="' . $milestoneobj->getViewUrl() . '"><span class="homepageobject">' . $milestoneobj->getName() . '</a></span>' : '--') . '</td> </tr> <tr> <td vlaign="top">Project Priority</td> <td valign="top">' . $priority . '</td> </tr> <tr> <td valign="top">Due on</td> <td valign="top">' . $dueon . '</td> </tr> <tr> <td valign="top">Assignees</td> <td valign="top">' . $assigneesstring . '</td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>'; $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME, $link); if ($action_type == 'actionrequest') { $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_action_request a\n inner join healingcrystals_project_objects b on a.comment_id=b.id\n inner join healingcrystals_project_objects d on b.parent_id=d.id\n left outer join healingcrystals_project_objects e on d.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where d.id='" . $parent_id . "' and b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_action_request='1'\n and d.state='" . STATE_VISIBLE . "' )\n union\n (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_flag_fyi_actionrequest a\n inner join healingcrystals_project_objects b on a.object_id=b.id\n left outer join healingcrystals_project_objects e on b.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where a.user_id='" . $user_id . "' and a.object_id='" . $parent_id . "' and flag_actionrequest='1' and b.state='" . STATE_VISIBLE . "'\n )\n order by prio desc, project_name, date_value desc"; } elseif ($action_type == 'fyi') { $query = "(select b.id, d.id as parent_ref , a.date_added as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_action_request a\n inner join healingcrystals_project_objects b on a.comment_id=b.id\n inner join healingcrystals_project_objects d on b.parent_id=d.id\n left outer join healingcrystals_project_objects e on d.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where d.id='" . $parent_id . "' and b.state='" . STATE_VISIBLE . "' and a.user_id='" . $user_id . "' and a.is_fyi='1'\n and d.state='" . STATE_VISIBLE . "' )\n union\n (select '' as id, a.object_id as parent_ref, b.created_on as date_value, e.priority as prio, c.name as project_name\n from healingcrystals_assignments_flag_fyi_actionrequest a\n inner join healingcrystals_project_objects b on a.object_id=b.id\n left outer join healingcrystals_project_objects e on b.milestone_id=e.id\n inner join healingcrystals_projects c on b.project_id=c.id\n where a.user_id='" . $user_id . "' and a.object_id='" . $parent_id . "' and flag_fyi='1' and b.state='" . STATE_VISIBLE . "'\n )\n order by prio desc, project_name, date_value desc"; } $result = mysql_query($query); $count = 0; while ($entry = mysql_fetch_assoc($result)) { $count++; if (!empty($entry['id'])) { $temp_obj = new Comment($entry['id']); $created_by_id = $temp_obj->getCreatedById(); $created_by_user = new User($created_by_id); $created_on = strtotime($temp_obj->getCreatedOn()); $created_on = date('m-d-y', $created_on); $temp = $temp_obj->getFormattedBody(true, true); $comment_body = $temp; $response .= ' <tr> <td valign="top" style="vertical-align:top;"> Comment by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $temp_obj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $temp_obj->getViewUrl() . '">[view comment]</a><br/> ' . $created_on . '<br/><br/><br/>' . ($action_type == 'actionrequest' ? '<a class="mark_as_complete" count="' . $count . '" href="' . assemble_url('project_comment_action_request_completed', array('project_id' => $temp_obj->getProjectId(), 'comment_id' => $temp_obj->getId())) . '">Mark Action Request Complete</a>' : '') . ($action_type == 'fyi' ? '<a class="mark_as_read" count="' . $count . '" href="' . assemble_url('project_comment_fyi_read', array('project_id' => $temp_obj->getProjectId(), 'comment_id' => $temp_obj->getId())) . '">Mark this Notification<br/>as Read</a>' : '') . '</td> <td valign="top" style="vertical-align:top;"> <div style="width:600px;overflow:auto;">' . $comment_body . '</div>' . ($show_read_link ? '<a target="_blank" href="' . $temp_obj->getViewUrl() . '">Click here to read the rest of this Comment</a>' : '') . '</td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>'; } else { $response .= ' <tr> <td valign="top" style="vertical-align:top;"> Created by<br/>' . (!empty($created_by_id) ? '<a target="_blank" href="' . $created_by_user->getViewUrl() . '">' . $created_by_user->getName() . '</a>' : $parentobj->getCreatedByName()) . '<br/><br/><br/> <a target="_blank" href="' . $parentobj->getViewUrl() . '">[view object]</a><br/> ' . $created_on . '<br/><br/><br/>' . ($action_type == 'action_request' ? '<a class="mark_as_complete" count="' . $count . '" href="' . assemble_url('project_object_action_request_completed', array('project_id' => $parentobj->getProjectId())) . '&object_id=' . $parentobj->getId() . '&project_id=' . $parentobj->getProjectId() . '">Mark Action Request Complete</a>' : '') . ($action_type == 'fyi' ? '<a class="mark_as_read" count="' . $count . '" href="' . assemble_url('project_object_fyi_read', array('project_id' => $parentobj->getProjectId())) . '&object_id=' . $parentobj->getId() . '&project_id=' . $parentobj->getProjectId() . '">Mark this Notification<br/>as Read</a>' : '') . '</td> <td valign="top" style="vertical-align:top;"> <div style="width:600px;overflow:auto;">' . $parentobj->getFormattedBody(true, true) . '</div> </td> </tr> <tr><td colspan="2" style="height:20px;"> </td></tr>'; } } mysql_close($link); $response .= '</table>'; $this->smarty->assign('response', $response); }
/** * Summary of commentEdited * @param Comment $comment */ public static function commentEdited(Comment $comment) { $req = $comment->getRequestObject(); $username = User::getCurrent()->getUsername(); self::send("Comment {$comment->getId()} on request {$req->getId()} ({$req->getName()}) edited by {$username}"); }