本文整理汇总了PHP中Html::showMassiveActions方法的典型用法代码示例。如果您正苦于以下问题:PHP Html::showMassiveActions方法的具体用法?PHP Html::showMassiveActions怎么用?PHP Html::showMassiveActions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Html
的用法示例。
在下文中一共展示了Html::showMassiveActions方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: displayDatas
/**
* Display datas extracted from DB
*
* @param $data array of search datas prepared to get datas
*
* @return nothing
**/
static function displayDatas(array &$data)
{
global $CFG_GLPI;
$item = null;
if (class_exists($data['itemtype'])) {
$item = new $data['itemtype']();
}
$rand = mt_rand();
if (!isset($data['data']) || !isset($data['data']['totalcount'])) {
return false;
}
// Contruct Pager parameters
$globallinkto = Toolbox::append_params(array('criteria' => Toolbox::stripslashes_deep($data['search']['criteria']), 'metacriteria' => Toolbox::stripslashes_deep($data['search']['metacriteria'])), '&');
$parameters = "sort=" . $data['search']['sort'] . "&order=" . $data['search']['order'] . '&' . $globallinkto;
if (isset($_GET['_in_modal'])) {
$parameters .= "&_in_modal=1";
}
// Global search header
if ($data['display_type'] == self::GLOBAL_SEARCH) {
if ($data['item']) {
echo "<div class='center'><h2>" . $data['item']->getTypeName();
// More items
if ($data['data']['totalcount'] > $data['search']['start'] + self::GLOBAL_DISPLAY_COUNT) {
echo " <a href='" . $data['search']['target'] . "?{$parameters}'>" . __('All') . "</a>";
}
echo "</h2></div>\n";
} else {
return false;
}
}
// If the begin of the view is before the number of items
if ($data['data']['count'] > 0) {
// Display pager only for HTML
if ($data['display_type'] == self::HTML_OUTPUT) {
// For plugin add new parameter if available
if ($plug = isPluginItemType($data['itemtype'])) {
$function = 'plugin_' . $plug['plugin'] . '_addParamFordynamicReport';
if (function_exists($function)) {
$out = $function($data['itemtype']);
if (is_array($out) && count($out)) {
$parameters .= Toolbox::append_params($out, '&');
}
}
}
$search_config_top = "";
$search_config_bottom = "";
if (!isset($_GET['_in_modal']) && Session::haveRightsOr('search_config', array(DisplayPreference::PERSONAL, DisplayPreference::GENERAL))) {
$search_config_top = $search_config_bottom = "<div class='pager_controls'><img alt=\"" . __s('Select default items to show') . "\" title=\"" . __s('Select default items to show') . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/options_search.png' ";
$search_config_top .= " class='pointer' onClick=\"";
$search_config_top .= Html::jsGetElementbyID('search_config_top') . ".dialog('open');\">";
$search_config_bottom .= " class='pointer' onClick=\"";
$search_config_bottom .= Html::jsGetElementbyID('search_config_bottom') . ".dialog('open');\">";
$search_config_top .= Ajax::createIframeModalWindow('search_config_top', $CFG_GLPI["root_doc"] . "/front/displaypreference.form.php?itemtype=" . $data['itemtype'], array('title' => __('Select default items to show'), 'reloadonclose' => true, 'display' => false));
$search_config_bottom .= Ajax::createIframeModalWindow('search_config_bottom', $CFG_GLPI["root_doc"] . "/front/displaypreference.form.php?itemtype=" . $data['itemtype'], array('title' => __('Select default items to show'), 'reloadonclose' => true, 'display' => false));
}
if ($item !== null && $item->maybeDeleted()) {
$delete_ctrl = self::isDeletedSwitch($data['search']['is_deleted']);
$search_config_top .= $delete_ctrl;
}
Html::printPager($data['search']['start'], $data['data']['totalcount'], $data['search']['target'], $parameters, $data['itemtype'], 0, $search_config_top);
$search_config_top .= "</div>";
$search_config_bottom .= "</div>";
}
// Define begin and end var for loop
// Search case
$begin_display = $data['data']['begin'];
$end_display = $data['data']['end'];
// Form to massive actions
$isadmin = $data['item'] && $data['item']->canUpdate();
if (!$isadmin && InfoCom::canApplyOn($data['itemtype'])) {
$isadmin = Infocom::canUpdate() || Infocom::canCreate();
}
if ($data['itemtype'] != 'AllAssets') {
$showmassiveactions = count(MassiveAction::getAllMassiveActions($data['item'], $data['search']['is_deleted']));
} else {
$showmassiveactions = true;
}
$massformid = 'massform' . $data['itemtype'];
if ($showmassiveactions && $data['display_type'] == self::HTML_OUTPUT) {
Html::openMassiveActionsForm($massformid);
$massiveactionparams = $data['search']['massiveactionparams'];
$massiveactionparams['num_displayed'] = $end_display - $begin_display;
$massiveactionparams['fixed'] = false;
$massiveactionparams['is_deleted'] = $data['search']['is_deleted'];
$massiveactionparams['container'] = $massformid;
Html::showMassiveActions($massiveactionparams);
}
// Compute number of columns to display
// Add toview elements
$nbcols = count($data['data']['cols']);
if ($data['display_type'] == self::HTML_OUTPUT && $showmassiveactions) {
// HTML display - massive modif
$nbcols++;
//.........这里部分代码省略.........
示例2: showScripts
function showScripts(PluginDatabasesDatabase $database)
{
global $DB, $CFG_GLPI;
$instID = $database->fields['id'];
if (!$database->can($instID, "r")) {
return false;
}
$rand = mt_rand();
$canedit = $database->can($instID, 'w');
$query = "SELECT `glpi_plugin_databases_scripts`.`name` AS name,\n `glpi_plugin_databases_scripts`.`id`,\n `glpi_plugin_databases_scripts`.`plugin_databases_databases_id`,\n `glpi_plugin_databases_scripts`.`path`,\n `glpi_plugin_databases_scripts`.`comment`,\n `glpi_plugin_databases_scripttypes`.`name` AS type\n FROM `glpi_plugin_databases_scripts` ";
$query .= " LEFT JOIN `glpi_plugin_databases_scripttypes`\n ON (`glpi_plugin_databases_scripttypes`.`id` = `glpi_plugin_databases_scripts`.`plugin_databases_scripttypes_id`)";
$query .= " LEFT JOIN `glpi_plugin_databases_databases`\n ON (`glpi_plugin_databases_databases`.`id` = `glpi_plugin_databases_scripts`.`plugin_databases_databases_id`)";
$query .= " WHERE `glpi_plugin_databases_scripts`.`plugin_databases_databases_id` = '{$instID}'\n ORDER BY `glpi_plugin_databases_scripts`.`name`";
$result = $DB->query($query);
$number = $DB->numrows($result);
echo "<div class='spaced'>";
if ($canedit && $number) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array();
Html::showMassiveActions(__CLASS__, $massiveactionparams);
}
if ($number != 0) {
echo "<table class='tab_cadre_fixe'>";
echo "<tr>";
if ($canedit && $number) {
echo "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>";
}
echo "<th>" . __('Name') . "</th>";
echo "<th>" . __('Type') . "</th>";
echo "<th>" . __('Path', 'databases') . "</th>";
echo "<th>" . __('Comments') . "</th>";
echo "</tr>";
Session::initNavigateListItems($this->getType(), PluginDatabasesDatabase::getTypeName(2) . " = " . $database->fields["name"]);
$i = 0;
$row_num = 1;
while ($data = $DB->fetch_array($result)) {
Session::addToNavigateListItems($this->getType(), $data['id']);
$i++;
$row_num++;
echo "<tr class='tab_bg_1 center'>";
echo "<td width='10'>";
if ($canedit) {
Html::showMassiveActionCheckBox(__CLASS__, $data["id"]);
}
echo "</td>";
echo "<td class='center'>";
echo "<a href='" . $CFG_GLPI["root_doc"] . "/plugins/databases/front/script.form.php?id=" . $data["id"] . "&plugin_databases_databases_id=" . $data["plugin_databases_databases_id"] . "'>";
echo $data["name"];
if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) {
echo " (" . $data["id"] . ")";
}
echo "</a></td>";
echo "<td class='center'>" . $data["type"] . "</td>";
echo "<td class='left'>" . $data["path"] . "</td>";
echo "<td class='center'>" . nl2br($data["comment"]) . "</td>";
echo "</tr>";
}
echo "</table>";
}
if ($canedit && $number) {
$paramsma['ontop'] = false;
Html::showMassiveActions(__CLASS__, $paramsma);
Html::closeForm();
}
echo "</div>";
}
示例3: showForProblem
/**
* Print the HTML array for Items linked to a problem
*
* @param $problem Problem object
*
* @return Nothing (display)
**/
static function showForProblem(Problem $problem)
{
global $DB, $CFG_GLPI;
$instID = $problem->fields['id'];
if (!$problem->can($instID, READ)) {
return false;
}
$canedit = $problem->canEdit($instID);
$rand = mt_rand();
$query = "SELECT DISTINCT `itemtype`\n FROM `glpi_items_problems`\n WHERE `glpi_items_problems`.`problems_id` = '{$instID}'\n ORDER BY `itemtype`";
$result = $DB->query($query);
$number = $DB->numrows($result);
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='problemitem_form{$rand}' id='problemitem_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Add an item') . "</th></tr>";
echo "<tr class='tab_bg_1'><td>";
$types = array();
foreach ($problem->getAllTypesForHelpdesk() as $key => $val) {
$types[] = $key;
}
Dropdown::showSelectItemFromItemtypes(array('itemtypes' => $types, 'entity_restrict' => $problem->fields['is_recursive'] ? getSonsOf('glpi_entities', $problem->fields['entities_id']) : $problem->fields['entities_id']));
echo "</td><td class='center' width='30%'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "<input type='hidden' name='problems_id' value='{$instID}'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $number) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit && $number) {
$header_top .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_top .= "</th>";
$header_bottom .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_bottom .= "</th>";
}
$header_end .= "<th>" . __('Type') . "</th>";
$header_end .= "<th>" . __('Entity') . "</th>";
$header_end .= "<th>" . __('Name') . "</th>";
$header_end .= "<th>" . __('Serial number') . "</th>";
$header_end .= "<th>" . __('Inventory number') . "</th></tr>";
echo $header_begin . $header_top . $header_end;
$totalnb = 0;
for ($i = 0; $i < $number; $i++) {
$itemtype = $DB->result($result, $i, "itemtype");
if (!($item = getItemForItemtype($itemtype))) {
continue;
}
if ($item->canView()) {
$itemtable = getTableForItemType($itemtype);
$query = "SELECT `{$itemtable}`.*,\n `glpi_items_problems`.`id` AS IDD,\n `glpi_entities`.`id` AS entity\n FROM `glpi_items_problems`,\n `{$itemtable}`";
if ($itemtype != 'Entity') {
$query .= " LEFT JOIN `glpi_entities`\n ON (`{$itemtable}`.`entities_id`=`glpi_entities`.`id`) ";
}
$query .= " WHERE `{$itemtable}`.`id` = `glpi_items_problems`.`items_id`\n AND `glpi_items_problems`.`itemtype` = '{$itemtype}'\n AND `glpi_items_problems`.`problems_id` = '{$instID}'";
if ($item->maybeTemplate()) {
$query .= " AND `{$itemtable}`.`is_template` = '0'";
}
$query .= getEntitiesRestrictRequest(" AND", $itemtable, '', '', $item->maybeRecursive()) . "\n ORDER BY `glpi_entities`.`completename`, `{$itemtable}`.`name`";
$result_linked = $DB->query($query);
$nb = $DB->numrows($result_linked);
for ($prem = true; $data = $DB->fetch_assoc($result_linked); $prem = false) {
$name = $data["name"];
if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) {
$name = sprintf(__('%1$s (%2$s)'), $name, $data["id"]);
}
$link = $itemtype::getFormURLWithID($data['id']);
$namelink = "<a href=\"" . $link . "\">" . $name . "</a>";
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td width='10'>";
Html::showMassiveActionCheckBox(__CLASS__, $data["IDD"]);
echo "</td>";
}
if ($prem) {
$typename = $item->getTypeName($nb);
echo "<td class='center top' rowspan='{$nb}'>" . ($nb > 1 ? sprintf(__('%1$s: %2$s'), $typename, $nb) : $typename) . "</td>";
}
echo "<td class='center'>";
echo Dropdown::getDropdownName("glpi_entities", $data['entity']) . "</td>";
echo "<td class='center" . (isset($data['is_deleted']) && $data['is_deleted'] ? " tab_bg_2_2'" : "'");
//.........这里部分代码省略.........
示例4: showForProjectTask
/**
* Show tickets for a projecttask
*
* @param $projecttask ProjectTask object
**/
static function showForProjectTask(ProjectTask $projecttask)
{
global $DB, $CFG_GLPI;
$ID = $projecttask->getField('id');
if (!$projecttask->can($ID, READ)) {
return false;
}
$canedit = $projecttask->canEdit($ID);
$rand = mt_rand();
$query = "SELECT DISTINCT `glpi_projecttasks_tickets`.`id` AS linkID,\n `glpi_tickets`.*\n FROM `glpi_projecttasks_tickets`\n LEFT JOIN `glpi_tickets`\n ON (`glpi_projecttasks_tickets`.`tickets_id` = `glpi_tickets`.`id`)\n WHERE `glpi_projecttasks_tickets`.`projecttasks_id` = '{$ID}'\n ORDER BY `glpi_tickets`.`name`";
$result = $DB->query($query);
$tickets = array();
$used = array();
if ($numrows = $DB->numrows($result)) {
while ($data = $DB->fetch_assoc($result)) {
$tickets[$data['id']] = $data;
$used[$data['id']] = $data['id'];
}
}
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='projecttaskticket_form{$rand}' id='projecttaskticket_form{$rand}'\n method='post' action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='3'>" . __('Add a ticket') . "</th></tr>";
echo "<tr class='tab_bg_2'><td class='right'>";
echo "<input type='hidden' name='projecttasks_id' value='{$ID}'>";
$condition = "`glpi_tickets`.`status`\n NOT IN ('" . implode("', '", array_merge(Ticket::getSolvedStatusArray(), Ticket::getClosedStatusArray())) . "')";
Ticket::dropdown(array('used' => $used, 'entity' => $projecttask->getEntityID(), 'entity_sons' => $projecttask->isRecursive(), 'condition' => $condition, 'displaywith' => array('id')));
echo "</td><td width='20%'>";
echo "<a href='" . Toolbox::getItemTypeFormURL('Ticket') . "?_projecttasks_id={$ID}'>";
_e('Create a ticket from this task');
echo "</a>";
echo "</td><td class='center'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $numrows) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $numrows, 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
echo "<tr><th colspan='12'>" . Ticket::getTypeName($numrows) . "</th>";
echo "</tr>";
if ($numrows) {
Ticket::commonListHeader(Search::HTML_OUTPUT, 'mass' . __CLASS__ . $rand);
Session::initNavigateListItems('Ticket', sprintf(__('%1$s = %2$s'), ProjectTask::getTypeName(1), $projecttask->fields["name"]));
$i = 0;
foreach ($tickets as $data) {
Session::addToNavigateListItems('Ticket', $data["id"]);
Ticket::showShort($data['id'], array('followups' => false, 'row_num' => $i, 'type_for_massiveaction' => __CLASS__, 'id_for_massiveaction' => $data['linkID']));
$i++;
}
}
echo "</table>";
if ($canedit && $numrows) {
$massiveactionparams['ontop'] = false;
Html::showMassiveActions($massiveactionparams);
Html::closeForm();
}
echo "</div>";
}
示例5: showForItem
//.........这里部分代码省略.........
$instantiation = new $portType();
$instantiation->getInstantiationHTMLTableHeaders($t_group, $c_instant, $c_network, NULL, $table_options);
unset($instantiation);
}
}
if ($display_options['internet'] && !$display_options['characteristics']) {
NetworkName::getHTMLTableHeader(__CLASS__, $t_group, $c_network, NULL, $table_options);
}
if ($itemtype == 'NetworkPort') {
switch ($portType) {
case 'NetworkPortAlias':
$search_table = 'glpi_networkportaliases';
$search_request = "`networkports_id_alias`='{$items_id}'";
break;
case 'NetworkPortAggregate':
$search_table = 'glpi_networkportaggregates';
$search_request = "`networkports_id_list` like '%\"{$items_id}\"%'";
break;
}
$query = "SELECT `networkports_id` AS id\n FROM `{$search_table}`\n WHERE {$search_request}";
} else {
$query = "SELECT `id`\n FROM `glpi_networkports`\n WHERE `items_id` = '{$items_id}'\n AND `itemtype` = '{$itemtype}'\n AND `instantiation_type` = '{$portType}'\n AND `is_deleted` = '0'\n ORDER BY `name`,\n `logical_number`";
}
if ($result = $DB->query($query)) {
echo "<div class='spaced'>";
$number_port = $DB->numrows($result);
if ($number_port != 0) {
$is_active_network_port = true;
$save_canedit = $canedit;
if (!empty($portType)) {
$name = sprintf(__('%1$s (%2$s)'), self::getTypeName($number_port), call_user_func(array($portType, 'getTypeName')));
$name = sprintf(__('%1$s: %2$s'), $name, $number_port);
} else {
$name = __('Network ports waiting for manual migration');
$canedit = false;
}
while ($devid = $DB->fetch_row($result)) {
$t_row = $t_group->createRow();
$netport->getFromDB(current($devid));
// No massive action for migration ports
if ($withtemplate != 2 && $canedit && !empty($portType)) {
$ce_checkbox = $t_row->addCell($c_checkbox, "<input type='checkbox' name='item[" . $netport->fields["id"] . "]' value='1'>");
} else {
$ce_checkbox = NULL;
}
$content = "<span class='b'>";
// Display link based on default rights
if ($save_canedit && $withtemplate != 2) {
if (!empty($portType)) {
$content .= "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/networkport.form.php?id=" . $netport->fields["id"] . "\">";
} else {
$content .= "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/networkportmigration.form.php?id=" . $netport->fields["id"] . "\">";
}
}
$content .= $netport->fields["logical_number"];
if ($canedit && $withtemplate != 2) {
$content .= "</a>";
}
$content .= "</span>";
$content .= Html::showToolTip($netport->fields['comment'], array('display' => false));
$t_row->addCell($c_number, $content);
$value = $netport->fields["name"];
$t_row->addCell($c_name, $value, NULL, $netport);
if ($table_options['display_isDynamic']) {
$t_row->addCell($c_dynamic, Dropdown::getYesNo($netport->fields['is_dynamic']));
}
$instant_cell = NULL;
if ($display_options['characteristics']) {
$instantiation = $netport->getInstantiation();
if ($instantiation !== false) {
$instantiation->getInstantiationHTMLTable($netport, $t_row, NULL, $table_options);
unset($instantiation);
}
} else {
if ($display_options['internet']) {
NetworkName::getHTMLTableCellsForItem($t_row, $netport, NULL, $table_options);
}
}
}
$canedit = $save_canedit;
}
echo "</div>";
}
}
if ($is_active_network_port && $showmassiveactions) {
$massiveactionparams = array('num_displayed' => $number_port, 'check_itemtype' => $itemtype, 'check_items_id' => $items_id);
Html::showMassiveActions('NetworkPort', $massiveactionparams);
}
$table->display(array('display_thead' => false, 'display_tfoot' => false));
unset($table);
if (!$is_active_network_port) {
echo "<table class='tab_cadre_fixe'><tr><th>" . __('No network port found') . "</th></tr>";
echo "</table>";
}
if ($showmassiveactions) {
$massiveactionparams['ontop'] = false;
Html::showMassiveActions('NetworkPort', $massiveactionparams);
Html::closeForm();
}
}
示例6: showForSoftware
/**
* Show Licenses of a software
*
* @param $software Software object
*
* @return nothing
**/
static function showForSoftware(Software $software)
{
global $DB, $CFG_GLPI;
$softwares_id = $software->getField('id');
$license = new self();
$computer = new Computer();
if (!$software->can($softwares_id, READ)) {
return false;
}
$columns = array('name' => __('Name'), 'entity' => __('Entity'), 'serial' => __('Serial number'), 'number' => _x('quantity', 'Number'), '_affected' => __('Affected computers'), 'typename' => __('Type'), 'buyname' => __('Purchase version'), 'usename' => __('Version in use'), 'expire' => __('Expiration'));
if (!$software->isRecursive()) {
unset($columns['entity']);
}
if (isset($_GET["start"])) {
$start = $_GET["start"];
} else {
$start = 0;
}
if (isset($_GET["order"]) && $_GET["order"] == "DESC") {
$order = "DESC";
} else {
$order = "ASC";
}
if (isset($_GET["sort"]) && !empty($_GET["sort"]) && isset($columns[$_GET["sort"]])) {
$sort = "`" . $_GET["sort"] . "`";
} else {
$sort = "`entity` {$order}, `name`";
}
// Righ type is enough. Can add a License on a software we have Read access
$canedit = Software::canUpdate();
$showmassiveactions = $canedit;
// Total Number of events
$number = countElementsInTable("glpi_softwarelicenses", "glpi_softwarelicenses.softwares_id = {$softwares_id} " . getEntitiesRestrictRequest('AND', 'glpi_softwarelicenses', '', '', true));
echo "<div class='spaced'>";
Session::initNavigateListItems('SoftwareLicense', sprintf(__('%1$s = %2$s'), Software::getTypeName(1), $software->getName()));
if ($canedit) {
echo "<div class='center firstbloc'>";
echo "<a class='vsubmit' href='softwarelicense.form.php?softwares_id={$softwares_id}'>" . _x('button', 'Add a license') . "</a>";
echo "</div>";
}
$rand = mt_rand();
$query = "SELECT `glpi_softwarelicenses`.*,\n `buyvers`.`name` AS buyname,\n `usevers`.`name` AS usename,\n `glpi_entities`.`completename` AS entity,\n `glpi_softwarelicensetypes`.`name` AS typename\n FROM `glpi_softwarelicenses`\n LEFT JOIN `glpi_softwareversions` AS buyvers\n ON (`buyvers`.`id` = `glpi_softwarelicenses`.`softwareversions_id_buy`)\n LEFT JOIN `glpi_softwareversions` AS usevers\n ON (`usevers`.`id` = `glpi_softwarelicenses`.`softwareversions_id_use`)\n LEFT JOIN `glpi_entities`\n ON (`glpi_entities`.`id` = `glpi_softwarelicenses`.`entities_id`)\n LEFT JOIN `glpi_softwarelicensetypes`\n ON (`glpi_softwarelicensetypes`.`id`\n = `glpi_softwarelicenses`.`softwarelicensetypes_id`)\n WHERE (`glpi_softwarelicenses`.`softwares_id` = '{$softwares_id}') " . getEntitiesRestrictRequest('AND', 'glpi_softwarelicenses', '', '', true) . "\n ORDER BY {$sort} {$order}\n LIMIT " . intval($start) . "," . intval($_SESSION['glpilist_limit']);
if ($result = $DB->query($query)) {
if ($num_displayed = $DB->numrows($result)) {
// Display the pager
Html::printAjaxPager(self::getTypeName(Session::getPluralNumber()), $start, $number);
if ($showmassiveactions) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $num_displayed, 'container' => 'mass' . __CLASS__ . $rand, 'extraparams' => array('options' => array('glpi_softwareversions.name' => array('condition' => "`glpi_softwareversions`.`softwares_id`\n = {$softwares_id}"), 'glpi_softwarelicenses.name' => array('itemlink_as_string' => true))));
Html::showMassiveActions($massiveactionparams);
}
$sort_img = "<img src=\"" . $CFG_GLPI["root_doc"] . "/pics/" . ($order == "DESC" ? "puce-down.png" : "puce-up.png") . "\" alt='' title=''>";
$sort_img = "<img src=\"" . $CFG_GLPI["root_doc"] . "/pics/" . ($order == "DESC" ? "puce-down.png" : "puce-up.png") . "\" alt='' title=''>";
echo "<table class='tab_cadre_fixehov'>";
$header_begin = "<tr><th>";
$header_top = Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_bottom = Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_end = '';
foreach ($columns as $key => $val) {
// Non order column
if ($key[0] == '_') {
$header_end .= "<th>{$val}</th>";
} else {
$header_end .= "<th>" . ($sort == "`{$key}`" ? $sort_img : "") . "<a href='javascript:reloadTab(\"sort={$key}&order=" . ($order == "ASC" ? "DESC" : "ASC") . "&start=0\");'>{$val}</a></th>";
}
}
$header_end .= "</tr>\n";
echo $header_begin . $header_top . $header_end;
$tot_assoc = 0;
for ($tot = 0; $data = $DB->fetch_assoc($result);) {
Session::addToNavigateListItems('SoftwareLicense', $data['id']);
$expired = true;
if (is_null($data['expire']) || $data['expire'] > date('Y-m-d')) {
$expired = false;
}
echo "<tr class='tab_bg_2" . ($expired ? '_2' : '') . "'>";
if ($license->canEdit($data['id'])) {
echo "<td>" . Html::getMassiveActionCheckBox(__CLASS__, $data["id"]) . "</td>";
} else {
echo "<td> </td>";
}
echo "<td><a href='softwarelicense.form.php?id=" . $data['id'] . "'>" . $data['name'] . (empty($data['name']) ? "(" . $data['id'] . ")" : "") . "</a></td>";
if (isset($columns['entity'])) {
echo "<td>";
echo $data['entity'];
echo "</td>";
}
echo "<td>" . $data['serial'] . "</td>";
echo "<td class='numeric'>" . ($data['number'] > 0 ? $data['number'] : __('Unlimited')) . "</td>";
$nb_assoc = Computer_SoftwareLicense::countForLicense($data['id']);
$tot_assoc += $nb_assoc;
$color = $data['is_valid'] ? 'green' : 'red';
echo "<td class='numeric {$color}'>" . $nb_assoc . "</td>";
//.........这里部分代码省略.........
示例7: showForTicketTemplate
/**
* Print the mandatory fields
*
* @since version 0.83
*
* @param $tt Ticket Template
* @param $withtemplate boolean Template or basic item (default '')
*
* @return Nothing (call to classes members)
**/
static function showForTicketTemplate(TicketTemplate $tt, $withtemplate = '')
{
global $DB;
$ID = $tt->fields['id'];
if (!$tt->getFromDB($ID) || !$tt->can($ID, READ)) {
return false;
}
$canedit = $tt->canEdit($ID);
$ttm = new self();
$used = $ttm->getMandatoryFields($ID);
$fields = $tt->getAllowedFieldsNames(true);
$simplified_fields = $tt->getSimplifiedInterfaceFields();
$both_interfaces = sprintf(__('%1$s + %2$s'), __('Simplified interface'), __('Standard interface'));
$rand = mt_rand();
$query = "SELECT `glpi_tickettemplatemandatoryfields`.*\n FROM `glpi_tickettemplatemandatoryfields`\n WHERE (`tickettemplates_id` = '{$ID}')";
if ($result = $DB->query($query)) {
$mandatoryfields = array();
$used = array();
if ($numrows = $DB->numrows($result)) {
while ($data = $DB->fetch_assoc($result)) {
$mandatoryfields[$data['id']] = $data;
$used[$data['num']] = $data['num'];
}
}
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='changeproblem_form{$rand}' id='changeproblem_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Add a mandatory field') . "</th></tr>";
echo "<tr class='tab_bg_2'><td class='right'>";
echo "<input type='hidden' name='tickettemplates_id' value='{$ID}'>";
$select_fields = $fields;
foreach ($select_fields as $key => $val) {
if (in_array($key, $simplified_fields)) {
$select_fields[$key] = sprintf(__('%1$s (%2$s)'), $val, $both_interfaces);
} else {
$select_fields[$key] = sprintf(__('%1$s (%2$s)'), $val, __('Standard interface'));
}
}
Dropdown::showFromArray('num', $select_fields, array('used' => $used));
echo "</td><td class='center'>";
echo " <input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $numrows) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $numrows, 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
echo "<tr class='noHover'><th colspan='3'>";
echo self::getTypeName($DB->numrows($result));
echo "</th></tr>";
if ($numrows) {
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit) {
$header_top .= "<th width='10'>";
$header_top .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>";
$header_bottom .= "<th width='10'>";
$header_bottom .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>";
}
$header_end .= "<th>" . __('Name') . "</th>";
$header_end .= "<th>" . __("Profile's interface") . "</th>";
$header_end .= "</tr>";
echo $header_begin . $header_top . $header_end;
foreach ($mandatoryfields as $data) {
echo "<tr class='tab_bg_2'>";
if ($canedit) {
echo "<td>" . Html::getMassiveActionCheckBox(__CLASS__, $data["id"]) . "</td>";
}
echo "<td>" . $fields[$data['num']] . "</td>";
echo "<td>";
if (in_array($data['num'], $simplified_fields)) {
echo $both_interfaces;
} else {
_e('Standard interface');
}
echo "</td>";
echo "</tr>";
}
echo $header_begin . $header_bottom . $header_end;
} else {
echo "<tr><th colspan='2'>" . __('No item found') . "</th></tr>";
//.........这里部分代码省略.........
示例8: showMinimalList
//.........这里部分代码省略.........
// Pager
if ($output_type == Search::HTML_OUTPUT) {
// HTML display - massive modif
$search_config = "";
if ($item->canCreate() && $canedit) {
$tmp = " class='pointer' onClick=\"var w = window.open('" . $CFG_GLPI["root_doc"] . "/front/popup.php?popup=search_config&itemtype=" . $itemtype . "' ,'glpipopup', " . "'height=400, width=1000, top=100, left=100, scrollbars=yes' ); w.focus();\"";
$search_config = "<img alt='" . __('Select default items to show') . "' title='" . __('Select default items to show') . "' src='" . $CFG_GLPI["root_doc"] . "/pics/options_search.png' ";
$search_config .= $tmp . ">";
}
//echo Search::showHeaderItem($output_type,$search_config,$header_num,"",0,$p['order']);
}
// Pager
if ($output_type == Search::HTML_OUTPUT) {
Html::printAjaxPager(self::getTypeName(2), $p['start'], $numrows, $search_config);
echo "<br>";
}
// Define begin and end var for loop
// Search case
$begin_display = $p['start'];
$end_display = $p['start'] + $LIST_LIMIT;
// Export All case
if ($p['export_all']) {
$begin_display = 0;
$end_display = $numrows;
}
//massive action
$sel = "";
if (isset($_GET["select"]) && $_GET["select"] == "all") {
$sel = "checked";
}
if ($item->canCreate() && $canedit && $output_type == Search::HTML_OUTPUT && $p['withtemplate'] != 2) {
Html::openMassiveActionsForm('massform' . $itemtype);
$massiveactionparams = array('num_displayed' => $end_display - $begin_display, 'fixed' => true, 'is_deleted' => $p['is_deleted']);
Html::showMassiveActions($itemtype, $massiveactionparams);
}
// Add toview elements
$nbcols = $toview_count;
if ($output_type == Search::HTML_OUTPUT) {
// HTML display - massive modif
$nbcols++;
}
// Display List Header
echo Search::showHeader($output_type, $end_display - $begin_display + 1, $nbcols, 1);
$header_num = 1;
// Display column Headers for toview items
$headers_line = '';
$headers_line_top = '';
$headers_line_bottom = '';
echo Search::showNewLine($output_type);
if ($output_type == Search::HTML_OUTPUT && $item->canCreate() && $canedit) {
// HTML display - massive modif
$headers_line_top .= Search::showHeaderItem($output_type, Html::getCheckAllAsCheckbox('massform' . $itemtype), $header_num, "", 0, $p['order']);
$headers_line_bottom .= Search::showHeaderItem($output_type, Html::getCheckAllAsCheckbox('massform' . $itemtype), $header_num, "", 0, $p['order']);
}
// Display column Headers for toview items
foreach ($toview as $key => $val) {
$linkto = '';
if (!isset($searchopt[$itemtype][$val]['nosort']) || !$searchopt[$itemtype][$val]['nosort']) {
$linkto = "javascript:reloadTab('sort=" . $val . "&order=" . ($p['order'] == "ASC" ? "DESC" : "ASC") . "&start=" . $p['start'] . $globallinkto . "')";
}
$headers_line .= Search::showHeaderItem($output_type, $searchopt[$itemtype][$val]["name"], $header_num, $linkto, $p['sort'] == $val, $p['order']);
}
// End Line for column headers
$headers_line .= Search::showEndLine($output_type);
$headers_line_top .= $headers_line;
$headers_line_bottom .= $headers_line;
示例9: showSummary
/**
* @param $template NotificationTemplate object
* @param $options array
**/
function showSummary(NotificationTemplate $template, $options = array())
{
global $DB, $CFG_GLPI;
$nID = $template->getField('id');
$canedit = Config::canUpdate();
if ($canedit) {
echo "<div class='center'>" . "<a class='vsubmit' href='" . Toolbox::getItemTypeFormURL('NotificationTemplateTranslation') . "?notificationtemplates_id=" . $nID . "'>" . __('Add a new translation') . "</a></div><br>";
}
echo "<div class='center' id='tabsbody'>";
Session::initNavigateListItems('NotificationTemplateTranslation', sprintf(__('%1$s = %2$s'), NotificationTemplate::getTypeName(1), $template->getName()));
if ($canedit) {
$rand = mt_rand();
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<th width='10'>";
Html::checkAllAsCheckbox('mass' . __CLASS__ . $rand);
echo "</th>";
}
echo "<th>" . __('Language') . "</th></tr>";
foreach ($DB->request('glpi_notificationtemplatetranslations', array('notificationtemplates_id' => $nID)) as $data) {
if ($this->getFromDB($data['id'])) {
Session::addToNavigateListItems('NotificationTemplateTranslation', $data['id']);
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td class='center'>";
Html::showMassiveActionCheckBox(__CLASS__, $data["id"]);
echo "</td>";
}
echo "<td class='center'>";
echo "<a href='" . Toolbox::getItemTypeFormURL('NotificationTemplateTranslation') . "?id=" . $data['id'] . "&notificationtemplates_id=" . $nID . "'>";
if ($data['language'] != '') {
echo $CFG_GLPI['languages'][$data['language']][0];
} else {
_e('Default translation');
}
echo "</a></td></tr>";
}
}
echo "</table>";
if ($canedit) {
$massiveactionparams['ontop'] = false;
Html::showMassiveActions($massiveactionparams);
Html::closeForm();
}
echo "</div>";
}
示例10: showMinimalList
//.........这里部分代码省略.........
// Pager
if ($output_type == Search::HTML_OUTPUT) {
// HTML display - massive modif
$search_config = "";
if ($item->canCreate() && $canedit) {
$tmp = " class='pointer' onClick=\"var w = window.open('" . $CFG_GLPI["root_doc"] . "/front/popup.php?popup=search_config&itemtype=" . $itemtype . "' ,'glpipopup', " . "'height=400, width=1000, top=100, left=100, scrollbars=yes' ); w.focus();\"";
$search_config = "<img alt='" . __('Select default items to show') . "' title='" . __('Select default items to show') . "' src='" . $CFG_GLPI["root_doc"] . "/pics/options_search.png' ";
$search_config .= $tmp . ">";
}
//echo Search::showHeaderItem($output_type,$search_config,$header_num,"",0,$p['order']);
}
// Pager
if ($output_type == Search::HTML_OUTPUT) {
Html::printPager($p['start'], $numrows, $target, $parameters, $itemtype, 0, $search_config);
echo "<br>";
}
// Define begin and end var for loop
// Search case
$begin_display = $p['start'];
$end_display = $p['start'] + $LIST_LIMIT;
// Export All case
if ($p['export_all']) {
$begin_display = 0;
$end_display = $numrows;
}
//massive action
$sel = "";
if (isset($_GET["select"]) && $_GET["select"] == "all") {
$sel = "checked";
}
if ($item->canCreate() && $canedit && $output_type == Search::HTML_OUTPUT && $p['withtemplate'] != 2) {
Html::openMassiveActionsForm('massform' . $itemtype);
$massiveactionparams = array('num_displayed' => $end_display - $begin_display, 'fixed' => false, 'is_deleted' => $p['is_deleted']);
Html::showMassiveActions("PluginResourcesDirectory", $massiveactionparams);
}
// Add toview elements
$nbcols = $toview_count;
if ($output_type == Search::HTML_OUTPUT) {
// HTML display - massive modif
$nbcols++;
}
// Display List Header
echo Search::showHeader($output_type, $end_display - $begin_display + 1, $nbcols);
$header_num = 1;
// Display column Headers for toview items
$headers_line = '';
$headers_line_top = '';
$headers_line_bottom = '';
echo Search::showNewLine($output_type);
if ($output_type == Search::HTML_OUTPUT && $item->canCreate() && $canedit) {
// HTML display - massive modif
$headers_line_top .= Search::showHeaderItem($output_type, Html::getCheckAllAsCheckbox('massform' . $itemtype), $header_num, "", 0, $p['order']);
$headers_line_bottom .= Search::showHeaderItem($output_type, Html::getCheckAllAsCheckbox('massform' . $itemtype), $header_num, "", 0, $p['order']);
}
// Display column Headers for toview items
foreach ($toview as $key => $val) {
$linkto = '';
if (!isset($searchopt["PluginResourcesDirectory"][$val]['nosort']) || !$searchopt["PluginResourcesDirectory"][$val]['nosort']) {
$linkto = "javascript:reloadTab('sort=" . $val . "&order=" . ($p['order'] == "ASC" ? "DESC" : "ASC") . "&start=" . $p['start'] . $globallinkto . "')";
}
$headers_line .= Search::showHeaderItem($output_type, $searchopt["PluginResourcesDirectory"][$val]["name"], $header_num, $linkto, $p['sort'] == $val, $p['order']);
}
// End Line for column headers
$headers_line .= Search::showEndLine($output_type);
$headers_line_top .= $headers_line;
$headers_line_bottom .= $headers_line;
示例11: showForNetworkPort
/**
* @param $port NetworkPort object
**/
static function showForNetworkPort(NetworkPort $port)
{
global $DB, $CFG_GLPI;
$ID = $port->getID();
if (!$port->can($ID, READ)) {
return false;
}
$canedit = $port->canEdit($ID);
$rand = mt_rand();
$query = "SELECT `glpi_networkports_vlans`.id as assocID,\n `glpi_networkports_vlans`.tagged ,\n `glpi_vlans`.*\n FROM `glpi_networkports_vlans`\n LEFT JOIN `glpi_vlans`\n ON (`glpi_networkports_vlans`.`vlans_id` = `glpi_vlans`.`id`)\n WHERE `networkports_id` = '{$ID}'";
$result = $DB->query($query);
$vlans = array();
$used = array();
if ($number = $DB->numrows($result)) {
while ($line = $DB->fetch_assoc($result)) {
$used[$line["id"]] = $line["id"];
$vlans[$line["assocID"]] = $line;
}
}
if ($canedit) {
echo "<div class='firstbloc'>\n";
echo "<form method='post' action='" . static::getFormURL() . "'>\n";
echo "<table class='tab_cadre_fixe'>\n";
echo "<tr><th colspan='4'>" . __('Associate a VLAN') . "</th></tr>";
echo "<tr class='tab_bg_1'><td class='right'>";
echo "<input type='hidden' name='networkports_id' value='{$ID}'>";
Vlan::dropdown(array('used' => $used));
echo "</td>";
echo "<td class='right'>" . __('Tagged') . "</td>";
echo "<td class='left'><input type='checkbox' name='tagged' value='1'></td>";
echo "<td><input type='submit' name='add' value='" . _sx('button', 'Associate') . "' class='submit'>";
echo "</td></tr>\n";
echo "</table>\n";
Html::closeForm();
echo "</div>\n";
}
echo "<div class='spaced'>";
if ($canedit && $number) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $number, 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit && $number) {
$header_top .= "<th width='10'>";
$header_top .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>";
$header_bottom .= "<th width='10'>";
$header_bottom .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>";
}
$header_end .= "<th>" . __('Name') . "</th>";
$header_end .= "<th>" . __('Entity') . "</th>";
$header_end .= "<th>" . __('Tagged') . "</th>";
$header_end .= "<th>" . __('ID TAG') . "</th>";
$header_end .= "</tr>";
echo $header_begin . $header_top . $header_end;
$used = array();
foreach ($vlans as $data) {
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td>";
Html::showMassiveActionCheckBox(__CLASS__, $data["assocID"]);
echo "</td>";
}
$name = $data["name"];
if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) {
$name = sprintf(__('%1$s (%2$s)'), $name, $data["id"]);
}
echo "<td class='center b'>\n <a href='" . $CFG_GLPI["root_doc"] . "/front/vlan.form.php?id=" . $data["id"] . "'>" . $name . "</a>";
echo "</td>";
echo "<td class='center'>" . Dropdown::getDropdownName("glpi_entities", $data["entities_id"]);
echo "</td><td class='center'>" . Dropdown::getYesNo($data["tagged"]) . "</td>";
echo "<td class='numeric'>" . $data["tag"] . "</td>";
echo "</tr>";
}
if ($number) {
echo $header_begin . $header_top . $header_end;
}
echo "</table>";
if ($canedit && $number) {
$massiveactionparams['ontop'] = false;
Html::showMassiveActions($massiveactionparams);
Html::closeForm();
}
echo "</div>";
}
示例12: showForCalendar
/**
* Show holidays for a calendar
*
* @param $calendar Calendar object
**/
static function showForCalendar(Calendar $calendar)
{
global $DB, $CFG_GLPI;
$ID = $calendar->getField('id');
if (!$calendar->can($ID, 'r')) {
return false;
}
$canedit = $calendar->can($ID, 'w');
$rand = mt_rand();
$query = "SELECT DISTINCT `glpi_calendars_holidays`.`id` AS linkID,\n `glpi_holidays`.*\n FROM `glpi_calendars_holidays`\n LEFT JOIN `glpi_holidays`\n ON (`glpi_calendars_holidays`.`holidays_id` = `glpi_holidays`.`id`)\n WHERE `glpi_calendars_holidays`.`calendars_id` = '{$ID}'\n ORDER BY `glpi_holidays`.`name`";
$result = $DB->query($query);
$holidays = array();
$used = array();
if ($numrows = $DB->numrows($result)) {
while ($data = $DB->fetch_assoc($result)) {
$holidays[$data['id']] = $data;
$used[$data['id']] = $data['id'];
}
}
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='calendarsegment_form{$rand}' id='calendarsegment_form{$rand}' method='post'\n action='";
echo Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><th colspan='7'>" . __('Add a close time') . "</tr>";
echo "<tr class='tab_bg_2'><td class='right' colspan='4'>";
echo "<input type='hidden' name='calendars_id' value='{$ID}'>";
Holiday::dropdown(array('used' => $used, 'entity' => $calendar->fields["entities_id"]));
echo "</td><td class='center'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $numrows) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$paramsma = array('num_displayed' => $numrows);
Html::showMassiveActions(__CLASS__, $paramsma);
}
echo "<table class='tab_cadre_fixehov'>";
echo "<tr>";
if ($canedit && $numrows) {
echo "<th width='10'>";
Html::checkAllAsCheckbox('mass' . __CLASS__ . $rand);
echo "</th>";
}
echo "<th>" . __('Name') . "</th>";
echo "<th>" . __('Start') . "</th>";
echo "<th>" . __('End') . "</th>";
echo "<th>" . __('Recurrent') . "</th>";
echo "</tr>";
$used = array();
if ($numrows) {
Session::initNavigateListItems('Holiday', sprintf(__('%1$s = %2$s'), Calendar::getTypeName(1), $calendar->fields["name"]));
foreach ($holidays as $data) {
Session::addToNavigateListItems('Holiday', $data["id"]);
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td>";
Html::showMassiveActionCheckBox(__CLASS__, $data["linkID"]);
echo "</td>";
}
echo "<td><a href='" . Toolbox::getItemTypeFormURL('Holiday') . "?id=" . $data['id'] . "'>" . $data["name"] . "</a></td>";
echo "<td>" . Html::convDate($data["begin_date"]) . "</td>";
echo "<td>" . Html::convDate($data["end_date"]) . "</td>";
echo "<td>" . Dropdown::getYesNo($data["is_perpetual"]) . "</td>";
echo "</tr>";
}
}
echo "</table>";
if ($canedit && $numrows) {
$paramsma['ontop'] = false;
Html::showMassiveActions(__CLASS__, $paramsma);
Html::closeForm();
}
echo "</div>";
}
示例13: showVisibility
/**
* Show visibility config for a knowbaseitem
*
* @since version 0.83
**/
function showVisibility()
{
global $DB, $CFG_GLPI;
$ID = $this->fields['id'];
$canedit = $this->can($ID, UPDATE);
echo "<div class='center'>";
$rand = mt_rand();
$nb = count($this->users) + count($this->groups) + count($this->profiles) + count($this->entities);
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='knowbaseitemvisibility_form{$rand}' id='knowbaseitemvisibility_form{$rand}' ";
echo " method='post' action='" . Toolbox::getItemTypeFormURL('KnowbaseItem') . "'>";
echo "<input type='hidden' name='knowbaseitems_id' value='{$ID}'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><th colspan='4'>" . __('Add a target') . "</th></tr>";
echo "<tr class='tab_bg_2'><td width='100px'>";
$types = array('Entity', 'Group', 'Profile', 'User');
$addrand = Dropdown::showItemTypes('_type', $types);
$params = array('type' => '__VALUE__', 'right' => $this->getField('is_faq') ? 'faq' : 'knowbase');
Ajax::updateItemOnSelectEvent("dropdown__type" . $addrand, "visibility{$rand}", $CFG_GLPI["root_doc"] . "/ajax/visibility.php", $params);
echo "</td>";
echo "<td><span id='visibility{$rand}'></span>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $nb) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $nb, 'container' => 'mass' . __CLASS__ . $rand, 'specific_actions' => array('delete' => _x('button', 'Delete permanently')));
if ($this->fields['users_id'] != Session::getLoginUserID()) {
$massiveactionparams['confirm'] = __('Caution! You are not the author of this element. Delete targets can result in loss of access to that element.');
}
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit && $nb) {
$header_begin .= "<th width='10'>";
$header_top .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_bottom .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_end .= "</th>";
}
$header_end .= "<th>" . __('Type') . "</th>";
$header_end .= "<th>" . _n('Recipient', 'Recipients', Session::getPluralNumber()) . "</th>";
$header_end .= "</tr>";
echo $header_begin . $header_top . $header_end;
// Users
if (count($this->users)) {
foreach ($this->users as $key => $val) {
foreach ($val as $data) {
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td>";
Html::showMassiveActionCheckBox('KnowbaseItem_User', $data["id"]);
echo "</td>";
}
echo "<td>" . __('User') . "</td>";
echo "<td>" . getUserName($data['users_id']) . "</td>";
echo "</tr>";
}
}
}
// Groups
if (count($this->groups)) {
foreach ($this->groups as $key => $val) {
foreach ($val as $data) {
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td>";
Html::showMassiveActionCheckBox('Group_KnowbaseItem', $data["id"]);
echo "</td>";
}
echo "<td>" . __('Group') . "</td>";
echo "<td>";
$names = Dropdown::getDropdownName('glpi_groups', $data['groups_id'], 1);
$groupname = sprintf(__('%1$s %2$s'), $names["name"], Html::showToolTip($names["comment"], array('display' => false)));
if ($data['entities_id'] >= 0) {
$groupname = sprintf(__('%1$s / %2$s'), $groupname, Dropdown::getDropdownName('glpi_entities', $data['entities_id']));
if ($data['is_recursive']) {
$groupname = sprintf(__('%1$s %2$s'), $groupname, "<span class='b'>(" . __('R') . ")</span>");
}
}
echo $groupname;
echo "</td>";
echo "</tr>";
}
}
}
// Entity
if (count($this->entities)) {
//.........这里部分代码省略.........
示例14: showForGroup
/**
* Show users of a group
*
* @since version 0.83
*
* @param $group Group object: the group
**/
static function showForGroup(Group $group)
{
global $DB, $CFG_GLPI;
$ID = $group->getID();
if (!User::canView() || !$group->can($ID, READ)) {
return false;
}
// Have right to manage members
$canedit = self::canUpdate();
$rand = mt_rand();
$user = new User();
$crit = Session::getSavedOption(__CLASS__, 'criterion', '');
$tree = Session::getSavedOption(__CLASS__, 'tree', 0);
$used = array();
$ids = array();
// Retrieve member list
$entityrestrict = self::getDataForGroup($group, $used, $ids, $crit, $tree);
if ($canedit) {
self::showAddUserForm($group, $ids, $entityrestrict, $crit);
}
// Mini Search engine
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><th colspan='2'>" . User::getTypeName(Session::getPluralNumber()) . "</th></tr>";
echo "<tr class='tab_bg_1'><td class='center'>";
echo _n('Criterion', 'Criteria', 1) . " ";
$crits = array('' => Dropdown::EMPTY_VALUE, 'is_manager' => __('Manager'), 'is_userdelegate' => __('Delegatee'));
Dropdown::showFromArray('crit', $crits, array('value' => $crit, 'on_change' => 'reloadTab("start=0&criterion="+this.value)'));
if ($group->haveChildren()) {
echo "</td><td class='center'>" . __('Child groups');
Dropdown::showYesNo('tree', $tree, -1, array('on_change' => 'reloadTab("start=0&tree="+this.value)'));
} else {
$tree = 0;
}
echo "</td></tr></table>";
$number = count($used);
$start = isset($_GET['start']) ? intval($_GET['start']) : 0;
if ($start >= $number) {
$start = 0;
}
// Display results
if ($number) {
echo "<div class='spaced'>";
Html::printAjaxPager(sprintf(__('%1$s (%2$s)'), User::getTypeName(Session::getPluralNumber()), __('D=Dynamic')), $start, $number);
Session::initNavigateListItems('User', sprintf(__('%1$s = %2$s'), Group::getTypeName(1), $group->getName()));
if ($canedit) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => min($number - $start, $_SESSION['glpilist_limit']), 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov table-striped table-hover'>";
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit) {
$header_begin .= "<th width='10'>";
$header_top .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_bottom .= Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_end .= "</th>";
}
$header_end .= "<th>" . User::getTypeName(1) . "</th>";
if ($tree) {
$header_end .= "<th>" . Group::getTypeName(1) . "</th>";
}
$header_end .= "<th>" . __('Dynamic') . "</th>";
$header_end .= "<th>" . __('Manager') . "</th>";
$header_end .= "<th>" . __('Delegatee') . "</th></tr>";
echo $header_begin . $header_top . $header_end;
$tmpgrp = new Group();
for ($i = $start, $j = 0; $i < $number && $j < $_SESSION['glpilist_limit']; $i++, $j++) {
$data = $used[$i];
$user->getFromDB($data["id"]);
Session::addToNavigateListItems('User', $data["id"]);
echo "\n<tr class='tab_bg_" . ($user->isDeleted() ? '1_2' : '1') . "'>";
if ($canedit) {
echo "<td width='10'>";
Html::showMassiveActionCheckBox(__CLASS__, $data["linkID"]);
echo "</td>";
}
echo "<td>" . $user->getLink();
if ($tree) {
echo "</td><td>";
if ($tmpgrp->getFromDB($data['groups_id'])) {
echo $tmpgrp->getLink(array('comments' => true));
}
}
echo "</td><td class='center'>";
if ($data['is_dynamic']) {
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/ok.png' width='14' height='14' alt=\"" . __('Dynamic') . "\">";
}
echo "</td><td class='center'>";
if ($data['is_manager']) {
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/ok.png' width='14' height='14' alt=\"" . __('Manager') . "\">";
//.........这里部分代码省略.........
示例15: showForTicket
/**
* Show changes for a ticket
*
* @param $ticket Ticket object
**/
static function showForTicket(Ticket $ticket)
{
global $DB, $CFG_GLPI;
$ID = $ticket->getField('id');
if (!$ticket->can($ID, READ)) {
return false;
}
$canedit = $ticket->canEdit($ID);
$rand = mt_rand();
$query = "SELECT DISTINCT `glpi_changes_tickets`.`id` AS linkID,\n `glpi_changes`.*\n FROM `glpi_changes_tickets`\n LEFT JOIN `glpi_changes`\n ON (`glpi_changes_tickets`.`changes_id` = `glpi_changes`.`id`)\n WHERE `glpi_changes_tickets`.`tickets_id` = '{$ID}'\n ORDER BY `glpi_changes`.`name`";
$result = $DB->query($query);
$changes = array();
$used = array();
if ($numrows = $DB->numrows($result)) {
while ($data = $DB->fetch_assoc($result)) {
$changes[$data['id']] = $data;
$used[$data['id']] = $data['id'];
}
}
if ($canedit) {
echo "<div class='firstbloc'>";
echo "<form name='changeticket_form{$rand}' id='changeticket_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='3'>" . __('Add a change') . "</th></tr>";
echo "<tr class='tab_bg_2'><td>";
echo "<input type='hidden' name='tickets_id' value='{$ID}'>";
Change::dropdown(array('used' => $used, 'entity' => $ticket->getEntityID()));
echo "</td><td class='center'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "</td><td>";
if (Session::haveRight('change', CREATE)) {
echo "<a href='" . Toolbox::getItemTypeFormURL('Change') . "?tickets_id={$ID}'>";
_e('Create a change from this ticket');
echo "</a>";
}
echo "</td></tr></table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $numrows) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $numrows, 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
echo "<tr class='noHover'><th colspan='12'>" . Change::getTypeName($numrows) . "</th>";
echo "</tr>";
if ($numrows) {
Change::commonListHeader(Search::HTML_OUTPUT, 'mass' . __CLASS__ . $rand);
Session::initNavigateListItems('Change', sprintf(__('%1$s = %2$s'), Ticket::getTypeName(1), $ticket->fields["name"]));
$i = 0;
foreach ($changes as $data) {
Session::addToNavigateListItems('Change', $data["id"]);
Change::showShort($data['id'], array('row_num' => $i, 'type_for_massiveaction' => __CLASS__, 'id_for_massiveaction' => $data['linkID']));
$i++;
}
Change::commonListHeader(Search::HTML_OUTPUT, 'mass' . __CLASS__ . $rand);
}
echo "</table>";
if ($canedit && $numrows) {
$massiveactionparams['ontop'] = false;
Html::showMassiveActions($massiveactionparams);
Html::closeForm();
}
echo "</div>";
}