public function execQuery($post) { global $DB; $pRackItem = new PluginRacksRack_Item(); $pRack = new PluginRacksRack(); $query = ""; $face = -1; if (isset($post['select_front_rear']) && $post['select_front_rear'] != 0) { $face = $post['select_front_rear']; } if (isset($post['plugin_racks_racks_id']) && $post['plugin_racks_racks_id'] != 0) { $restrictRackId = " AND `" . $pRack->getTable() . "`.`id` = '" . $post['plugin_racks_racks_id'] . "'"; $restrictRackId .= " AND `" . $pRack->getTable() . "`.`id` = `" . $pRackItem->getTable() . "`.`plugin_racks_racks_id`"; $leftjoin = ", `glpi_plugin_racks_racks_items` WHERE (1) " . $restrictRackId; } else { $restrictRackId = ""; $leftjoin = "LEFT JOIN `glpi_plugin_racks_racks_items` ON (`glpi_plugin_racks_racks_items`.`plugin_racks_racks_id` = `glpi_plugin_racks_racks`.`id`)"; $restrictRackId = "AND `glpi_plugin_racks_racks_items`.`plugin_racks_racks_id` = `glpi_plugin_racks_racks`.`id`"; } switch ($face) { case PluginRacksRack::FRONT_FACE: $query = "SELECT `" . $pRackItem->getTable() . "`.* , `" . $pRack->getTable() . "`.*\r\n FROM `" . $pRackItem->getTable() . "`,`glpi_plugin_racks_itemspecifications` , `" . $pRack->getTable() . "`\r\n WHERE `" . $pRackItem->getTable() . "`.`plugin_racks_itemspecifications_id` = `glpi_plugin_racks_itemspecifications`.`id` " . $restrictRackId . " \r\n AND (`" . $pRackItem->getTable() . "`.`faces_id` = '" . PluginRacksRack::FRONT_FACE . "' ) AND NOT `" . $pRack->getTable() . "`.`is_deleted`\r\n ORDER BY `" . $pRack->getTable() . "`.`name` ASC, `" . $pRackItem->getTable() . "`.`faces_id` ASC, `" . $pRackItem->getTable() . "`.`position` DESC"; break; case PluginRacksRack::BACK_FACE: $query = "SELECT `" . $pRackItem->getTable() . "`.* , `" . $pRack->getTable() . "`.*\r\n FROM `" . $pRackItem->getTable() . "`,`glpi_plugin_racks_itemspecifications` , `" . $pRack->getTable() . "`\r\n WHERE `" . $pRackItem->getTable() . "`.`plugin_racks_itemspecifications_id` = `glpi_plugin_racks_itemspecifications`.`id` " . $restrictRackId . " \r\n AND (`" . $pRackItem->getTable() . "`.`faces_id` = '" . PluginRacksRack::BACK_FACE . "' ) AND NOT `" . $pRack->getTable() . "`.`is_deleted`\r\n ORDER BY `" . $pRack->getTable() . "`.`name` ASC, `" . $pRackItem->getTable() . "`.`faces_id` ASC, `" . $pRackItem->getTable() . "`.`position` DESC"; break; default: $query = "SELECT `" . $pRackItem->getTable() . "`.* , `" . $pRack->getTable() . "`.*\r\n FROM `" . $pRack->getTable() . "`\r\n {$leftjoin}\r\n AND NOT `" . $pRack->getTable() . "`.`is_deleted`\r\n ORDER BY `" . $pRack->getTable() . "`.`name` ASC, `" . $pRackItem->getTable() . "`.`faces_id` ASC, `" . $pRackItem->getTable() . "`.`position` DESC"; break; } $ret = array("query" => $query, "query_result" => $DB->query($query)); return $ret; }