public function showItemFromPlugin($instID, $search = '')
 {
     global $DB, $CFG_GLPI;
     if (!$this->canView()) {
         return false;
     }
     $rand = mt_rand();
     $PluginConnectionsConnection = new PluginConnectionsConnection();
     if ($PluginConnectionsConnection->getFromDB($instID)) {
         $canedit = $PluginConnectionsConnection->can($instID, UPDATE);
         $query = "SELECT DISTINCT `itemtype`\n                   FROM `" . $this->getTable() . "`\n                   WHERE `plugin_connections_connections_id` = '" . (int) $instID . "'\n                   ORDER BY `itemtype`";
         $result = $DB->query($query);
         $number = $DB->numrows($result);
         if (Session::isMultiEntitiesMode()) {
             $colsup = 1;
         } else {
             $colsup = 0;
         }
         echo "<form method='post' name='connections_form{$rand}' id='connections_form{$rand}'\n                  action=\"" . $CFG_GLPI["root_doc"] . "/plugins/connections/front/connection.form.php\">";
         echo "<div class='center'><table class='tab_cadrehov'>";
         echo "<tr><th colspan='" . ($canedit ? 5 + $colsup : 4 + $colsup) . "'>" . __('Associated element') . ":</th></tr><tr>";
         if ($canedit) {
             echo "<th>&nbsp;</th>";
         }
         echo "<th>" . __('Type') . "</th>";
         echo "<th>" . __('Name') . "</th>";
         if (Session::isMultiEntitiesMode()) {
             echo "<th>" . __('Entity') . "</th>";
         }
         echo "<th>" . __('Serial Number') . "</th>";
         echo "<th>" . __('Inventory number') . "</th>";
         echo "</tr>";
         for ($i = 0; $i < $number; $i++) {
             $type = $DB->result($result, $i, "itemtype");
             if (!class_exists($type)) {
                 continue;
             }
             $item = new $type();
             if ($item->canView()) {
                 $column = "name";
                 $table = getTableForItemType($type);
                 $itemTable = $this->getTable();
                 $entitiesRestrict = getEntitiesRestrictRequest(" AND ", 't', '', '', $item->maybeRecursive());
                 $mayBeTemplate = $item->maybeTemplate() ? " AND t.`is_template` = '0'" : '';
                 $query = "SELECT t.*, it.`id` AS items_id, `glpi_entities`.`ID` AS entity\n                         FROM `{$itemTable}` it, `{$table}` t\n                         LEFT JOIN `glpi_entities` ON (`glpi_entities`.`id` = t.`entities_id`)\n                         WHERE t.`id` = it.`items_id`\n                         AND it.`itemtype` = '{$type}'\n                         AND it.`plugin_connections_connections_id` = '{$instID}'\n                         {$entitiesRestrict}\n                         {$mayBeTemplate}\n                         ORDER BY `glpi_entities`.`completename`, t.`{$column}`;";
                 if ($result_linked = $DB->query($query)) {
                     if ($DB->numrows($result_linked)) {
                         Session::initNavigateListItems($type, __('Connections', 'connections') . " = " . $PluginConnectionsConnection->fields['name']);
                         while ($data = $DB->fetch_assoc($result_linked)) {
                             $item->getFromDB($data["id"]);
                             Session::addToNavigateListItems($type, $data["id"]);
                             $ID = $_SESSION["glpiis_ids_visible"] || empty($data["name"]) ? " (" . $data["id"] . ")" : "";
                             $link = Toolbox::getItemTypeFormURL($type);
                             $name = "<a href=\"" . $link . "?id=" . $data["id"] . "\">" . $data["name"] . $ID . "</a>";
                             echo "<tr class='tab_bg_1'>";
                             if ($canedit) {
                                 echo "<td width='10'>";
                                 $sel = isset($_GET["select"]) && "all" == $_GET["select"] ? "checked" : "";
                                 echo "<input type='checkbox' name='item[" . $data["items_id"] . "]' value='1' " . $sel . ">";
                                 echo "</td>";
                             }
                             echo "<td class='center'>" . $item->getTypeName() . "</td>";
                             $is_deleted = isset($data['is_deleted']) && $data['is_deleted'] ? "class='tab_bg_2_2'" : "";
                             echo "<td class='center' " . $is_deleted . ">" . $name . "</td>";
                             if (Session::isMultiEntitiesMode()) {
                                 echo "<td class='center'>";
                                 echo Dropdown::getDropdownName("glpi_entities", $data['entity']);
                                 echo "</td>";
                             }
                             echo "<td class='center'>";
                             echo isset($data["serial"]) ? $data["serial"] : "-";
                             echo "</td>";
                             echo "<td class='center'>";
                             echo isset($data["otherserial"]) ? $data["otherserial"] : "-";
                             echo "</td>";
                             echo "</tr>";
                         }
                     }
                 }
             }
         }
         if ($canedit) {
             echo "<tr class='tab_bg_1'><td colspan='" . (3 + $colsup) . "' class='center'>";
             echo "<input type='hidden' name='plugin_connections_connections_id' value='{$instID}'>";
             Dropdown::showAllItems("items_id", 0, 0, $PluginConnectionsConnection->fields['is_recursive'] ? -1 : $PluginConnectionsConnection->fields['entities_id'], $this->getClasses());
             echo "</td>";
             echo "<td colspan='2' class='center' class='tab_bg_2'>";
             echo "<input type='submit' name='additem' value=\"" . __('Add') . "\" class='submit'>";
             echo "</td></tr>";
             echo "</table></div>";
             Html::openArrowMassives("connections_form{$rand}");
             Html::closeArrowMassives(array('deleteitem' => __('Delete')));
         } else {
             echo "</table></div>";
         }
         echo Html::closeForm(false);
     }
 }
