static function ItemsPdf(PluginPdfSimplePDF $pdf, PluginWebapplicationsWebapplication $item) { global $DB, $CFG_GLPI; $ID = $item->getField('id'); if (!$item->can($ID, READ)) { return false; } if (!Session::haveRight("plugin_webapplications", READ)) { return false; } $pdf->setColumnsSize(100); $pdf->displayTitle('<b>' . _n('Associated item', 'Associated items', 2) . '</b>'); $query = "SELECT DISTINCT `itemtype`\n FROM `glpi_plugin_webapplications_webapplications_items`\n WHERE `plugin_webapplications_webapplications_id` = '{$ID}'\n ORDER BY `itemtype`"; $result = $DB->query($query); $number = $DB->numrows($result); if (Session::isMultiEntitiesMode()) { $pdf->setColumnsSize(12, 27, 25, 18, 18); $pdf->displayTitle('<b><i>' . __('Type'), __('Name'), __('Entity'), __('Serial number'), __('Inventory number') . '</i></b>'); } else { $pdf->setColumnsSize(25, 31, 22, 22); $pdf->displayTitle('<b><i>' . __('Type'), __('Name'), __('Serial number'), __('Inventory number') . '</i></b>'); } if (!$number) { $pdf->displayLine(__('No item found')); } else { for ($i = 0; $i < $number; $i++) { $type = $DB->result($result, $i, "itemtype"); if (!class_exists($type)) { continue; } if ($item->canView()) { $column = "name"; $table = getTableForItemType($type); $items = new $type(); $query = "SELECT `" . $table . "`.*, `glpi_entities`.`id` AS entity " . " FROM `glpi_plugin_webapplications_webapplications_items`, `" . $table . "` LEFT JOIN `glpi_entities` ON (`glpi_entities`.`id` = `" . $table . "`.`entities_id`) " . " WHERE `" . $table . "`.`id` = `glpi_plugin_webapplications_webapplications_items`.`items_id` \n AND `glpi_plugin_webapplications_webapplications_items`.`itemtype` = '{$type}' \n AND `glpi_plugin_webapplications_webapplications_items`.`plugin_webapplications_webapplications_id` = '{$ID}' "; if ($type != 'User') { $query .= getEntitiesRestrictRequest(" AND ", $table, '', '', $items->maybeRecursive()); } if ($items->maybeTemplate()) { $query .= " AND `" . $table . "`.`is_template` = '0'"; } $query .= " ORDER BY `glpi_entities`.`completename`, `" . $table . "`.`{$column}`"; if ($result_linked = $DB->query($query)) { if ($DB->numrows($result_linked)) { while ($data = $DB->fetch_assoc($result_linked)) { if (!$items->getFromDB($data["id"])) { continue; } $items_id_display = ""; if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) { $items_id_display = " (" . $data["id"] . ")"; } if ($type == 'User') { $name = Html::clean(getUserName($data["id"])) . $items_id_display; } else { $name = $data["name"] . $items_id_display; } if ($type != 'User') { $entity = Html::clean(Dropdown::getDropdownName("glpi_entities", $data['entity'])); } else { $entity = "-"; } if (Session::isMultiEntitiesMode()) { $pdf->setColumnsSize(12, 27, 25, 18, 18); $pdf->displayLine($items->getTypeName(), $name, $entity, isset($data["serial"]) ? "" . $data["serial"] . "" : "-", isset($data["otherserial"]) ? "" . $data["otherserial"] . "" : "-"); } else { $pdf->setColumnsSize(25, 31, 22, 22); $pdf->displayTitle($items->getTypeName(), $name, isset($data["serial"]) ? "" . $data["serial"] . "" : "-", isset($data["otherserial"]) ? "" . $data["otherserial"] . "" : "-"); } } // Each device } } // numrows device } // type right } // each type } // numrows type }