本文整理汇总了PHP中Plugin::haveImport方法的典型用法代码示例。如果您正苦于以下问题:PHP Plugin::haveImport方法的具体用法?PHP Plugin::haveImport怎么用?PHP Plugin::haveImport使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Plugin
的用法示例。
在下文中一共展示了Plugin::haveImport方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: canList
/**
* @since version 0.84
*
* @return boolean
**/
function canList()
{
global $PLUGIN_HOOKS;
if (Plugin::haveImport()) {
return static::canView();
}
return false;
}
示例2: showForComputer
/**
* Print the computers disks
*
* @param $comp Computer object
*
* @return Nothing (call to classes members)
**/
static function showForComputer(Computer $comp)
{
global $DB;
$ID = $comp->fields['id'];
if (!$comp->getFromDB($ID) || !$comp->can($ID, "r")) {
return false;
}
$canedit = $comp->can($ID, "w");
echo "<div class='spaced center'>";
$virtualmachines = getAllDatasFromTable('glpi_computervirtualmachines', "`computers_id` = '{$ID}' AND `is_deleted` = '0'");
echo "<table class='tab_cadre_fixe'>";
Session::initNavigateListItems('ComputerVirtualMachine', sprintf(__('%1$s = %2$s'), __('Computer'), empty($comp->fields['name']) ? "({$ID})" : $comp->fields['name']));
if (empty($virtualmachines)) {
echo "<tr><th>" . __('No virtual machine associated with the computer') . "</th></tr>";
} else {
echo "<tr><th colspan='10'>" . __('List of virtual machines') . "</th></tr>";
echo "<tr><th>" . __('Name') . "</th>";
if (Plugin::haveImport()) {
echo "<th>" . __('Automatic inventory') . "</th>";
}
echo "<th>" . __('Virtualization system') . "</th>";
echo "<th>" . __('Virtualization model') . "</th>";
echo "<th>" . __('State of the virtual machine') . "</th>";
echo "<th>" . __('UUID') . "</th>";
echo "<th>" . _x('quantity', 'Processors number') . "</th>";
echo "<th>" . sprintf(__('%1$s (%2$s)'), __('Memory'), __('Mio')) . "</th>";
echo "<th>" . __('Machine') . "</th>";
echo "</tr>";
$vm = new self();
foreach ($virtualmachines as $virtualmachine) {
$vm->getFromDB($virtualmachine['id']);
echo "<tr class='tab_bg_2'>";
echo "<td>" . $vm->getLink() . "</td>";
if (Plugin::haveImport()) {
echo "<td>";
echo Dropdown::getYesNo($vm->isDynamic());
echo "</td>";
}
echo "<td>";
echo Dropdown::getDropdownName('glpi_virtualmachinetypes', $virtualmachine['virtualmachinetypes_id']);
echo "</td>";
echo "<td>";
echo Dropdown::getDropdownName('glpi_virtualmachinesystems', $virtualmachine['virtualmachinesystems_id']);
echo "</td>";
echo "<td>";
echo Dropdown::getDropdownName('glpi_virtualmachinestates', $virtualmachine['virtualmachinestates_id']);
echo "</td>";
echo "<td>" . $virtualmachine['uuid'] . "</a></td>";
echo "<td>" . $virtualmachine['vcpu'] . "</td>";
echo "<td>" . $virtualmachine['ram'] . "</td>";
echo "<td>";
if ($link_computer = self::findVirtualMachine($virtualmachine)) {
$computer = new Computer();
if ($computer->can($link_computer, 'r')) {
$url = "<a href='computer.form.php?id=" . $link_computer . "'>";
$url .= $computer->fields["name"] . "</a>";
$tooltip = "<table><tr><td>" . __('Name') . "</td><td>" . $computer->fields['name'] . '</td></tr>';
$tooltip .= "<tr><td>" . __('Serial number') . "</td><td>" . $computer->fields['serial'] . '</td></tr>';
$tooltip .= "<tr><td>" . __('Comments') . "</td><td>" . $computer->fields['comment'] . '</td></tr></table>';
$url .= " " . Html::showToolTip($tooltip, array('display' => false));
} else {
$url = $computer->fields['name'];
}
echo $url;
}
echo "</td>";
echo "</tr>";
Session::addToNavigateListItems('ComputerVirtualMachine', $virtualmachine['id']);
}
}
if ($canedit) {
echo "<tr class='tab_bg_1'><td colspan='8' class='center'>";
echo "<a class='vsubmit' href='computervirtualmachine.form.php?computers_id={$ID}'>" . __('Add a virtual machine') . "</a></td></tr>";
}
echo "</table>";
echo "</div>";
}
示例3: showForm
/**
* Print the computer form
*
* @param $ID integer ID of the item
* @param $options array
* - target for the Form
* - withtemplate template or basic computer
*
*@return Nothing (display)
**/
function showForm($ID, $options = array())
{
global $CFG_GLPI, $DB;
$this->initForm($ID, $options);
$this->showFormHeader($options);
echo "<tr class='tab_bg_1'>";
//TRANS: %1$s is a string, %2$s a second one without spaces between them : to change for RTL
echo "<td>" . sprintf(__('%1$s%2$s'), __('Name'), isset($options['withtemplate']) && $options['withtemplate'] ? "*" : "") . "</td>";
echo "<td>";
$objectName = autoName($this->fields["name"], "name", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'name', array('value' => $objectName));
echo "</td>";
echo "<td>" . __('Status') . "</td>";
echo "<td>";
State::dropdown(array('value' => $this->fields["states_id"], 'entity' => $this->fields["entities_id"], 'condition' => "`is_visible_computer`"));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Location') . "</td>";
echo "<td>";
Location::dropdown(array('value' => $this->fields["locations_id"], 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Type') . "</td>";
echo "<td>";
ComputerType::dropdown(array('value' => $this->fields["computertypes_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Technician in charge of the hardware') . "</td>";
echo "<td>";
User::dropdown(array('name' => 'users_id_tech', 'value' => $this->fields["users_id_tech"], 'right' => 'own_ticket', 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Manufacturer') . "</td>";
echo "<td>";
Manufacturer::dropdown(array('value' => $this->fields["manufacturers_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group in charge of the hardware') . "</td>";
echo "<td>";
Group::dropdown(array('name' => 'groups_id_tech', 'value' => $this->fields['groups_id_tech'], 'entity' => $this->fields['entities_id'], 'condition' => '`is_assign`'));
echo "</td>";
echo "<td>" . __('Model') . "</td>";
echo "<td>";
ComputerModel::dropdown(array('value' => $this->fields["computermodels_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
//TRANS: Number of the alternate username
echo "<td>" . __('Alternate username number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'contact_num');
echo "</td>";
echo "<td>" . __('Serial number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'serial');
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Alternate username') . "</td>";
echo "<td>";
Html::autocompletionTextField($this, 'contact');
echo "</td>";
echo "<td>" . sprintf(__('%1$s%2$s'), __('Inventory number'), isset($options['withtemplate']) && $options['withtemplate'] ? "*" : "") . "</td>";
echo "<td>";
$objectName = autoName($this->fields["otherserial"], "otherserial", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'otherserial', array('value' => $objectName));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('User') . "</td>";
echo "<td>";
User::dropdown(array('value' => $this->fields["users_id"], 'entity' => $this->fields["entities_id"], 'right' => 'all'));
echo "</td>";
echo "<td>" . __('Network') . "</td>";
echo "<td>";
Network::dropdown(array('value' => $this->fields["networks_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group') . "</td>";
echo "<td>";
Group::dropdown(array('value' => $this->fields["groups_id"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_itemgroup`'));
echo "</td>";
// Display auto inventory informations
$rowspan = 10;
$inventory_show = false;
if (!empty($ID) && Plugin::haveImport() && $this->fields["is_dynamic"]) {
$inventory_show = true;
$rowspan -= 4;
}
echo "<td rowspan='{$rowspan}'>" . __('Comments') . "</td>";
echo "<td rowspan='{$rowspan}' class='middle'>";
echo "<textarea cols='45' rows='" . ($rowspan + 3) . "' name='comment' >" . $this->fields["comment"];
echo "</textarea></td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Domain') . "</td>";
//.........这里部分代码省略.........
示例4: showForComputer
/**
* Print the computers antiviruses
*
* @param $comp Computer object
* @param $withtemplate boolean Template or basic item (default '')
*
* @return Nothing (call to classes members)
**/
static function showForComputer(Computer $comp, $withtemplate = '')
{
global $DB;
$ID = $comp->fields['id'];
if (!$comp->getFromDB($ID) || !$comp->can($ID, READ)) {
return false;
}
$canedit = $comp->canEdit($ID);
if ($canedit && !(!empty($withtemplate) && $withtemplate == 2)) {
echo "<div class='center firstbloc'>" . "<a class='vsubmit' href='computerantivirus.form.php?computers_id={$ID}&withtemplate=" . $withtemplate . "'>";
_e('Add an antivirus');
echo "</a></div>\n";
}
echo "<div class='spaced center'>";
if ($result = $DB->request('glpi_computerantiviruses', array('computers_id' => $ID, 'is_deleted' => 0))) {
echo "<table class='tab_cadre_fixehov'>";
$colspan = 7;
if (Plugin::haveImport()) {
$colspan++;
}
echo "<tr class='noHover'><th colspan='{$colspan}'>" . self::getTypeName($result->numrows()) . "</th></tr>";
if ($result->numrows() != 0) {
$header = "<tr><th>" . __('Name') . "</th>";
if (Plugin::haveImport()) {
$header .= "<th>" . __('Automatic inventory') . "</th>";
}
$header .= "<th>" . __('Manufacturer') . "</th>";
$header .= "<th>" . __('Antivirus version') . "</th>";
$header .= "<th>" . __('Signature database version') . "</th>";
$header .= "<th>" . __('Active') . "</th>";
$header .= "<th>" . __('Up to date') . "</th>";
$header .= "<th>" . __('Expiration date') . "</th>";
$header .= "</tr>";
echo $header;
Session::initNavigateListItems(__CLASS__, sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
$antivirus = new self();
foreach ($result as $data) {
$antivirus->getFromDB($data['id']);
echo "<tr class='tab_bg_2'>";
echo "<td>" . $antivirus->getLink() . "</td>";
if (Plugin::haveImport()) {
echo "<td>" . Dropdown::getYesNo($data['is_dynamic']) . "</td>";
}
echo "<td>";
if ($data['manufacturers_id']) {
echo Dropdown::getDropdownName('glpi_manufacturers', $data['manufacturers_id']) . "</td>";
} else {
echo "</td>";
}
echo "<td>" . $data['antivirus_version'] . "</td>";
echo "<td>" . $data['signature_version'] . "</td>";
echo "<td>" . Dropdown::getYesNo($data['is_active']) . "</td>";
echo "<td>" . Dropdown::getYesNo($data['is_uptodate']) . "</td>";
echo "<td>" . Html::convDate($data['date_expiration']) . "</td>";
echo "</tr>";
Session::addToNavigateListItems(__CLASS__, $data['id']);
}
echo $header;
} else {
echo "<tr class='tab_bg_2'><th colspan='{$colspan}'>" . __('No item found') . "</th></tr>";
}
echo "</table>";
}
echo "</div>";
}
示例5: showForComputer
/**
* Print the computers disks
*
* @param $comp Computer object
* @param $withtemplate boolean Template or basic item (default '')
*
* @return Nothing (call to classes members)
**/
static function showForComputer(Computer $comp, $withtemplate = '')
{
global $DB;
$ID = $comp->fields['id'];
if (!$comp->getFromDB($ID) || !$comp->can($ID, READ)) {
return false;
}
$canedit = $comp->canEdit($ID);
if ($canedit && !(!empty($withtemplate) && $withtemplate == 2)) {
echo "<div class='center firstbloc'>" . "<a class='vsubmit' href='computerdisk.form.php?computers_id={$ID}&withtemplate=" . $withtemplate . "'>";
_e('Add a volume');
echo "</a></div>\n";
}
echo "<div class='center'>";
$query = "SELECT `glpi_filesystems`.`name` AS fsname,\n `glpi_computerdisks`.*\n FROM `glpi_computerdisks`\n LEFT JOIN `glpi_filesystems`\n ON (`glpi_computerdisks`.`filesystems_id` = `glpi_filesystems`.`id`)\n WHERE `computers_id` = '{$ID}'\n AND `is_deleted` = '0'";
if ($result = $DB->query($query)) {
echo "<table class='tab_cadre_fixehov table-striped table-hover'>";
$colspan = 7;
if (Plugin::haveImport()) {
$colspan++;
}
echo "<tr class='noHover'><th colspan='{$colspan}'>" . self::getTypeName($DB->numrows($result)) . "</th></tr>";
if ($DB->numrows($result)) {
$header = "<tr><th>" . __('Name') . "</th>";
if (Plugin::haveImport()) {
$header .= "<th>" . __('Automatic inventory') . "</th>";
}
$header .= "<th>" . __('Partition') . "</th>";
$header .= "<th>" . __('Mount point') . "</th>";
$header .= "<th>" . __('File system') . "</th>";
$header .= "<th>" . __('Global size') . "</th>";
$header .= "<th>" . __('Free size') . "</th>";
$header .= "<th>" . __('Free percentage') . "</th>";
$header .= "</tr>";
echo $header;
Session::initNavigateListItems(__CLASS__, sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
$disk = new self();
while ($data = $DB->fetch_assoc($result)) {
$disk->getFromDB($data['id']);
echo "<tr class='tab_bg_2'>";
echo "<td>" . $disk->getLink() . "</td>";
if (Plugin::haveImport()) {
echo "<td>" . Dropdown::getYesNo($data['is_dynamic']) . "</td>";
}
echo "<td>" . $data['device'] . "</td>";
echo "<td>" . $data['mountpoint'] . "</td>";
echo "<td>" . $data['fsname'] . "</td>";
//TRANS: %s is a size
$tmp = sprintf(__('%s Mio'), Html::formatNumber($data['totalsize'], false, 0));
echo "<td class='right'>{$tmp}<span class='small_space'></span></td>";
$tmp = sprintf(__('%s Mio'), Html::formatNumber($data['freesize'], false, 0));
echo "<td class='right'>{$tmp}<span class='small_space'></span></td>";
echo "<td>";
$percent = 0;
if ($data['totalsize'] > 0) {
$percent = round(100 * $data['freesize'] / $data['totalsize']);
}
Html::displayProgressBar('100', $percent, array('simple' => true, 'forcepadding' => false));
echo "</td>";
echo "</tr>";
Session::addToNavigateListItems(__CLASS__, $data['id']);
}
echo $header;
} else {
echo "<tr class='tab_bg_2'><th colspan='{$colspan}'>" . __('No item found') . "</th></tr>";
}
echo "</table>";
}
echo "</div><br>";
}
示例6: showForComputer
/**
* Show software installed on a computer
*
* @param $comp Computer object
* @param $withtemplate template case of the view process (default '')
*
* @return nothing
**/
static function showForComputer(Computer $comp, $withtemplate = '')
{
global $DB, $CFG_GLPI;
if (!Software::canView()) {
return false;
}
$computers_id = $comp->getField('id');
$rand = mt_rand();
$canedit = Session::haveRightsOr("software", array(CREATE, UPDATE, DELETE, PURGE));
$entities_id = $comp->fields["entities_id"];
$crit = Session::getSavedOption(__CLASS__, 'criterion', -1);
$where = '';
if ($crit > -1) {
$where = " AND `glpi_softwares`.`softwarecategories_id` = {$crit}";
}
$add_dynamic = '';
if (Plugin::haveImport()) {
$add_dynamic = "`glpi_computers_softwareversions`.`is_dynamic`,";
}
$query = "SELECT `glpi_softwares`.`softwarecategories_id`,\n `glpi_softwares`.`name` AS softname,\n `glpi_computers_softwareversions`.`id`,\n {$add_dynamic}\n `glpi_states`.`name` AS state,\n `glpi_softwareversions`.`id` AS verid,\n `glpi_softwareversions`.`softwares_id`,\n `glpi_softwareversions`.`name` AS version,\n `glpi_softwares`.`is_valid` AS softvalid\n FROM `glpi_computers_softwareversions`\n LEFT JOIN `glpi_softwareversions`\n ON (`glpi_computers_softwareversions`.`softwareversions_id`\n = `glpi_softwareversions`.`id`)\n LEFT JOIN `glpi_states`\n ON (`glpi_states`.`id` = `glpi_softwareversions`.`states_id`)\n LEFT JOIN `glpi_softwares`\n ON (`glpi_softwareversions`.`softwares_id` = `glpi_softwares`.`id`)\n WHERE `glpi_computers_softwareversions`.`computers_id` = '{$computers_id}'\n AND `glpi_computers_softwareversions`.`is_deleted` = '0'\n {$where}\n ORDER BY `softname`, `version`";
$result = $DB->query($query);
$i = 0;
if ((empty($withtemplate) || $withtemplate != 2) && $canedit) {
echo "<form method='post' action='" . $CFG_GLPI["root_doc"] . "/front/computer_softwareversion.form.php'>";
echo "<div class='spaced'><table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><td class='center'>";
echo _n('Software', 'Software', Session::getPluralNumber()) . " ";
echo "<input type='hidden' name='computers_id' value='{$computers_id}'>";
Software::dropdownSoftwareToInstall("softwareversions_id", $entities_id);
echo "</td><td width='20%'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Install') . "\"\n class='submit'>";
echo "</td>";
echo "</tr>\n";
echo "</table></div>\n";
Html::closeForm();
}
echo "<div class='spaced'>";
$cat = -1;
Session::initNavigateListItems('Software', sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
Session::initNavigateListItems('SoftwareLicense', sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
// Mini Search engine
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><th colspan='2'>" . Software::getTypeName(Session::getPluralNumber()) . "</th></tr>";
echo "<tr class='tab_bg_1'><td class='center'>";
echo __('Category') . "</td><td>";
SoftwareCategory::dropdown(array('value' => $crit, 'toadd' => array('-1' => __('All categories')), 'emptylabel' => __('Uncategorized software'), 'on_change' => 'reloadTab("start=0&criterion="+this.value)'));
echo "</td></tr></table></div>";
$number = $DB->numrows($result);
$start = isset($_REQUEST['start']) ? intval($_REQUEST['start']) : 0;
if ($start >= $number) {
$start = 0;
}
$installed = array();
if ($number) {
echo "<div class='spaced'>";
Html::printAjaxPager('', $start, $number);
if ($canedit) {
$rand = mt_rand();
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $number, 'container' => 'mass' . __CLASS__ . $rand, 'specific_actions' => array('purge' => _x('button', 'Delete permanently')));
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
$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>" . __('Name') . "</th><th>" . __('Status') . "</th>";
$header_end .= "<th>" . __('Version') . "</th><th>" . __('License') . "</th>";
if (Plugin::haveImport()) {
$header_end .= "<th>" . __('Automatic inventory') . "</th>";
}
$header_end .= "<th>" . SoftwareCategory::getTypeName(1) . "</th>";
$header_end .= "<th>" . __('Valid license') . "</th>";
$header_end .= "</tr>\n";
echo $header_begin . $header_top . $header_end;
for ($row = 0; $data = $DB->fetch_assoc($result); $row++) {
if ($row >= $start && $row < $start + $_SESSION['glpilist_limit']) {
$licids = self::softsByCategory($data, $computers_id, $withtemplate, $canedit, true);
} else {
$licids = self::softsByCategory($data, $computers_id, $withtemplate, $canedit, false);
}
Session::addToNavigateListItems('Software', $data["softwares_id"]);
foreach ($licids as $licid) {
Session::addToNavigateListItems('SoftwareLicense', $licid);
$installed[] = $licid;
//.........这里部分代码省略.........
示例7: showForm
//.........这里部分代码省略.........
echo "<td>";
$objectName = autoName($this->fields["name"], "name", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'name', array('value' => $objectName));
echo "</td>";
echo "<td>" . __('Status') . "</td>";
echo "<td>";
State::dropdown(array('value' => $this->fields["states_id"], 'entity' => $this->fields["entities_id"], 'condition' => "`is_visible_computer`"));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Location') . "</td>";
echo "<td>";
Location::dropdown(array('value' => $this->fields["locations_id"], 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Type') . "</td>";
echo "<td>";
ComputerType::dropdown(array('value' => $this->fields["computertypes_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Technician in charge of the hardware') . "</td>";
echo "<td>";
User::dropdown(array('name' => 'users_id_tech', 'value' => $this->fields["users_id_tech"], 'right' => 'own_ticket', 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Manufacturer') . "</td>";
echo "<td>";
Manufacturer::dropdown(array('value' => $this->fields["manufacturers_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group in charge of the hardware') . "</td>";
echo "<td>";
Group::dropdown(array('name' => 'groups_id_tech', 'value' => $this->fields['groups_id_tech'], 'entity' => $this->fields['entities_id'], 'condition' => '`is_assign`'));
echo "</td>";
echo "<td>" . __('Model') . "</td>";
echo "<td>";
ComputerModel::dropdown(array('value' => $this->fields["computermodels_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
//TRANS: Number of the alternate username
echo "<td>" . __('Alternate username number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'contact_num');
echo "</td>";
echo "<td>" . __('Serial number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'serial');
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Alternate username') . "</td>";
echo "<td>";
Html::autocompletionTextField($this, 'contact');
echo "</td>";
echo "<td>" . sprintf(__('%1$s%2$s'), __('Inventory number'), isset($options['withtemplate']) && $options['withtemplate'] ? "*" : "") . "</td>";
echo "<td>";
$objectName = autoName($this->fields["otherserial"], "otherserial", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'otherserial', array('value' => $objectName));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('User') . "</td>";
echo "<td>";
User::dropdown(array('value' => $this->fields["users_id"], 'entity' => $this->fields["entities_id"], 'right' => 'all'));
echo "</td>";
echo "<td>" . __('Network') . "</td>";
echo "<td>";
Network::dropdown(array('value' => $this->fields["networks_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group') . "</td>";
echo "<td>";
Group::dropdown(array('value' => $this->fields["groups_id"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_itemgroup`'));
echo "</td>";
// Display auto inventory informations
$rowspan = 4;
echo "<td rowspan='{$rowspan}'>" . __('Comments') . "</td>";
echo "<td rowspan='{$rowspan}' class='middle'>";
echo "<textarea cols='45' rows='" . ($rowspan + 3) . "' name='comment' >" . $this->fields["comment"];
echo "</textarea></td></tr>";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Domain') . "</td>";
echo "<td >";
Domain::dropdown(array('value' => $this->fields["domains_id"], 'entity' => $this->fields["entities_id"]));
echo "</td></tr>";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('UUID') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'uuid');
echo "</td>";
echo "</tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Update Source') . "</td>";
echo "<td >";
AutoUpdateSystem::dropdown(array('value' => $this->fields["autoupdatesystems_id"]));
echo "</td></tr>";
// Display auto inventory informations
if (!empty($ID) && Plugin::haveImport() && $this->fields["is_dynamic"]) {
echo "<tr class='tab_bg_1'><td colspan='4'>";
Plugin::doHook("autoinventory_information", $this);
echo "</td></tr>";
}
$this->showFormButtons($options);
return true;
}
示例8: showForItem
/**
* Prints a direct connection to a computer
*
* @param $item CommonDBTM object: the Monitor/Phone/Peripheral/Printer
* @param $withtemplate integer withtemplate param (default '')
*
* @return nothing (print out a table)
**/
static function showForItem(CommonDBTM $item, $withtemplate = '')
{
// Prints a direct connection to a computer
global $DB;
$comp = new Computer();
$ID = $item->getField('id');
if (!$item->can($ID, READ)) {
return false;
}
$canedit = $item->canEdit($ID);
$rand = mt_rand();
// Is global connection ?
$global = $item->getField('is_global');
$used = array();
$compids = array();
$crit = array('FIELDS' => array('id', 'computers_id', 'is_dynamic'), 'itemtype' => $item->getType(), 'items_id' => $ID, 'is_deleted' => 0);
foreach ($DB->request('glpi_computers_items', $crit) as $data) {
$compids[$data['id']] = $data['computers_id'];
$dynamic[$data['id']] = $data['is_dynamic'];
$used['Computer'][] = $data['computers_id'];
}
$number = count($compids);
if ($canedit && ($global || !$number)) {
echo "<div class='firstbloc'>";
echo "<form name='computeritem_form{$rand}' id='computeritem_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Connect a computer') . "</th></tr>";
echo "<tr class='tab_bg_1'><td class='right'>";
echo "<input type='hidden' name='items_id' value='{$ID}'>";
echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>";
if ($item->isRecursive()) {
self::dropdownConnect('Computer', $item->getType(), "computers_id", getSonsOf("glpi_entities", $item->getEntityID()), 0, $used);
} else {
self::dropdownConnect('Computer', $item->getType(), "computers_id", $item->getEntityID(), 0, $used);
}
echo "</td><td class='center'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Connect') . "\" class='submit'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $number) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $number, 'specific_actions' => array('purge' => _x('button', 'Disconnect')), 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
if ($number > 0) {
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit) {
$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>" . __('Name') . "</th>";
if (Plugin::haveImport()) {
$header_end .= "<th>" . __('Automatic inventory') . "</th>";
}
$header_end .= "<th>" . __('Entity') . "</th>";
$header_end .= "<th>" . __('Serial number') . "</th>";
$header_end .= "<th>" . __('Inventory number') . "</th>";
$header_end .= "</tr>";
echo $header_begin . $header_top . $header_end;
foreach ($compids as $key => $compid) {
$comp->getFromDB($compid);
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td width='10'>";
Html::showMassiveActionCheckBox(__CLASS__, $key);
echo "</td>";
}
echo "<td " . ($comp->getField('is_deleted') ? "class='tab_bg_2_2'" : "") . ">" . $comp->getLink() . "</td>";
if (Plugin::haveImport()) {
echo "<td>" . Dropdown::getYesNo($dynamic[$key]) . "</td>";
}
echo "<td class='center'>" . Dropdown::getDropdownName("glpi_entities", $comp->getField('entities_id'));
echo "</td>";
echo "<td class='center'>" . $comp->getField('serial') . "</td>";
echo "<td class='center'>" . $comp->getField('otherserial') . "</td>";
echo "</tr>";
}
echo $header_begin . $header_bottom . $header_end;
} else {
echo "<tr><td class='tab_bg_1 b'><i>" . __('Not connected') . "</i>";
echo "</td></tr>";
}
//.........这里部分代码省略.........
示例9: showForm
/**
* Print the computer form
*
* @param $ID integer ID of the item
* @param $options array
* - target for the Form
* - withtemplate template or basic computer
*
*@return Nothing (display)
**/
function showForm($ID, $options = array())
{
global $CFG_GLPI, $DB;
$this->initForm($ID, $options);
$this->showFormHeader($options);
echo "<tr class='tab_bg_1'>";
//TRANS: %1$s is a string, %2$s a second one without spaces between them : to change for RTL
echo "<td>" . sprintf(__('%1$s%2$s'), __('Name'), isset($options['withtemplate']) && $options['withtemplate'] ? "*" : "") . "</td>";
echo "<td>";
$objectName = autoName($this->fields["name"], "name", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'name', array('value' => $objectName));
echo "</td>";
echo "<td>" . __('Status') . "</td>";
echo "<td>";
State::dropdown(array('value' => $this->fields["states_id"], 'entity' => $this->fields["entities_id"], 'condition' => "`is_visible_computer`"));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Location') . "</td>";
echo "<td>";
Location::dropdown(array('value' => $this->fields["locations_id"], 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Type') . "</td>";
echo "<td>";
ComputerType::dropdown(array('value' => $this->fields["computertypes_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Technician in charge of the hardware') . "</td>";
echo "<td>";
User::dropdown(array('name' => 'users_id_tech', 'value' => $this->fields["users_id_tech"], 'right' => 'own_ticket', 'entity' => $this->fields["entities_id"]));
echo "</td>";
echo "<td>" . __('Manufacturer') . "</td>";
echo "<td>";
Manufacturer::dropdown(array('value' => $this->fields["manufacturers_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group in charge of the hardware') . "</td>";
echo "<td>";
Group::dropdown(array('name' => 'groups_id_tech', 'value' => $this->fields['groups_id_tech'], 'entity' => $this->fields['entities_id'], 'condition' => '`is_assign`'));
echo "</td>";
echo "<td>" . __('Model') . "</td>";
echo "<td>";
ComputerModel::dropdown(array('value' => $this->fields["computermodels_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
//TRANS: Number of the alternate username
echo "<td>" . __('Alternate username number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'contact_num');
echo "</td>";
echo "<td>" . __('Serial number') . "</td>";
echo "<td >";
Html::autocompletionTextField($this, 'serial');
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Alternate username') . "</td>";
echo "<td>";
Html::autocompletionTextField($this, 'contact');
echo "</td>";
echo "<td>" . sprintf(__('%1$s%2$s'), __('Inventory number'), isset($options['withtemplate']) && $options['withtemplate'] ? "*" : "") . "</td>";
echo "<td>";
$objectName = autoName($this->fields["otherserial"], "otherserial", isset($options['withtemplate']) && $options['withtemplate'] == 2, $this->getType(), $this->fields["entities_id"]);
Html::autocompletionTextField($this, 'otherserial', array('value' => $objectName));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('User') . "</td>";
echo "<td>";
User::dropdown(array('value' => $this->fields["users_id"], 'entity' => $this->fields["entities_id"], 'right' => 'all'));
echo "</td>";
echo "<td>" . __('Network') . "</td>";
echo "<td>";
Network::dropdown(array('value' => $this->fields["networks_id"]));
echo "</td></tr>\n";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Group') . "</td>";
echo "<td>";
Group::dropdown(array('value' => $this->fields["groups_id"], 'entity' => $this->fields["entities_id"], 'condition' => '`is_itemgroup`'));
echo "</td>";
// Display auto inventory informations
$rowspan = 7;
$inventory_show = false;
if (!empty($ID) && Plugin::haveImport() && $this->fields["is_dynamic"]) {
$inventory_show = true;
$rowspan -= 5;
}
echo "<td rowspan='{$rowspan}'>" . __('Comments') . "</td>";
echo "<td rowspan='{$rowspan}' class='middle'>";
echo "<textarea cols='45' rows='" . ($rowspan + 3) . "' name='comment' >" . $this->fields["comment"];
echo "</textarea></td></tr>";
echo "<tr class='tab_bg_1'>";
echo "<td>" . __('Domain') . "</td>";
//.........这里部分代码省略.........
示例10: showForComputer
/**
* Show software installed on a computer
*
* @param $comp Computer object
* @param $withtemplate template case of the view process (default '')
*
* @return nothing
**/
static function showForComputer(Computer $comp, $withtemplate = '')
{
global $DB, $CFG_GLPI;
if (!Session::haveRight("software", "r")) {
return false;
}
$computers_id = $comp->getField('id');
$rand = mt_rand();
$canedit = Session::haveRight("software", "w");
$entities_id = $comp->fields["entities_id"];
$add_dynamic = '';
if (Plugin::haveImport()) {
$add_dynamic = "`glpi_computers_softwareversions`.`is_dynamic`,";
}
$query = "SELECT `glpi_softwares`.`softwarecategories_id`,\n `glpi_softwares`.`name` AS softname,\n `glpi_computers_softwareversions`.`id`,\n {$add_dynamic}\n `glpi_states`.`name` AS state,\n `glpi_softwareversions`.`id` AS verid,\n `glpi_softwareversions`.`softwares_id`,\n `glpi_softwareversions`.`name` AS version\n FROM `glpi_computers_softwareversions`\n LEFT JOIN `glpi_softwareversions`\n ON (`glpi_computers_softwareversions`.`softwareversions_id`\n = `glpi_softwareversions`.`id`)\n LEFT JOIN `glpi_states`\n ON (`glpi_states`.`id` = `glpi_softwareversions`.`states_id`)\n LEFT JOIN `glpi_softwares`\n ON (`glpi_softwareversions`.`softwares_id` = `glpi_softwares`.`id`)\n WHERE `glpi_computers_softwareversions`.`computers_id` = '{$computers_id}'\n AND `glpi_computers_softwareversions`.`is_deleted` = '0'\n ORDER BY `softwarecategories_id`, `softname`, `version`";
$result = $DB->query($query);
$i = 0;
if ((empty($withtemplate) || $withtemplate != 2) && $canedit) {
echo "<form method='post' action='" . $CFG_GLPI["root_doc"] . "/front/computer_softwareversion.form.php'>";
echo "<div class='spaced'><table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'><td class='center'>";
echo _n('Software', 'Software', 2) . " ";
echo "<input type='hidden' name='computers_id' value='{$computers_id}'>";
Software::dropdownSoftwareToInstall("softwareversions_id", $entities_id);
echo "</td><td width='20%'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Install') . "\"\n class='submit'>";
echo "</td>";
echo "</tr>\n";
echo "</table></div>\n";
Html::closeForm();
}
echo "<div class='spaced'>";
$cat = -1;
Session::initNavigateListItems('Software', sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
Session::initNavigateListItems('SoftwareLicense', sprintf(__('%1$s = %2$s'), Computer::getTypeName(1), $comp->getName()));
$installed = array();
if ($number = $DB->numrows($result)) {
if ($canedit) {
$rand = mt_rand();
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$paramsma = array('num_displayed' => $number, 'specific_actions' => array('purge' => _x('button', 'Delete permanently')));
Html::showMassiveActions(__CLASS__, $paramsma);
}
echo "<table class='tab_cadre_fixe'>";
while ($data = $DB->fetch_assoc($result)) {
if ($data["softwarecategories_id"] != $cat) {
self::displayCategoryFooter($cat, $rand, $canedit);
$cat = self::displayCategoryHeader($computers_id, $data, $rand, $canedit);
}
$licids = self::displaySoftsByCategory($data, $computers_id, $withtemplate, $canedit);
Session::addToNavigateListItems('Software', $data["softwares_id"]);
foreach ($licids as $licid) {
Session::addToNavigateListItems('SoftwareLicense', $licid);
$installed[] = $licid;
}
}
self::displayCategoryFooter($cat, $rand, $canedit);
echo "</table>";
if ($canedit) {
$paramsma['ontop'] = false;
Html::showMassiveActions(__CLASS__, $paramsma);
Html::closeForm();
}
}
echo "</div>\n";
if ((empty($withtemplate) || $withtemplate != 2) && $canedit) {
echo "<form method='post' action='" . $CFG_GLPI["root_doc"] . "/front/computer_softwarelicense.form.php'>";
echo "<div class='spaced'><table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_1'>";
echo "<td class='center'>";
echo _n('License', 'Licenses', 2) . " ";
echo "<input type='hidden' name='computers_id' value='{$computers_id}'>";
Software::dropdownLicenseToInstall("softwarelicenses_id", $entities_id);
echo "</td><td width='20%'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
echo "</td></tr>\n";
echo "</table></div>\n";
Html::closeForm();
}
echo "<div class='spaced'>";
// Affected licenses NOT installed
$query = "SELECT `glpi_softwarelicenses`.*,\n `glpi_computers_softwarelicenses`.`id` AS linkID,\n `glpi_softwares`.`name` AS softname,\n `glpi_softwareversions`.`name` AS version,\n `glpi_states`.`name` AS state\n FROM `glpi_softwarelicenses`\n LEFT JOIN `glpi_computers_softwarelicenses`\n ON (`glpi_computers_softwarelicenses`.softwarelicenses_id\n = `glpi_softwarelicenses`.`id`)\n INNER JOIN `glpi_softwares`\n ON (`glpi_softwarelicenses`.`softwares_id` = `glpi_softwares`.`id`)\n LEFT JOIN `glpi_softwareversions`\n ON (`glpi_softwarelicenses`.`softwareversions_id_use`\n = `glpi_softwareversions`.`id`\n OR (`glpi_softwarelicenses`.`softwareversions_id_use` = '0'\n AND `glpi_softwarelicenses`.`softwareversions_id_buy`\n = `glpi_softwareversions`.`id`))\n LEFT JOIN `glpi_states`\n ON (`glpi_states`.`id` = `glpi_softwareversions`.`states_id`)\n WHERE `glpi_computers_softwarelicenses`.`computers_id` = '{$computers_id}'\n AND `glpi_computers_softwarelicenses`.`is_deleted` = '0'";
if (count($installed)) {
$query .= " AND `glpi_softwarelicenses`.`id` NOT IN (" . implode(',', $installed) . ")";
}
$req = $DB->request($query);
if ($number = $req->numrows()) {
if ($canedit) {
$rand = mt_rand();
Html::openMassiveActionsForm('massSoftwareLicense' . $rand);
$actions = array('install' => _x('button', 'Install'));
if (SoftwareLicense::canUpdate()) {
//.........这里部分代码省略.........