Esempio n. 2
0
function plugin_connections_MassiveActionsProcess($data)
{
    $PluginConnectionsConnection = new PluginConnectionsConnection();
    $PluginConnectionsConnection_Item = new PluginConnectionsConnection_Item();
    switch ($data['action']) {
        case "plugin_connections_add_item":
            foreach ($data["item"] as $key => $val) {
                if ($val == 1) {
                    $input = array('plugin_connections_connections_id' => $data['plugin_connections_connections_id'], 'items_id' => $key, 'itemtype' => $data['itemtype']);
                    if ($PluginConnectionsConnection_Item->can(-1, UPDATE, $input)) {
                        $PluginConnectionsConnection_Item->add($input);
                    }
                }
            }
            break;
        case "plugin_connections_install":
            foreach ($data["item"] as $key => $val) {
                if ($val == 1) {
                    $input = array('plugin_connections_connections_id' => $key, 'items_id' => $data["item_item"], 'itemtype' => $data['itemtype']);
                    if ($PluginConnectionsConnection_Item->can(-1, UPDATE, $input)) {
                        $PluginConnectionsConnection_Item->add($input);
                    }
                }
            }
            break;
        case "plugin_connections_desinstall":
            foreach ($data["item"] as $key => $val) {
                if ($val == 1) {
                    $PluginConnectionsConnection_Item->deleteItemByConnectionsAndItem($key, $data['item_item'], $data['itemtype']);
                }
            }
            break;
        case "plugin_connections_transfert":
            if ($data['itemtype'] == 'PluginConnectionsConnection') {
                foreach ($data["item"] as $key => $val) {
                    if ($val == 1) {
                        $PluginConnectionsConnection->getFromDB($key);
                        $type = PluginConnectionsConnectionType::transfer($PluginConnectionsConnection->fields["plugin_connections_connections_id"], $data['entities_id']);
                        $values["id"] = $key;
                        $values["plugin_connections_connections_id"] = $type;
                        $values["entities_id"] = $data['entities_id'];
                        $PluginConnectionsConnection->update($values);
                    }
                }
            }
            break;
    }
}