NetworkPort_Vlan::showForNetworkPort PHP Метод

showForNetworkPort() статический публичный Метод

static public showForNetworkPort ( NetworkPort $port )
$port NetworkPort 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>";
    }

Usage Example

Пример #1
0
 /**
  * Show ports for an item
  *
  * @param $itemtype integer : item type
  * @param $ID integer : item ID
  * @param $withtemplate integer : withtemplate param
  **/
 static function showForItem($itemtype, $ID, $withtemplate = '')
 {
     global $DB, $CFG_GLPI, $LANG;
     $rand = mt_rand();
     if (!class_exists($itemtype)) {
         return false;
     }
     $item = new $itemtype();
     if (!haveRight('networking', 'r') || !$item->can($ID, 'r')) {
         return false;
     }
     $canedit = $item->can($ID, 'w');
     // Show Add Form
     if ($canedit && (empty($withtemplate) || $withtemplate != 2)) {
         echo "\n<div class='firstbloc'><table class='tab_cadre_fixe'>";
         echo "<tr><td class='tab_bg_2 center'>";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/networkport.form.php?items_id={$ID}&amp;itemtype={$itemtype}'><strong>" . $LANG['networking'][19] . "</strong></a></td>\n";
         echo "<td class='tab_bg_2 center' width='50%'>";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/networkport.form.php?items_id={$ID}&amp;itemtype={$itemtype}&amp;several=1'>\n               <strong>" . $LANG['networking'][46] . "</strong></a></td>\n";
         echo "</tr></table></div>\n";
     }
     initNavigateListItems('NetworkPort', $item->getTypeName() . " = " . $item->getName());
     $query = "SELECT `id`\n                FROM `glpi_networkports`\n                WHERE `items_id` = '{$ID}'\n                      AND `itemtype` = '{$itemtype}'\n                ORDER BY `name`,\n                         `logical_number`";
     if ($result = $DB->query($query)) {
         echo "<div class='spaced'>";
         if ($DB->numrows($result) != 0) {
             $colspan = 9;
             if ($withtemplate != 2) {
                 if ($canedit) {
                     $colspan++;
                     echo "\n<form id='networking_ports{$rand}' name='networking_ports{$rand}' method='post'\n                        action='" . $CFG_GLPI["root_doc"] . "/front/networkport.form.php'>\n";
                 }
             }
             echo "<table class='tab_cadre_fixe'>\n";
             echo "<tr><th colspan='{$colspan}'>\n";
             if ($DB->numrows($result) == 1) {
                 echo $LANG['networking'][12];
             } else {
                 echo $LANG['networking'][11];
             }
             echo "&nbsp;:&nbsp;" . $DB->numrows($result) . "</th></tr>\n";
             echo "<tr>";
             if ($withtemplate != 2 && $canedit) {
                 echo "<th>&nbsp;</th>\n";
             }
             echo "<th>#</th>\n";
             echo "<th>" . $LANG['common'][16] . "</th>\n";
             echo "<th>" . $LANG['networking'][51] . "</th>\n";
             echo "<th>" . $LANG['networking'][14] . "<br>" . $LANG['networking'][15] . "</th>\n";
             echo "<th>" . $LANG['networking'][60] . "&nbsp;/&nbsp;" . $LANG['networking'][61] . "<br>" . $LANG['networking'][59] . "</th>\n";
             echo "<th>" . $LANG['networking'][56] . "</th>\n";
             echo "<th>" . $LANG['common'][65] . "</th>\n";
             echo "<th>" . $LANG['networking'][17] . "&nbsp;:</th>\n";
             echo "<th>" . $LANG['networking'][14] . "<br>" . $LANG['networking'][15] . "</th></tr>\n";
             $i = 0;
             $netport = new NetworkPort();
             while ($devid = $DB->fetch_row($result)) {
                 $netport->getFromDB(current($devid));
                 addToNavigateListItems('NetworkPort', $netport->fields["id"]);
                 echo "<tr class='tab_bg_1'>\n";
                 if ($withtemplate != 2 && $canedit) {
                     echo "<td class='center' width='20'>";
                     echo "<input type='checkbox' name='del_port[" . $netport->fields["id"] . "]' value='1'>";
                     echo "</td>\n";
                 }
                 echo "<td class='center'><strong>";
                 if ($canedit && $withtemplate != 2) {
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/networkport.form.php?id=" . $netport->fields["id"] . "\">";
                 }
                 echo $netport->fields["logical_number"];
                 if ($canedit && $withtemplate != 2) {
                     echo "</a>";
                 }
                 echo "</strong>";
                 showToolTip($netport->fields['comment']);
                 echo "</td>\n";
                 echo "<td>" . $netport->fields["name"] . "</td>\n";
                 echo "<td>" . Dropdown::getDropdownName("glpi_netpoints", $netport->fields["netpoints_id"]) . "</td>\n";
                 echo "<td>" . $netport->fields["ip"] . "<br>" . $netport->fields["mac"] . "</td>\n";
                 echo "<td>" . $netport->fields["netmask"] . "&nbsp;/&nbsp;" . $netport->fields["subnet"] . "<br>" . $netport->fields["gateway"] . "</td>\n";
                 // VLANs
                 echo "<td>";
                 NetworkPort_Vlan::showForNetworkPort($netport->fields["id"], $canedit, $withtemplate);
                 echo "</td>\n";
                 echo "<td>" . Dropdown::getDropdownName("glpi_networkinterfaces", $netport->fields["networkinterfaces_id"]) . "</td>\n";
                 echo "<td width='300' class='tab_bg_2'>";
                 self::showConnection($item, $netport, $withtemplate);
                 echo "</td>\n";
                 echo "<td class='tab_bg_2'>";
                 if ($netport->getContact($netport->fields["id"])) {
                     echo $netport->fields["ip"] . "<br>";
                     echo $netport->fields["mac"];
                 }
                 echo "</td></tr>\n";
             }
             echo "</table>\n";
             if ($canedit && $withtemplate != 2) {
                 openArrowMassive("networking_ports{$rand}", true);
                 Dropdown::showForMassiveAction('NetworkPort');
                 closeArrowMassive();
             }
             if ($canedit && $withtemplate != 2) {
                 echo "</form>";
             }
         } else {
             echo "<table class='tab_cadre_fixe'><tr><th>" . $LANG['networking'][10] . "</th></tr>";
             echo "</table>";
         }
         echo "</div>";
     }
 }