public function __toString() { global $PH; $news = $this->project->getTasks(array('is_news' => 1, 'order_by' => 'created DESC')); if (!$news) { return ''; } #--- news ----------------------------------------------------------- $this->render_blockStart(); $count = 0; foreach ($news as $n) { if ($count++ >= $this->max_news) { break; } echo "<div class='post_list_entry'>"; if ($creator = Person::getVisibleById($n->created_by)) { $link_creator = ' by ' . $creator->getLink(); } else { $link_creator = ''; } echo "<h3>" . asHtml($n->name) . "</h3>"; echo "<p class= details>"; echo sprintf(__("%s by %s", "time ago by nickname"), renderTimeAgo($n->created), asHtml($creator->nickname)); if ($comments = $n->getComments()) { echo " / "; echo $PH->getLink('taskViewAsDocu', sprintf(__("%s comments"), count($comments)), array('tsk' => $n->id)); } echo " / "; echo $PH->getLink("commentNew", __("Add comment"), array('parent_task' => $n->id)); echo "</p>"; echo wikifieldAsHtml($n, 'description'); echo "</div>"; } $this->render_blockEnd(); return ''; }
/** * writes a changeline as html * * */ function printChangeLine($c) { global $PH; global $auth; if ($c->person_by == $auth->cur_user->id) { $changed_by_current_user = true; } else { $changed_by_current_user = false; } if ($c->item->type == ITEM_TASK) { if ($changed_by_current_user) { echo '<li class=by_cur_user>'; } else { echo '<li>'; } echo $c->item->getLink(false); } elseif ($c->item->type == ITEM_FILE) { echo '<li>' . $PH->getLink('fileView', $c->item->name, array('file' => $c->item->id)); } else { trigger_error('printChangeLine() for unknown item item', E_USER_WARNING); return; } /** * remarks on new, updated or item that require feedback */ if ($c->item) { if ($c->item->isFeedbackRequestedForUser()) { echo '<span class=new> (' . __('Needs feedback') . ') </span>'; } elseif ($new = $c->item->isChangedForUser()) { if ($new == 1) { echo '<span class=new> (' . __('New') . ') </span>'; } else { echo '<span class=new> (' . __('Updated') . ') </span>'; } } } echo "<span class=sub>{$c->txt_what}"; if ($person = Person::getVisibleById($c->person_by)) { echo ' ' . __('by') . ' <span class=person>' . asHtml($person->name) . "</span>"; } echo ' ' . renderTimeAgo($c->timestamp); echo "</span>"; echo '</li>'; return; }
public function __toString() { global $PH; global $auth; #--- news ----------------------------------------------------------- $comments = $this->item_with_comments->getComments(array('order_by' => 'created')); $block = new PageBlock(array('title' => sprintf(__("%s Comments"), count($comments) ? count($comments) : __("No", "As in... >No< Comments")), 'id' => 'news')); $block->render_blockStart(); $count = 0; foreach ($comments as $c) { ### own comment $is_comment_editable = $auth->cur_user->user_rights & RIGHT_EDITALL || $c->created_by == $auth->cur_user->id; if (!($creator = Person::getVisibleById($c->created_by))) { continue; } echo "<div class='post_list_entry'>"; echo "<h3>"; if ($c->created_by == $auth->cur_user->id) { echo $creator->nickname; } else { echo $creator->getLink(); } echo "<span class=separator>:</span>"; echo asHtml($c->name); if ($new = $c->isChangedForUser()) { if ($new == 1) { echo '<span class=new> (' . __('New') . ') </span>'; } else { echo '<span class=new> (' . __('Updated') . ') </span>'; } } echo "</h3>"; echo "<p class= details>"; echo renderTimeAgo($c->created); require_once confGet('DIR_STREBER') . "db/db_itemchange.inc.php"; $versions = ItemVersion::getFromItem($c); if (count($versions) > 1) { echo " (" . $PH->getLink('itemViewDiff', sprintf(__("%s. update", "like in... Nth update"), count($versions)), array('item' => $c->id)); echo " " . renderTimeAgo($c->modified); echo ") "; } if ($c->pub_level != PUB_LEVEL_OPEN) { echo ' - ' . sprintf(__("visible as %s"), renderPubLevelName($c->pub_level)); ### publish ### if (($parent_task = Task::getEditableById($c->task)) && $c->pub_level < PUB_LEVEL_OPEN) { echo " - " . $PH->getLink('itemsSetPubLevel', __('Publish'), array('item' => $c->id, 'item_pub_level' => PUB_LEVEL_OPEN)); } } ### delete if ($is_comment_editable) { echo " - " . $PH->getLink('commentsDelete', __('Delete'), array('comment' => $c->id)); } echo "</p>"; if ($is_comment_editable) { echo wikifieldAsHtml($c, 'description'); } else { echo wikifieldAsHtml($c, 'description', array('editable' => false)); } echo "</div>"; $c->nowViewedByUser(); } $this->render_blockEnd(); return ''; }
function render_tr(&$pp, $style = "") { if ($person = $pp->getPerson()) { print "<td class='small nobreak'>" . renderTimeAgo($person->last_login) . "</td>"; } }
function render_tr(&$obj, $style = "") { global $auth; if (!isset($obj) || !is_object($obj)) { trigger_error("ListBlockColDate->render_tr() called without valid object", E_USER_WARNING); return; } $key = $this->key; $value_str = renderTimeAgo($obj->{$key}); print "<td class='nowrap'>{$value_str}</td>"; }