本文整理汇总了PHP中Planning::getState方法的典型用法代码示例。如果您正苦于以下问题:PHP Planning::getState方法的具体用法?PHP Planning::getState怎么用?PHP Planning::getState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Planning
的用法示例。
在下文中一共展示了Planning::getState方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pdfForTicket
static function pdfForTicket(PluginPdfSimplePDF $pdf, Ticket $job, $private)
{
global $CFG_GLPI, $DB;
$ID = $job->getField('id');
//////////////Tasks///////////
$RESTRICT = "";
if (!$private) {
// Don't show private'
$RESTRICT = " AND `is_private` = '0' ";
} else {
if (!Session::haveRight("show_full_ticket", "1")) {
// No right, only show connected user private one
$RESTRICT = " AND (`is_private` = '0'\n OR `users_id` ='" . Session::getLoginUserID() . "' ) ";
}
}
$query = "SELECT *\n FROM `glpi_tickettasks`\n WHERE `tickets_id` = '{$ID}'\n {$RESTRICT}\n ORDER BY `date` DESC";
$result = $DB->query($query);
if (!$DB->numrows($result)) {
$pdf->setColumnsSize(100);
$pdf->displayLine(__('No task found.'));
} else {
$pdf->displayTitle("<b>" . TicketTask::getTypeName($DB->numrows($result) . "</b>"));
$pdf->setColumnsSize(20, 20, 20, 20, 20);
$pdf->displayTitle("<b><i>" . __('Type') . "</i></b>", "<b><i>" . __('Date') . "</i></b>", "<b><i>" . __('Duration') . "</i></b>", "<b><i>" . __('Writer') . "</i></b>", "<b><i>" . __('Planning') . "</i></b>");
while ($data = $DB->fetch_array($result)) {
$actiontime = Html::timestampToString($data['actiontime'], false);
$planification = '';
if (empty($data['begin'])) {
if (isset($data["state"])) {
$planification = Planning::getState($data["state"]) . "<br>";
}
$planification .= _e('None');
} else {
if (isset($data["state"])) {
$planification = sprintf(__('%1$s: %2$s'), _x('item', 'State'), Planning::getState($data["state"]));
}
$planificiation = sprintf(__('%1$s - %2$s'), $planification, Html::convDateTime($data["begin"]) . " -> " . Html::convDateTime($data["end"]));
$planificiation = sprintf(__('%1$s - %2$s'), $planification, sprintf(__('%1$s %2$s'), __('By'), getUserName($data["users_id_tech"])));
}
if ($data['taskcategories_id']) {
$lib = Dropdown::getDropdownName('glpi_taskcategories', $data['taskcategories_id']);
} else {
$lib = '';
}
if ($data['is_private']) {
$lib = sprintf(__('%1$s (%2$s)'), $lib, __('Private'));
}
toolbox::logdebug("lib", $data);
$pdf->displayLine(Html::clean($lib), Html::convDateTime($data["date"]), Html::timestampToString($data["actiontime"], 0), Html::clean(getUserName($data["users_id"])), Html::clean($planification), 1);
$pdf->displayText("<b><i>" . sprintf(__('%1$s: %2$s'), __('Description') . "</i></b>", Html::clean($data["content"]), 1));
}
}
$pdf->displaySpace();
}
示例2: displayPlanningItem
/**
* Display a Planning Item
*
* @param $val array of the item to display
* @param $who ID of the user (0 if all)
* @param $type position of the item in the time block (in, through, begin or end)
* (default '')
* @param $complete complete display (more details) (default 0)
*
* @return Nothing (display function)
**/
static function displayPlanningItem(array $val, $who, $type = "", $complete = 0)
{
global $CFG_GLPI;
$rand = mt_rand();
$users_id = "";
// show users_id reminder
$img = "rdv_private.png";
// default icon for reminder
if ($val["users_id"] != Session::getLoginUserID()) {
$users_id = "<br>" . sprintf(__('%1$s: %2$s'), __('By'), getUserName($val["users_id"]));
$img = "rdv_public.png";
}
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/" . $img . "' alt='' title=\"" . self::getTypeName(1) . "\"> ";
echo "<a id='reminder_" . $val["reminders_id"] . $rand . "' href='" . $CFG_GLPI["root_doc"] . "/front/reminder.form.php?id=" . $val["reminders_id"] . "'>";
switch ($type) {
case "in":
//TRANS: %1$s is the start time of a planned item, %2$s is the end
$beginend = sprintf(__('From %1$s to %2$s'), date("H:i", strtotime($val["begin"])), date("H:i", strtotime($val["end"])));
printf(__('%1$s: %2$s'), $beginend, Html::resume_text($val["name"], 80));
break;
case "through":
echo Html::resume_text($val["name"], 80);
break;
case "begin":
$start = sprintf(__('Start at %s'), date("H:i", strtotime($val["begin"])));
printf(__('%1$s: %2$s'), $start, Html::resume_text($val["name"], 80));
break;
case "end":
$end = sprintf(__('End at %s'), date("H:i", strtotime($val["end"])));
printf(__('%1$s: %2$s'), $end, Html::resume_text($val["name"], 80));
break;
}
echo $users_id;
echo "</a>";
$recall = '';
if (isset($val['reminders_id'])) {
$pr = new PlanningRecall();
if ($pr->getFromDBForItemAndUser($val['itemtype'], $val['reminders_id'], Session::getLoginUserID())) {
$recall = "<br><span class='b'>" . sprintf(__('Recall on %s'), Html::convDateTime($pr->fields['when'])) . "<span>";
}
}
if ($complete) {
echo "<br><span class='b'>" . Planning::getState($val["state"]) . "</span><br>";
echo $val["text"] . $recall;
} else {
Html::showToolTip("<span class='b'>" . Planning::getState($val["state"]) . "</span><br>\n " . $val["text"] . $recall, array('applyto' => "reminder_" . $val["reminders_id"] . $rand));
}
echo "";
}
示例3: showForm
//.........这里部分代码省略.........
}
if ($this->maybePrivate()) {
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Private') . "</td>";
echo "<td>";
Dropdown::showYesNo('is_private', $this->fields["is_private"]);
echo "</td>";
echo "</tr>";
}
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Duration') . "</td><td>";
$toadd = array();
for ($i = 9; $i <= 100; $i++) {
$toadd[] = $i * HOUR_TIMESTAMP;
}
Dropdown::showTimeStamp("actiontime", array('min' => 0, 'max' => 8 * HOUR_TIMESTAMP, 'value' => $this->fields["actiontime"], 'rand' => $rand_time, 'addfirstminutes' => true, 'inhours' => true, 'toadd' => $toadd));
echo "</td></tr>\n";
if ($ID <= 0) {
Document_Item::showSimpleAddForItem($item);
}
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('By') . "</td>";
echo "<td colspan='2'>";
echo Html::image($CFG_GLPI['root_doc'] . "/pics/user.png") . " ";
echo _n('User', 'Users', 1);
$rand_user = mt_rand();
$params = array('name' => "users_id_tech", 'value' => $ID > -1 ? $this->fields["users_id_tech"] : Session::getLoginUserID(), 'right' => "own_ticket", 'rand' => $rand_user, 'entity' => $item->fields["entities_id"], 'width' => '');
$params['toupdate'] = array('value_fieldname' => 'users_id', 'to_update' => "user_available{$rand_user}", 'url' => $CFG_GLPI["root_doc"] . "/ajax/planningcheck.php");
User::dropdown($params);
echo " <a href='#' onClick=\"" . Html::jsGetElementbyID('planningcheck' . $rand) . ".dialog('open');\">";
echo " <img src='" . $CFG_GLPI["root_doc"] . "/pics/reservation-3.png'\n title=\"" . __s('Availability') . "\" alt=\"" . __s('Availability') . "\"\n class='calendrier'>";
echo "</a>";
Ajax::createIframeModalWindow('planningcheck' . $rand, $CFG_GLPI["root_doc"] . "/front/planning.php?checkavailability=checkavailability" . "&itemtype=" . $item->getType() . "&{$fkfield}=" . $item->getID(), array('title' => __('Availability')));
echo "<br />";
echo Html::image($CFG_GLPI['root_doc'] . "/pics/group.png") . " ";
echo _n('Group', 'Groups', 1) . " ";
$rand_group = mt_rand();
$params = array('name' => "groups_id_tech", 'value' => $ID > -1 ? $this->fields["groups_id_tech"] : Dropdown::EMPTY_VALUE, 'condition' => "is_task", 'rand' => $rand_group, 'entity' => $item->fields["entities_id"]);
$params['toupdate'] = array('value_fieldname' => 'users_id', 'to_update' => "group_available{$rand_group}", 'url' => $CFG_GLPI["root_doc"] . "/ajax/planningcheck.php");
Group::dropdown($params);
echo "</td>\n";
echo "<td>";
if ($canplan) {
echo __('Planning');
}
if (!empty($this->fields["begin"])) {
if (Session::haveRight('planning', Planning::READMY)) {
echo "<script type='text/javascript' >\n";
echo "function showPlan" . $ID . $rand_text . "() {\n";
echo Html::jsHide("plan{$rand_text}");
$params = array('action' => 'add_event_classic_form', 'form' => 'followups', 'users_id' => $this->fields["users_id_tech"], 'groups_id' => $this->fields["groups_id_tech"], 'id' => $this->fields["id"], 'begin' => $this->fields["begin"], 'end' => $this->fields["end"], 'rand_user' => $rand_user, 'rand_group' => $rand_group, 'entity' => $item->fields["entities_id"], 'itemtype' => $this->getType(), 'items_id' => $this->getID());
Ajax::updateItemJsCode("viewplan{$rand_text}", $CFG_GLPI["root_doc"] . "/ajax/planning.php", $params);
echo "}";
echo "</script>\n";
echo "<div id='plan{$rand_text}' onClick='showPlan" . $ID . $rand_text . "()'>\n";
echo "<span class='showplan'>";
}
if (isset($this->fields["state"])) {
echo Planning::getState($this->fields["state"]) . "<br>";
}
printf(__('From %1$s to %2$s'), Html::convDateTime($this->fields["begin"]), Html::convDateTime($this->fields["end"]));
if (isset($this->fields["users_id_tech"]) && $this->fields["users_id_tech"] > 0) {
echo "<br>" . getUserName($this->fields["users_id_tech"]);
}
if (isset($this->fields["groups_id_tech"]) && $this->fields["groups_id_tech"] > 0) {
echo "<br>" . Dropdown::getDropdownName('glpi_groups', $this->fields["groups_id_tech"]);
}
if (Session::haveRight('planning', Planning::READMY)) {
echo "</span>";
echo "</div>\n";
echo "<div id='viewplan{$rand_text}'></div>\n";
}
} else {
if ($canplan) {
echo "<script type='text/javascript' >\n";
echo "function showPlanUpdate{$rand_text}() {\n";
echo Html::jsHide("plan{$rand_text}");
$params = array('action' => 'add_event_classic_form', 'form' => 'followups', 'entity' => $item->fields['entities_id'], 'rand_user' => $rand_user, 'rand_group' => $rand_group, 'itemtype' => $this->getType(), 'items_id' => $this->getID());
Ajax::updateItemJsCode("viewplan{$rand_text}", $CFG_GLPI["root_doc"] . "/ajax/planning.php", $params);
echo "};";
echo "</script>";
if ($canplan) {
echo "<div id='plan{$rand_text}' onClick='showPlanUpdate{$rand_text}()'>\n";
echo "<span class='vsubmit'>" . __('Plan this task') . "</span>";
echo "</div>\n";
echo "<div id='viewplan{$rand_text}'></div>\n";
}
} else {
_e('None');
}
}
echo "</td></tr>";
if (!empty($this->fields["begin"]) && PlanningRecall::isAvailable()) {
echo "<tr class='tab_bg_1'><td>" . _x('Planning', 'Reminder') . "</td><td class='center'>";
PlanningRecall::dropdown(array('itemtype' => $this->getType(), 'items_id' => $this->getID()));
echo "</td><td colspan='2'></td></tr>";
}
$this->showFormButtons($options);
return true;
}
示例4: showForm
//.........这里部分代码省略.........
Html::showDateTimeField("date", array('value' => $this->fields["date"], 'timestep' => 1, 'maybeempty' => false));
} else {
echo "<td colspan='2'> ";
}
echo "<input type='hidden' name='{$fkfield}' value='" . $this->fields[$fkfield] . "'>";
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Category') . "</td><td>";
TaskCategory::dropdown(array('value' => $this->fields["taskcategories_id"], 'entity' => $item->fields["entities_id"]));
echo "</td></tr>\n";
if (isset($this->fields["state"])) {
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Status') . "</td><td>";
Planning::dropdownState("state", $this->fields["state"]);
echo "</td></tr>\n";
}
if ($this->maybePrivate()) {
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Private') . "</td>";
echo "<td>";
Dropdown::showYesNo('is_private', $this->fields["is_private"]);
echo "</td>";
echo "</tr>";
}
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Duration') . "</td><td>";
$toadd = array();
for ($i = 9; $i <= 100; $i++) {
$toadd[] = $i * HOUR_TIMESTAMP;
}
Dropdown::showTimeStamp("actiontime", array('min' => 0, 'max' => 8 * HOUR_TIMESTAMP, 'value' => $this->fields["actiontime"], 'addfirstminutes' => true, 'inhours' => true, 'toadd' => $toadd));
echo "</td></tr>\n";
Document_Item::showSimpleAddForItem($item);
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('By');
echo " <a href='#' onClick=\"" . Html::jsGetElementbyID('planningcheck' . $rand) . ".dialog('open');\">";
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/reservation-3.png'\n title=\"" . __s('Availability') . "\" alt=\"" . __s('Availability') . "\"\n class='calendrier'>";
echo "</a>";
Ajax::createIframeModalWindow('planningcheck' . $rand, $CFG_GLPI["root_doc"] . "/front/planning.php?checkavailability=checkavailability" . "&itemtype=" . $item->getType() . "&{$fkfield}=" . $item->getID(), array('title' => __('Availability')));
echo "</td>";
echo "<td class='center'>";
$rand_user = mt_rand();
$params = array('name' => "users_id_tech", 'value' => $this->fields["users_id_tech"] ? $this->fields["users_id_tech"] : Session::getLoginUserID(), 'right' => "own_ticket", 'rand' => $rand_user, 'entity' => $item->fields["entities_id"]);
$params['toupdate'] = array('value_fieldname' => 'users_id', 'to_update' => "user_available{$rand_user}", 'url' => $CFG_GLPI["root_doc"] . "/ajax/planningcheck.php");
User::dropdown($params);
echo "</td>\n";
if ($canplan) {
echo "<td>" . __('Planning') . "</td>";
}
echo "<td>";
if (!empty($this->fields["begin"])) {
if (Session::haveRight('planning', Planning::READMY)) {
echo "<script type='text/javascript' >\n";
echo "function showPlan" . $ID . "() {\n";
echo Html::jsHide('plan');
$params = array('form' => 'followups', 'users_id' => $this->fields["users_id_tech"], 'id' => $this->fields["id"], 'begin' => $this->fields["begin"], 'end' => $this->fields["end"], 'rand_user' => $rand_user, 'entity' => $item->fields["entities_id"], 'itemtype' => $this->getType(), 'items_id' => $this->getID());
Ajax::updateItemJsCode('viewplan', $CFG_GLPI["root_doc"] . "/ajax/planning.php", $params);
echo "}";
echo "</script>\n";
echo "<div id='plan' onClick='showPlan" . $ID . "()'>\n";
echo "<span class='showplan'>";
}
if (isset($this->fields["state"])) {
echo Planning::getState($this->fields["state"]) . "<br>";
}
printf(__('From %1$s to %2$s'), Html::convDateTime($this->fields["begin"]), Html::convDateTime($this->fields["end"]));
echo "<br>" . getUserName($this->fields["users_id_tech"]);
if (Session::haveRight('planning', Planning::READMY)) {
echo "</span>";
echo "</div>\n";
echo "<div id='viewplan'></div>\n";
}
} else {
if ($canplan) {
echo "<script type='text/javascript' >\n";
echo "function showPlanUpdate() {\n";
echo Html::jsHide('plan');
$params = array('form' => 'followups', 'entity' => $_SESSION["glpiactive_entity"], 'rand_user' => $rand_user, 'itemtype' => $this->getType(), 'items_id' => $this->getID());
Ajax::updateItemJsCode('viewplan', $CFG_GLPI["root_doc"] . "/ajax/planning.php", $params);
echo "};";
echo "</script>";
if ($canplan) {
echo "<div id='plan' onClick='showPlanUpdate()'>\n";
echo "<span class='vsubmit'>" . __('Plan this task') . "</span>";
echo "</div>\n";
echo "<div id='viewplan'></div>\n";
}
} else {
_e('None');
}
}
echo "</td></tr>";
if (!empty($this->fields["begin"]) && PlanningRecall::isAvailable()) {
echo "<tr class='tab_bg_1'><td>" . _x('Planning', 'Reminder') . "</td><td class='center'>";
PlanningRecall::dropdown(array('itemtype' => $this->getType(), 'items_id' => $this->getID()));
echo "</td></tr>";
}
$this->showFormButtons($options);
return true;
}
示例5: showTimeline
//.........这里部分代码省略.........
echo "<img src='{$pics_url}/" . $item_i['requesttypes_id'] . ".png' title='' class='h_requesttype' />";
}
if (isset($item_i['content'])) {
$content = $item_i['content'];
$content = linkUrlsInTrustedHtml($content);
//$content = nl2br($content);
$long_text = "";
if (substr_count($content, "<br") > 30 || strlen($content) > 2000) {
$long_text = "long_text";
}
echo "<div class='item_content {$long_text}'>";
echo "<p>{$content}</p>";
if (!empty($long_text)) {
echo "<p class='read_more'>";
echo "<a class='read_more_button'>.....</a>";
echo "</p>";
}
echo "</div>";
}
echo "<div class='b_right'>";
if (isset($item_i['solutiontypes_id']) && !empty($item_i['solutiontypes_id'])) {
echo Dropdown::getDropdownName("glpi_solutiontypes", $item_i['solutiontypes_id']) . "<br>";
}
if (isset($item_i['taskcategories_id']) && !empty($item_i['taskcategories_id'])) {
echo Dropdown::getDropdownName("glpi_taskcategories", $item_i['taskcategories_id']) . "<br>";
}
if (isset($item_i['actiontime']) && !empty($item_i['actiontime'])) {
echo "<span class='actiontime'>";
echo Html::timestampToString($item_i['actiontime'], false);
echo "</span>";
}
if (isset($item_i['state'])) {
echo "<span class='state state_" . $item_i['state'] . "'>";
echo Planning::getState($item_i['state']);
echo "</span>";
}
if (isset($item_i['begin'])) {
echo "<span class='planification'>";
echo Html::convDateTime($item_i["begin"]);
echo " ⇒ ";
echo Html::convDateTime($item_i["end"]);
echo "</span>";
}
if (isset($item_i['users_id_tech'])) {
echo "<div class='users_id_tech'>";
$user->getFromDB($item_i['users_id_tech']);
echo "<div class='tooltip_picture_border'>";
echo "<img class='user_picture' alt=\"" . __s('Picture') . "\" src='" . User::getThumbnailURLForPicture($user->fields['picture']) . "'>";
echo "</div>";
echo $user->getLink();
echo "</div>";
}
// show "is_private" icon
if (isset($item_i['is_private']) && $item_i['is_private']) {
echo "<div class='private'>" . __('Private') . "</div>";
}
echo "</div>";
// b_right
if ($item['type'] == 'Document_Item') {
$filename = $item_i['filename'];
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
echo "<img src='";
if (empty($filename)) {
$filename = $item_i['name'];
}
if (file_exists(GLPI_ROOT . "/pics/icones/{$ext}-dist.png")) {
示例6: displayPlanningItem
/**
* Display a Planning Item
*
* @param $val array of the item to display
* @param $who ID of the user (0 if all)
* @param $type position of the item in the time block (in, through, begin or end)
* (default '')
* @param $complete complete display (more details) (default 0)
*
* @return Nothing (display function)
**/
static function displayPlanningItem(array $val, $who, $type = "", $complete = 0)
{
global $CFG_GLPI;
$html = "";
$rand = mt_rand();
$users_id = "";
// show users_id reminder
$img = "rdv_private.png";
// default icon for reminder
if ($val["users_id"] != Session::getLoginUserID()) {
$users_id = "<br>" . sprintf(__('%1$s: %2$s'), __('By'), getUserName($val["users_id"]));
$img = "rdv_public.png";
}
$html .= "<img src='" . $CFG_GLPI["root_doc"] . "/pics/" . $img . "' alt='' title=\"" . self::getTypeName(1) . "\"> ";
$html .= "<a id='reminder_" . $val["reminders_id"] . $rand . "' href='" . $CFG_GLPI["root_doc"] . "/front/reminder.form.php?id=" . $val["reminders_id"] . "'>";
$html .= $users_id;
$html .= "</a>";
$recall = '';
if (isset($val['reminders_id'])) {
$pr = new PlanningRecall();
if ($pr->getFromDBForItemAndUser($val['itemtype'], $val['reminders_id'], Session::getLoginUserID())) {
$recall = "<br><span class='b'>" . sprintf(__('Recall on %s'), Html::convDateTime($pr->fields['when'])) . "<span>";
}
}
if ($complete) {
$html .= "<span>" . Planning::getState($val["state"]) . "</span><br>";
$html .= "<div class='event-description'>" . $val["text"] . $recall . "</div>";
} else {
$html .= Html::showToolTip("<span class='b'>" . Planning::getState($val["state"]) . "</span><br>\n " . $val["text"] . $recall, array('applyto' => "reminder_" . $val["reminders_id"] . $rand, 'display' => false));
}
return $html;
}
示例7: giveItem
//.........这里部分代码省略.........
$out .= "<div style='position:absolute;'> " . $percentage_text . "%</div>";
$out .= "<div class='center' style='background-color: " . $color . ";\n width: " . $percentage . "%; height: 12px' ></div>";
$out .= "</div>";
return $out;
}
break;
case "glpi_softwarelicenses.number":
if ($data[$NAME . $num . "_2"] == -1) {
return __('Unlimited');
}
if (empty($data[$NAME . $num])) {
return 0;
}
return $data[$NAME . $num];
case "glpi_auth_tables.name":
return Auth::getMethodName($data[$NAME . $num], $data[$NAME . $num . "_2"], 1, $data[$NAME . $num . "_3"] . $data[$NAME . $num . "_4"]);
case "glpi_reservationitems.comment":
if (empty($data[$NAME . $num])) {
return "<a title=\"" . __s('Modify the comment') . "\"\n href='" . $CFG_GLPI["root_doc"] . "/front/reservationitem.form.php?id=" . $data["refID"] . "' >" . __('None') . "</a>";
}
return "<a title=\"" . __s('Modify the comment') . "\"\n href='" . $CFG_GLPI["root_doc"] . "/front/reservationitem.form.php?id=" . $data['refID'] . "' >" . Html::resume_text($data[$NAME . $num]) . "</a>";
case 'glpi_notifications.mode':
return Notification::getMode($data[$NAME . $num]);
case 'glpi_notifications.event':
$item = NotificationTarget::getInstanceByType($data['itemtype']);
if ($item) {
$events = $item->getAllEvents();
if (isset($events[$data[$NAME . $num]])) {
return $events[$data[$NAME . $num]];
}
}
return '';
case 'glpi_reminders.state':
return Planning::getState($data[$NAME . $num]);
case 'glpi_crontasks.description':
$tmp = new CronTask();
return $tmp->getDescription($data['id']);
case 'glpi_crontasks.state':
return CronTask::getStateName($data[$NAME . $num]);
case 'glpi_crontasks.mode':
return CronTask::getModeName($data[$NAME . $num]);
case 'glpi_crontasks.itemtype':
if ($plug = isPluginItemType($data[$NAME . $num])) {
return $plug['plugin'];
}
return '';
case 'glpi_changes.status':
$status = Change::getStatus($data[$NAME . $num]);
return "<img src=\"" . Change::getStatusIconURL($data[$NAME . $num]) . "\"\n alt=\"{$status}\" title=\"{$status}\"> {$status}";
case 'glpi_problems.status':
$status = Problem::getStatus($data[$NAME . $num]);
return "<img src=\"" . Problem::getStatusIconURL($data[$NAME . $num]) . "\"\n alt=\"{$status}\" title=\"{$status}\"> {$status}";
case 'glpi_tickets.status':
$status = Ticket::getStatus($data[$NAME . $num]);
return "<img src=\"" . Ticket::getStatusIconURL($data[$NAME . $num]) . "\"\n alt=\"{$status}\" title=\"{$status}\"> {$status}";
case 'glpi_tickets.items_id':
if (!empty($data[$NAME . $num . "_2"]) && ($item = getItemForItemtype($data[$NAME . $num . "_2"]))) {
if ($item->getFromDB($data[$NAME . $num])) {
return $item->getLink(array('comments' => true));
}
}
return ' ';
case 'glpi_tickets.name':
if (isset($searchopt[$ID]['forcegroupby']) && $searchopt[$ID]['forcegroupby']) {
$split = explode("\$\$\$\$", $data[$NAME . $num]);
$out = '';
示例8: displayPlanningItem
/**
* Display a Planning Item
*
* @param $val Array of the item to display
* @param $who ID of the user (0 if all)
* @param $type position of the item in the time block (in, through, begin or end)
* @param $complete complete display (more details)
*
* @return Nothing (display function)
**/
static function displayPlanningItem($val, $who, $type = "", $complete = 0)
{
global $CFG_GLPI, $LANG;
$rand = mt_rand();
$users_id = "";
// show users_id reminder
$img = "rdv_private.png";
// default icon for reminder
if (!$val["is_private"]) {
$users_id = "<br>" . $LANG['common'][95] . " : " . getUserName($val["users_id"]);
$img = "rdv_public.png";
}
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/" . $img . "' alt='' title=\"" . $LANG['title'][37] . "\"> ";
echo "<a id='reminder_" . $val["reminders_id"] . $rand . "' href='" . $CFG_GLPI["root_doc"] . "/front/reminder.form.php?id=" . $val["reminders_id"] . "'>";
switch ($type) {
case "in":
echo date("H:i", strtotime($val["begin"])) . " -> " . date("H:i", strtotime($val["end"])) . ": ";
break;
case "through":
break;
case "begin":
echo $LANG['buttons'][33] . " " . date("H:i", strtotime($val["begin"])) . ": ";
break;
case "end":
echo $LANG['buttons'][32] . " " . date("H:i", strtotime($val["end"])) . ": ";
break;
}
echo resume_text($val["name"], 80);
echo $users_id;
echo "</a>";
if ($complete) {
echo "<br><strong>" . Planning::getState($val["state"]) . "</strong><br>";
echo $val["text"];
} else {
showToolTip("<strong>" . Planning::getState($val["state"]) . "</strong><br>" . $val["text"], array('applyto' => "reminder_" . $val["reminders_id"] . $rand));
}
echo "";
}
示例9: showInTicketSumnary
function showInTicketSumnary(Ticket $ticket, $rand, $showprivate)
{
global $DB, $CFG_GLPI, $LANG;
$canedit = $this->can($this->fields['id'], 'w');
echo "<tr class='tab_bg_" . ($this->fields['is_private'] == 1 ? "4" : "2") . "' " . ($canedit ? "style='cursor:pointer' onClick=\"viewEditFollowup" . $ticket->fields['id'] . $this->fields['id'] . "{$rand}();\"" : '') . " id='viewfollowup" . $this->fields['tickets_id'] . $this->fields["id"] . "{$rand}'>";
echo "<td>" . $this->getTypeName();
if ($this->fields['taskcategories_id']) {
echo " - " . Dropdown::getDropdownName('glpi_taskcategories', $this->fields['taskcategories_id']);
}
echo "</td>";
echo "<td>";
if ($canedit) {
echo "\n<script type='text/javascript' >\n";
echo "function viewEditFollowup" . $ticket->fields['id'] . $this->fields["id"] . "{$rand}() {\n";
$params = array('type' => __CLASS__, 'tickets_id' => $this->fields["tickets_id"], 'id' => $this->fields["id"]);
ajaxUpdateItemJsCode("viewfollowup" . $ticket->fields['id'] . "{$rand}", $CFG_GLPI["root_doc"] . "/ajax/viewfollowup.php", $params, false);
echo "};";
echo "</script>\n";
}
//else echo "--no--";
echo convDateTime($this->fields["date"]) . "</td>";
echo "<td class='left'>" . nl2br($this->fields["content"]) . "</td>";
$units = getTimestampTimeUnits($this->fields["actiontime"]);
$hour = $units['hour'] + 24 * $units['day'];
$minute = $units['minute'];
echo "<td>";
if ($hour) {
echo "{$hour} " . $LANG['job'][21] . "<br>";
}
if ($minute || !$hour) {
echo "{$minute} " . $LANG['job'][22] . "</td>";
}
echo "<td>" . getUserName($this->fields["users_id"]) . "</td>";
if ($showprivate) {
echo "<td>" . ($this->fields["is_private"] ? $LANG['choice'][1] : $LANG['choice'][0]) . "</td>";
}
echo "<td>";
$query2 = "SELECT *\n FROM `glpi_ticketplannings`\n WHERE `tickettasks_id` = '" . $this->fields['id'] . "'";
$result2 = $DB->query($query2);
if ($DB->numrows($result2) == 0) {
echo $LANG['job'][32];
} else {
$data2 = $DB->fetch_array($result2);
echo Planning::getState($data2["state"]) . "<br>" . convDateTime($data2["begin"]) . "<br>->" . convDateTime($data2["end"]) . "<br>" . getUserName($data2["users_id"]);
}
echo "</td>";
echo "</tr>\n";
}
示例10: getDatasForTemplate
/**
* @see NotificationTarget::getDatasForTemplate()
**/
function getDatasForTemplate($event, $options = array())
{
$events = $this->getAllEvents();
$this->target_object = reset($this->target_object);
$this->datas['##recall.action##'] = $events[$event];
$this->datas['##recall.itemtype##'] = $this->target_object->getTypeName(1);
$this->datas['##recall.item.URL##'] = '';
// For task show parent link
if ($this->target_object instanceof CommonDBChild || $this->target_object instanceof CommonITILTask) {
$item2 = $this->target_object->getItem();
$this->datas['##recall.item.url##'] = $this->formatURL($options['additionnaloption']['usertype'], $item2->getType() . "_" . $item2->getID());
} else {
$this->datas['##recall.item.url##'] = $this->formatURL($options['additionnaloption']['usertype'], $this->target_object->getType() . "_" . $this->target_object->getID());
}
$this->datas['##recall.item.name##'] = '';
if ($this->target_object->isField('name')) {
$this->datas['##recall.item.name##'] = $this->target_object->getField('name');
} else {
if (($item2 = $this->target_object->getItem()) && $item2->isField('name')) {
$this->datas['##recall.item.name##'] = $item2->getField('name');
}
}
$this->datas['##recall.item.content##'] = '';
if ($this->target_object->isField('content')) {
$this->datas['##recall.item.content##'] = $this->target_object->getField('content');
}
if ($this->target_object->isField('text')) {
$this->datas['##recall.item.content##'] = $this->target_object->getField('text');
}
$this->datas['##recall.item.private##'] = '';
if ($this->target_object->isField('is_private')) {
$this->datas['##recall.item.private##'] = Dropdown::getYesNo($this->target_object->getField('is_private'));
}
$this->datas['##recall.item.date_mod##'] = '';
if ($this->target_object->isField('date_mod')) {
$this->datas['##recall.item.date_mod##'] = Html::convDateTime($this->target_object->getField('date_mod'));
}
$this->datas['##recall.item.user##'] = '';
$user_tmp = new User();
if ($user_tmp->getFromDB($this->target_object->getField('users_id'))) {
$this->datas['##recall.item.user##'] = $user_tmp->getName();
}
$this->datas['##recall.planning.state##'] = '';
if ($this->target_object->isField('state')) {
$this->datas['##recall.planning.state##'] = Planning::getState($this->target_object->getField('state'));
}
$this->datas['##recall.planning.begin##'] = Html::convDateTime($this->target_object->getField('begin'));
$this->datas['##recall.planning.end##'] = Html::convDateTime($this->target_object->getField('end'));
$this->getTags();
foreach ($this->tag_descriptions[NotificationTarget::TAG_LANGUAGE] as $tag => $values) {
if (!isset($this->datas[$tag])) {
$this->datas[$tag] = $values['label'];
}
}
}
示例11: getDatasForObject
//.........这里部分代码省略.........
$tmp["##{$objettype}.log.user##"] = $data['user_name'];
$tmp["##{$objettype}.log.field##"] = $data['field'];
$tmp["##{$objettype}.log.content##"] = $data['change'];
$datas['log'][] = $tmp;
}
$datas["##{$objettype}.numberoflogs##"] = count($datas['log']);
// Get unresolved items
$restrict = "`" . $item->getTable() . "`.`status`\n NOT IN ('" . implode("', '", array_merge($item->getSolvedStatusArray(), $item->getClosedStatusArray())) . "'\n )";
if ($item->maybeDeleted()) {
$restrict .= " AND `" . $item->getTable() . "`.`is_deleted` = '0' ";
}
$datas["##{$objettype}.numberofunresolved##"] = countElementsInTableForEntity($item->getTable(), $this->getEntity(), $restrict);
// Document
$query = "SELECT `glpi_documents`.*\n FROM `glpi_documents`\n LEFT JOIN `glpi_documents_items`\n ON (`glpi_documents`.`id` = `glpi_documents_items`.`documents_id`)\n WHERE `glpi_documents_items`.`itemtype` = '" . $item->getType() . "'\n AND `glpi_documents_items`.`items_id` = '" . $item->getField('id') . "'";
$datas["documents"] = array();
$addtodownloadurl = '';
if ($item->getType() == 'Ticket') {
$addtodownloadurl = "%2526tickets_id=" . $item->fields['id'];
}
if ($result = $DB->query($query)) {
while ($data = $DB->fetch_assoc($result)) {
$tmp = array();
$tmp['##document.id##'] = $data['id'];
$tmp['##document.name##'] = $data['name'];
$tmp['##document.weblink##'] = $data['link'];
$tmp['##document.url##'] = $this->formatURL($options['additionnaloption']['usertype'], "document_" . $data['id']);
$downloadurl = "/front/document.send.php?docid=" . $data['id'];
$tmp['##document.downloadurl##'] = $this->formatURL($options['additionnaloption']['usertype'], $downloadurl . $addtodownloadurl);
$tmp['##document.heading##'] = Dropdown::getDropdownName('glpi_documentcategories', $data['documentcategories_id']);
$tmp['##document.filename##'] = $data['filename'];
$datas['documents'][] = $tmp;
}
}
$datas["##{$objettype}.urldocument##"] = $this->formatURL($options['additionnaloption']['usertype'], $objettype . "_" . $item->getField("id") . '_Document_Item$1');
$datas["##{$objettype}.numberofdocuments##"] = count($datas['documents']);
//costs infos
$costtype = $item->getType() . 'Cost';
$costs = $costtype::getCostsSummary($costtype, $item->getField("id"));
$datas["##{$objettype}.costfixed##"] = $costs['costfixed'];
$datas["##{$objettype}.costmaterial##"] = $costs['costmaterial'];
$datas["##{$objettype}.costtime##"] = $costs['costtime'];
$datas["##{$objettype}.totalcost##"] = $costs['totalcost'];
$restrict = "`" . $item->getForeignKeyField() . "`='" . $item->getField('id') . "'";
$restrict .= " ORDER BY `begin_date` DESC, `id` ASC";
$costs = getAllDatasFromTable(getTableForItemType($costtype), $restrict);
$datas['costs'] = array();
foreach ($costs as $cost) {
$tmp = array();
$tmp['##cost.name##'] = $cost['name'];
$tmp['##cost.comment##'] = $cost['comment'];
$tmp['##cost.datebegin##'] = Html::convDate($cost['begin_date']);
$tmp['##cost.dateend##'] = Html::convDate($cost['end_date']);
$tmp['##cost.time##'] = $item->getActionTime($cost['actiontime']);
$tmp['##cost.costtime##'] = Html::formatNumber($cost['cost_time']);
$tmp['##cost.costfixed##'] = Html::formatNumber($cost['cost_fixed']);
$tmp['##cost.costmaterial##'] = Html::formatNumber($cost['cost_material']);
$tmp['##cost.totalcost##'] = CommonITILCost::computeTotalCost($cost['actiontime'], $cost['cost_time'], $cost['cost_fixed'], $cost['cost_material']);
$tmp['##cost.budget##'] = Dropdown::getDropdownName('glpi_budgets', $cost['budgets_id']);
$datas['costs'][] = $tmp;
}
$datas["##{$objettype}.numberofcosts##"] = count($datas['costs']);
//Task infos
$tasktype = $item->getType() . 'Task';
$taskobj = new $tasktype();
$restrict = "`" . $item->getForeignKeyField() . "`='" . $item->getField('id') . "'";
if ($taskobj->maybePrivate() && (!isset($options['additionnaloption']['show_private']) || !$options['additionnaloption']['show_private'])) {
$restrict .= " AND `is_private` = '0'";
}
$restrict .= " ORDER BY `date` DESC, `id` ASC";
$tasks = getAllDatasFromTable($taskobj->getTable(), $restrict);
$datas['tasks'] = array();
foreach ($tasks as $task) {
$tmp = array();
$tmp['##task.id##'] = $task['id'];
if ($taskobj->maybePrivate()) {
$tmp['##task.isprivate##'] = Dropdown::getYesNo($task['is_private']);
}
$tmp['##task.author##'] = Html::clean(getUserName($task['users_id']));
$tmp_taskcatinfo = Dropdown::getDropdownName('glpi_taskcategories', $task['taskcategories_id'], true, true, false);
$tmp['##task.categoryid##'] = $task['taskcategories_id'];
$tmp['##task.category##'] = $tmp_taskcatinfo['name'];
$tmp['##task.categorycomment##'] = $tmp_taskcatinfo['comment'];
$tmp['##task.date##'] = Html::convDateTime($task['date']);
$tmp['##task.description##'] = $task['content'];
$tmp['##task.time##'] = Ticket::getActionTime($task['actiontime']);
$tmp['##task.status##'] = Planning::getState($task['state']);
$tmp['##task.user##'] = Html::clean(getUserName($task['users_id_tech']));
$tmp['##task.group##'] = Html::clean(Toolbox::clean_cross_side_scripting_deep(Dropdown::getDropdownName("glpi_groups", $task['groups_id_tech'])), true, 2, false);
$tmp['##task.begin##'] = "";
$tmp['##task.end##'] = "";
if (!is_null($task['begin'])) {
$tmp['##task.begin##'] = Html::convDateTime($task['begin']);
$tmp['##task.end##'] = Html::convDateTime($task['end']);
}
$datas['tasks'][] = $tmp;
}
$datas["##{$objettype}.numberoftasks##"] = count($datas['tasks']);
}
return $datas;
}
示例12: getDatasForObject
/**
* @see NotificationTargetCommonITILObject::getDatasForObject()
**/
function getDatasForObject(CommonDBTM $item, array $options, $simple = false)
{
global $CFG_GLPI;
// Common ITIL datas
$datas = parent::getDatasForObject($item, $options, $simple);
$datas["##problem.impacts##"] = $item->getField('impactcontent');
$datas["##problem.causes##"] = $item->getField('causecontent');
$datas["##problem.symptoms##"] = $item->getField('symptomcontent');
// Complex mode : get tasks
if (!$simple) {
$restrict = "`problems_id`='" . $item->getField('id') . "'";
$tickets = getAllDatasFromTable('glpi_problems_tickets', $restrict);
$datas['tickets'] = array();
if (count($tickets)) {
$ticket = new Ticket();
foreach ($tickets as $data) {
if ($ticket->getFromDB($data['tickets_id'])) {
$tmp = array();
$tmp['##ticket.id##'] = $data['tickets_id'];
$tmp['##ticket.date##'] = $ticket->getField('date');
$tmp['##ticket.title##'] = $ticket->getField('name');
$tmp['##ticket.url##'] = urldecode($CFG_GLPI["url_base"] . "/index.php" . "?redirect=ticket_" . $data['tickets_id']);
$tmp['##ticket.content##'] = $ticket->getField('content');
$datas['tickets'][] = $tmp;
}
}
}
$datas['##problem.numberoftickets##'] = 0;
if (!empty($datas['tickets'])) {
$datas['##problem.numberoftickets##'] = count($datas['tickets']);
}
$restrict = "`problems_id` = '" . $item->getField('id') . "'\n ORDER BY `date` DESC,\n `id` ASC";
//Task infos
$tasks = getAllDatasFromTable('glpi_problemtasks', $restrict);
foreach ($tasks as $task) {
$tmp = array();
$tmp['##task.author##'] = Html::clean(getUserName($task['users_id']));
$tmp['##task.category##'] = Dropdown::getDropdownName('glpi_taskcategories', $task['taskcategories_id']);
$tmp['##task.date##'] = Html::convDateTime($task['date']);
$tmp['##task.description##'] = $task['content'];
$tmp['##task.time##'] = Problem::getActionTime($task['actiontime']);
$tmp['##task.status##'] = Planning::getState($task['state']);
$tmp['##task.user##'] = "";
$tmp['##task.begin##'] = "";
$tmp['##task.end##'] = "";
if (!is_null($task['begin'])) {
$tmp['##task.user##'] = Html::clean(getUserName($task['users_id_tech']));
$tmp['##task.begin##'] = Html::convDateTime($task['begin']);
$tmp['##task.end##'] = Html::convDateTime($task['end']);
}
$datas['tasks'][] = $tmp;
}
$datas['##problem.numberoftasks##'] = 0;
if (!empty($datas['tasks'])) {
$datas['##problem.numberoftasks##'] = count($datas['tasks']);
}
$restrict = "`problems_id` = '" . $item->getField('id') . "'";
$items = getAllDatasFromTable('glpi_items_problems', $restrict);
$datas['items'] = array();
if (count($tickets)) {
foreach ($items as $data) {
if ($item2 = getItemForItemtype($data['itemtype'])) {
if ($item2->getFromDB($data['items_id'])) {
$tmp = array();
$tmp['##item.itemtype##'] = $item2->getTypeName();
$tmp['##item.name##'] = $item2->getField('name');
$tmp['##item.serial##'] = $item2->getField('serial');
$tmp['##item.otherserial##'] = $item2->getField('otherserial');
$tmp['##item.contact##'] = $item2->getField('contact');
$tmp['##item.contactnum##'] = $item2->getField('contactnum');
$tmp['##item.location##'] = '';
$tmp['##item.user##'] = '';
$tmp['##item.group##'] = '';
$tmp['##item.model##'] = '';
//Object location
if ($item2->getField('locations_id') != NOT_AVAILABLE) {
$tmp['##item.location##'] = Dropdown::getDropdownName('glpi_locations', $item2->getField('locations_id'));
}
//Object user
if ($item2->getField('users_id')) {
$user_tmp = new User();
if ($user_tmp->getFromDB($item2->getField('users_id'))) {
$tmp['##item.user##'] = $user_tmp->getName();
}
}
//Object group
if ($item2->getField('groups_id')) {
$tmp['##item.group##'] = Dropdown::getDropdownName('glpi_groups', $item2->getField('groups_id'));
}
$modeltable = getSingular($item2->getTable()) . "models";
$modelfield = getForeignKeyFieldForTable($modeltable);
if ($item2->isField($modelfield)) {
$tmp['##item.model##'] = $item2->getField($modelfield);
}
$datas['items'][] = $tmp;
}
}
//.........这里部分代码省略.........
示例13: getDatasForTemplate
//.........这里部分代码省略.........
$tmp['##linkedticket.link##'] = Ticket_Ticket::getLinkName($data['link']);
$tmp['##linkedticket.url##'] = urldecode($CFG_GLPI["url_base"] . "/index.php" . "?redirect=ticket_" . $data['tickets_id']);
$tmp['##linkedticket.title##'] = $linkedticket->getField('name');
$tmp['##linkedticket.content##'] = $linkedticket->getField('content');
$this->datas['linkedtickets'][] = $tmp;
}
}
}
if (!empty($this->datas['linkedtickets'])) {
$this->datas['##ticket.numberoflinkedtickets##'] = count($this->datas['linkedtickets']);
} else {
$this->datas['##ticket.numberoflinkedtickets##'] = 0;
}
$restrict = "`tickets_id`='" . $this->obj->getField('id') . "'";
if (!isset($options['additionnaloption']) || !$options['additionnaloption']) {
$restrict .= " AND `is_private` = '0'";
}
$restrict .= " ORDER BY `date` DESC, `id` ASC";
//Task infos
$tasks = getAllDatasFromTable('glpi_tickettasks', $restrict);
foreach ($tasks as $task) {
$tmp = array();
$tmp['##task.isprivate##'] = Dropdown::getYesNo($task['is_private']);
$tmp['##task.author##'] = html_clean(getUserName($task['users_id']));
$tmp['##task.category##'] = Dropdown::getDropdownName('glpi_taskcategories', $task['taskcategories_id']);
$tmp['##task.date##'] = convDateTime($task['date']);
$tmp['##task.description##'] = $task['content'];
$tmp['##task.time##'] = Ticket::getActionTime($task['actiontime']);
$plan = new TicketPlanning();
if ($plan->getFromDBbyTask($task['id'])) {
$tmp['##task.planning.user##'] = html_clean(getUserName($plan->fields['users_id']));
$tmp['##task.planning.begin##'] = convDateTime($plan->fields['begin']);
$tmp['##task.planning.end##'] = convDateTime($plan->fields['end']);
$tmp['##task.planning.status##'] = Planning::getState($plan->fields['state']);
} else {
$tmp['##task.planning.user##'] = "";
$tmp['##task.planning.begin##'] = "";
$tmp['##task.planning.end##'] = "";
$tmp['##task.planning.status##'] = "";
}
$this->datas['tasks'][] = $tmp;
}
if (!empty($this->datas['tasks'])) {
$this->datas['##ticket.numberoftasks##'] = count($this->datas['tasks']);
} else {
$this->datas['##ticket.numberoftasks##'] = 0;
}
//Followup infos
$followups = getAllDatasFromTable('glpi_ticketfollowups', $restrict);
foreach ($followups as $followup) {
$tmp = array();
$tmp['##followup.isprivate##'] = Dropdown::getYesNo($followup['is_private']);
$tmp['##followup.author##'] = html_clean(getUserName($followup['users_id']));
$tmp['##followup.requesttype##'] = Dropdown::getDropdownName('glpi_requesttypes', $followup['requesttypes_id']);
$tmp['##followup.date##'] = convDateTime($followup['date']);
$tmp['##followup.description##'] = $followup['content'];
$this->datas['followups'][] = $tmp;
}
if (isset($this->datas['followups'])) {
$this->datas['##ticket.numberoffollowups##'] = count($this->datas['followups']);
} else {
$this->datas['##ticket.numberoffollowups##'] = 0;
}
//Validation infos
$restrict = "`tickets_id`='" . $this->obj->getField('id') . "'";
if (isset($options['validation_id']) && $options['validation_id']) {
示例14: getDatasForObject
//.........这里部分代码省略.........
$problems = getAllDatasFromTable('glpi_problems_tickets', $restrict);
$datas['problems'] = array();
if (count($problems)) {
$problem = new Problem();
foreach ($problems as $data) {
if ($problem->getFromDB($data['problems_id'])) {
$tmp = array();
$tmp['##problem.id##'] = $data['problems_id'];
$tmp['##problem.date##'] = $problem->getField('date');
$tmp['##problem.title##'] = $problem->getField('name');
$tmp['##problem.url##'] = $this->formatURL($options['additionnaloption']['usertype'], "problem_" . $data['problems_id']);
$tmp['##problem.content##'] = $problem->getField('content');
$datas['problems'][] = $tmp;
}
}
}
$datas['##ticket.numberofproblems##'] = count($datas['problems']);
$restrict = "`tickets_id`='" . $item->getField('id') . "'";
if (!isset($options['additionnaloption']['show_private']) || !$options['additionnaloption']['show_private']) {
$restrict .= " AND `is_private` = '0'";
}
$restrict .= " ORDER BY `date` DESC, `id` ASC";
//Task infos
$tasks = getAllDatasFromTable('glpi_tickettasks', $restrict);
$datas['tasks'] = array();
foreach ($tasks as $task) {
$tmp = array();
$tmp['##task.isprivate##'] = Dropdown::getYesNo($task['is_private']);
$tmp['##task.author##'] = Html::clean(getUserName($task['users_id']));
$tmp['##task.category##'] = Dropdown::getDropdownName('glpi_taskcategories', $task['taskcategories_id']);
$tmp['##task.date##'] = Html::convDateTime($task['date']);
$tmp['##task.description##'] = $task['content'];
$tmp['##task.time##'] = Ticket::getActionTime($task['actiontime']);
$tmp['##task.status##'] = Planning::getState($task['state']);
$tmp['##task.user##'] = "";
$tmp['##task.begin##'] = "";
$tmp['##task.end##'] = "";
if (!is_null($task['begin'])) {
$tmp['##task.user##'] = Html::clean(getUserName($task['users_id_tech']));
$tmp['##task.begin##'] = Html::convDateTime($task['begin']);
$tmp['##task.end##'] = Html::convDateTime($task['end']);
}
$datas['tasks'][] = $tmp;
}
$datas['##ticket.numberoftasks##'] = count($datas['tasks']);
//Followup infos
$followups = getAllDatasFromTable('glpi_ticketfollowups', $restrict);
$datas['followups'] = array();
foreach ($followups as $followup) {
$tmp = array();
$tmp['##followup.isprivate##'] = Dropdown::getYesNo($followup['is_private']);
$tmp['##followup.author##'] = Html::clean(getUserName($followup['users_id']));
$tmp['##followup.requesttype##'] = Dropdown::getDropdownName('glpi_requesttypes', $followup['requesttypes_id']);
$tmp['##followup.date##'] = Html::convDateTime($followup['date']);
$tmp['##followup.description##'] = $followup['content'];
$datas['followups'][] = $tmp;
}
$datas['##ticket.numberoffollowups##'] = count($datas['followups']);
//Validation infos
$restrict = "`tickets_id`='" . $item->getField('id') . "'";
if (isset($options['validation_id']) && $options['validation_id']) {
$restrict .= " AND `glpi_ticketvalidations`.`id` = '" . $options['validation_id'] . "'";
}
$restrict .= " ORDER BY `submission_date` DESC, `id` ASC";
$validations = getAllDatasFromTable('glpi_ticketvalidations', $restrict);
$datas['validations'] = array();
示例15: showTimeline
//.........这里部分代码省略.........
// h_user
}
echo "</div>";
//h_date
echo "<div class='h_content " . $item['type'] . (isset($item_i['status']) ? " " . $item_i['status'] : "") . "'" . "id='viewitem" . $item['type'] . $item_i['id'] . $rand . "'>";
if (isset($item_i['can_edit']) && $item_i['can_edit']) {
echo "<div class='edit_item_content'></div>";
echo "<span class='cancel_edit_item_content'></span>";
}
echo "<div class='displayed_content'>";
if (!in_array($item['type'], array('Document_Item', 'Assign')) && $item_i['can_edit']) {
echo "<span class='edit_item' ";
echo "onclick='javascript:viewEditSubitem" . $this->fields['id'] . "{$rand}(event, \"" . $item['type'] . "\", " . $item_i['id'] . ", this, \"viewitem" . $item['type'] . $item_i['id'] . $rand . "\")'";
echo "></span>";
}
if (isset($item_i['requesttypes_id']) && file_exists("{$pics_url}/" . $item_i['requesttypes_id'] . ".png")) {
echo "<img src='{$pics_url}/" . $item_i['requesttypes_id'] . ".png' title='' class='h_requesttype' />";
}
if (isset($item_i['content'])) {
$content = $item_i['content'];
$content = autolink($content, 40);
//$content = nl2br($content);
$long_text = "";
if (substr_count($content, "<br") > 30 || strlen($content) > 2000) {
$long_text = "long_text";
}
echo "<div class='item_content {$long_text}'>";
echo "<p>";
if (isset($item_i['state'])) {
$onClick = "onclick='change_task_state(" . $item_i['id'] . ", this)'";
if (!$item_i['can_edit']) {
$onClick = "style='cursor: not-allowed;'";
}
echo "<span class='state state_" . $item_i['state'] . "'\n {$onClick}\n title='" . Planning::getState($item_i['state']) . "'>";
echo "</span>";
}
echo $content;
echo "</p>";
if (!empty($long_text)) {
echo "<p class='read_more'>";
echo "<a class='read_more_button'>.....</a>";
echo "</p>";
}
echo "</div>";
}
echo "<div class='b_right'>";
if (isset($item_i['solutiontypes_id']) && !empty($item_i['solutiontypes_id'])) {
echo Dropdown::getDropdownName("glpi_solutiontypes", $item_i['solutiontypes_id']) . "<br>";
}
if (isset($item_i['taskcategories_id']) && !empty($item_i['taskcategories_id'])) {
echo Dropdown::getDropdownName("glpi_taskcategories", $item_i['taskcategories_id']) . "<br>";
}
if (isset($item_i['requesttypes_id']) && !empty($item_i['requesttypes_id'])) {
echo Dropdown::getDropdownName("glpi_requesttypes", $item_i['requesttypes_id']) . "<br>";
}
if (isset($item_i['actiontime']) && !empty($item_i['actiontime'])) {
echo "<span class='actiontime'>";
echo Html::timestampToString($item_i['actiontime'], false);
echo "</span>";
}
if (isset($item_i['begin'])) {
echo "<span class='planification'>";
echo Html::convDateTime($item_i["begin"]);
echo " ⇒ ";
echo Html::convDateTime($item_i["end"]);
echo "</span>";