Exemplo n.º 1
0
 /**
  * @static function displayMap : permet de récuperer tous les éléments de  la base de données pour pouvoir
  * les afficher sur la carte
  * @param $items
  * @param $params
  */
 static function displayMap($items, $params)
 {
     global $CFG_GLPI, $DB;
     if (isset($params['itemtype']) && is_array($params['itemtype'])) {
         foreach ($items as $classe => $ids) {
             if (!in_array($classe, $params['itemtype'])) {
                 unset($items[$classe]);
             }
         }
     }
     $image = new PluginPositionsImageItem();
     $tableImage = $image->getTable();
     $plugin = new Plugin();
     $objects = array();
     if (!empty($items)) {
         foreach ($items as $classe => $ids) {
             foreach ($ids as $key => $val) {
                 $itemclass = new $val['itemtype']();
                 $itemclass->getFromDB($val['items_id']);
                 if ($itemclass->getFromDB($val['items_id'])) {
                     if ($itemclass->fields['locations_id'] == $params['locations_id']) {
                         $val['picture'] = null;
                         $val['img'] = null;
                         $canvas_id = count($objects);
                         $text = self::displayItemTitle($itemclass);
                         if ($plugin->isActivated("resources") && $val['itemtype'] == 'PluginResourcesResource') {
                             $val['picture'] = $itemclass->fields['picture'];
                             $img = $CFG_GLPI['url_base'] . '/plugins/resources/pics/nobody.png';
                             if (!($val['picture'] == null)) {
                                 $img = $CFG_GLPI['url_base'] . '/plugins/resources/front/picture.send.php?file=' . $val['picture'];
                             }
                             $objects[$val['id']] = array('canvas_id' => $canvas_id, 'name' => $text, 'id' => $val['id'], 'items_id' => $val['items_id'], 'itemtype' => $val['itemtype'], 'width' => 25, 'height' => 30, 'x_coordinates' => $val['x_coordinates'], 'y_coordinates' => $val['y_coordinates'], 'img' => $img);
                         } else {
                             if ($val['itemtype'] == 'Location') {
                                 $img = $CFG_GLPI['url_base'] . '/plugins/positions/pics/door.png';
                                 $objects[$val['id']] = array('canvas_id' => $canvas_id, 'name' => $text, 'id' => $val['id'], 'items_id' => $val['items_id'], 'itemtype' => $val['itemtype'], 'width' => 25, 'height' => 30, 'x_coordinates' => $val['x_coordinates'], 'y_coordinates' => $val['y_coordinates'], 'img' => $img);
                             } else {
                                 if ($val['itemtype'] == 'Netpoint') {
                                     $img = $CFG_GLPI['url_base'] . '/plugins/positions/pics/socket.png';
                                     $objects[$val['id']] = array('canvas_id' => $canvas_id, 'name' => $text, 'id' => $val['id'], 'items_id' => $val['items_id'], 'itemtype' => $val['itemtype'], 'width' => 25, 'height' => 30, 'x_coordinates' => $val['x_coordinates'], 'y_coordinates' => $val['y_coordinates'], 'img' => $img);
                                 } else {
                                     $itemtype = $val['itemtype'] . "Type";
                                     $typefield = getForeignKeyFieldForTable(getTableForItemType($itemtype));
                                     $imgitem = new PluginPositionsImageItem();
                                     if (isset($itemclass->fields[$typefield])) {
                                         $val['img'] = $imgitem->displayItemImage($itemclass->fields[$typefield], $classe);
                                     }
                                     $img = $CFG_GLPI['url_base'] . '/plugins/positions/pics/nothing.png';
                                     if (!($val['img'] == null)) {
                                         $img = $CFG_GLPI['url_base'] . '/plugins/positions/front/map.send.php?type=pics&file=' . $val['img'];
                                     }
                                     $objects[$val['id']] = array('canvas_id' => $canvas_id, 'name' => $text, 'id' => $val['id'], 'items_id' => $val['items_id'], 'itemtype' => $val['itemtype'], 'width' => 30, 'height' => 30, 'x_coordinates' => $val['x_coordinates'], 'y_coordinates' => $val['y_coordinates'], 'img' => $img);
                                 }
                             }
                         }
                         $canvas_id++;
                     }
                 }
             }
         }
         self::drawCanvas($objects, $params);
     } else {
         //tests sur les droits
         $eventless = false;
         if (!plugin_positions_haveRight('positions', 'w') || isset($params['menuoff']) && $params['menuoff'] == 1) {
             $eventless = true;
         }
         $objects[] = array('canvas_id' => '0', 'name' => '', 'id' => '', 'items_id' => '', 'itemtype' => '', 'width' => 0.5, 'height' => 0.5, 'x_coordinates' => -300, 'y_coordinates' => 80, 'testEvent' => $eventless, 'hideLabel' => true, 'img' => $CFG_GLPI['url_base'] . '/plugins/positions/pics/nothing.png');
         self::drawCanvas($objects, $params);
     }
 }