. * --------------------------------------------------------------------- */ namespace Glpi\Features; if (!defined('GLPI_ROOT')) { die("Sorry. You can't access this file directly"); } use Datacenter; use DCRoom; use Enclosure; use Item_Enclosure; use Item_Rack; use Rack; /** * Datacenter breadcrumb **/ trait DCBreadcrumb { /** * Get datacenter element breadcrumb * * @return array */ protected function getDcBreadcrumb() { global $CFG_GLPI; $item = $this; $types = $CFG_GLPI['rackable_types']; $enclosure_types = $types; unset($enclosure_types[array_search('Enclosure', $enclosure_types)]); $breadcrumb = []; if (in_array($item->getType(), $enclosure_types)) { //check if asset is part of an enclosure if ($enclosure = $this->isEnclosurePart($item->getType(), $item->getID(), true)) { $options = ['linkoption' => $enclosure->isDeleted() ? 'class="target-deleted"' : '']; $breadcrumb[] = $enclosure->getLink($options); $item = $enclosure; } } if (in_array($item->getType(), $types)) { //check if asset (or its enclosure) is part of a rack if ($rack = $this->isRackPart($item->getType(), $item->getID(), true)) { $options = ['linkoption' => $rack->isDeleted() ? 'class="target-deleted"' : '']; $breadcrumb[] = $rack->getLink($options); $item = $rack; } } if ($item->getType() == Rack::getType()) { if ($item->fields['dcrooms_id'] > 0) { $dcroom = new DCRoom(); if ($dcroom->getFromDB($item->fields['dcrooms_id'])) { $options = ['linkoption' => $dcroom->isDeleted() ? 'class="target-deleted"' : '']; $breadcrumb[] = $dcroom->getLink($options); $item = $dcroom; } } } if ($item->getType() == DCRoom::getType()) { if ($item->fields['datacenters_id'] > 0) { $datacenter = new Datacenter(); if ($datacenter->getFromDB($item->fields['datacenters_id'])) { $options = ['linkoption' => $datacenter->isDeleted() ? 'class="target-deleted"' : '']; $breadcrumb[] = $datacenter->getLink($options); } } } return $breadcrumb; } /** * Display datacenter element breadcrumb * @see CommonGLPI::showNavigationHeader() * * @return void */ protected function showDcBreadcrumb() { $breadcrumb = $this->getDcBreadcrumb(); if (count($breadcrumb)) { echo "