Patch racks

Ce patch sur le plugin racks permet de :
+ Associer un bladecenter dans un rack
+ Avoir une représentation graphique des faces du 'bladecenter' dans le rack

Ce patch fait les modifications suivantes :
+ Fournit un fonction pour permettre à des plugins tiers d'enregistrer les types qui ont le droit d'être associés au bladecenter
+ Lors de la représentation graphique, le plugin 'racks' cherche si le type de matériel dans le rack dispose d'une fonction de visualisation (fonction getHTMLVisual)

Index: inc/rack_item.class.php
===================================================================
--- inc/rack_item.class.php    (révision 414)
+++ inc/rack_item.class.php    (copie de travail)
@@ -689,7 +689,7 @@
                } else if ($data["itemtype"]=='NetworkEquipmentModel') {
                   $networking_tot += 1 ;
                   $networking_size_tot += $device_spec["size"] ;
-               } else if ($data["itemtype"]=='PluginRacksOtherModel') {
+               } else /*if ($data["itemtype"]=='PluginRacksOtherModel')*/ {
                   $others_tot += 1 ;
                   $others_size_tot += $device_spec["size"] ;
                }
@@ -704,7 +704,7 @@
                         echo "<tr class='plugin_racks_device_peripherals_color'>";
                      } else if ($data["itemtype"]=='NetworkEquipmentModel') {
                         echo "<tr class='plugin_racks_device_networking_color'>";
-                     } else if ($data["itemtype"]=='PluginRacksOtherModel') {
+                     } else /*if ($data["itemtype"]=='PluginRacksOtherModel')*/ {
                         echo "<tr class='plugin_racks_device_others_color'>";
                      }

@@ -812,10 +812,23 @@
                         echo "<tr class='plugin_racks_device_peripherals_color'>";
                      } else if ($data["itemtype"]=='NetworkEquipmentModel') {
                         echo "<tr class='plugin_racks_device_networking_color'>";
-                     } else if ($data["itemtype"]=='PluginRacksOtherModel') {
+                     } else /*if ($data["itemtype"]=='PluginRacksOtherModel')*/ {
                         echo "<tr class='plugin_racks_device_others_color'>";
                      }
-                     echo "<td class='center'>U$name</td><td colspan='10'></td></tr>";
+             if ($t==1){
+                                  echo "<td class='center'>U$name</td><td rowspan='".($device_size-1)."' colspan='10'>";
+                $itemt=substr($data['itemtype'],0,-5);
+                $item=new $itemt();
+                $s="";
+                if ($item->getFromDB($data['items_id'])){    
+//                    if (method_exists($item,"getHTMLVisual")) {
+                        $s=$item->getHTMLVisual($face);
+//                    }
+                }
+                    echo "$s</td></tr>";
+             }else{
+                         echo "<td class='center'>U$name</td></tr>";
+             }
                   }
                }

@@ -1242,4 +1255,4 @@
    }
 }

-?>
\ No newline at end of file
+?>
Index: inc/itemspecification.class.php
===================================================================
--- inc/itemspecification.class.php    (révision 414)
+++ inc/itemspecification.class.php    (copie de travail)
@@ -32,6 +32,9 @@
 }

 class PluginRacksItemSpecification extends CommonDBTM {
+    static $types = array(
+         'ComputerModel','NetworkEquipmentModel','PeripheralModel','PluginRacksOtherModel'
+         );

    static function getTypeName($nb=0) {

@@ -107,12 +110,15 @@
         return false;
    }

+    static function registerModelClass($type){
+        if (!in_array($type,self::$types)){
+            self::$types[] = $type;
+        }
+    }
+
     static function getModelClasses () {
+        $types=self::$types;

-      static $types = array(
-         'ComputerModel','NetworkEquipmentModel','PeripheralModel','PluginRacksOtherModel'
-         );
-
       foreach ($types as $key=>$type) {
          if (!class_exists($type)) {
             continue;