/**
  * Get Host States
  *
  * @param string $sgName
  * @param int $detailFlag
  * @param int $admin
  * @param CentreonACL $aclObj
  * @param array $preferences
  * @param bool $isNdo
  * @param string $ndoPrefix
  * @return array
  */
 public function getHostStates($sgName, $detailFlag = false, $admin, $aclObj, $preferences, $isNdo = false, $ndoPrefix = "nagios_")
 {
     if ($isNdo == false) {
         $query = "SELECT DISTINCT h.host_id, h.state, h.name, ssg.servicegroup_id\n                      FROM `services_servicegroups` ssg, `hosts` h, `servicegroups` sg\n                      WHERE h.host_id = ssg.host_id\n                      AND h.name NOT LIKE '_Module_%'\n                      AND h.enabled = 1\n                      AND ssg.servicegroup_id = sg.servicegroup_id\n                      AND sg.name = '" . $this->dbb->escape($sgName) . "' ";
         if (!$admin) {
             $query .= $aclObj->queryBuilder("AND", "h.host_id", $aclObj->getHostsString("ID", $this->dbb));
         }
         $query .= " ORDER BY h.name ";
     } else {
         $query = "SELECT DISTINCT h.host_id, hs.current_state as state, h.display_name as name, ssg.servicegroup_id\n                      FROM `{$ndoPrefix}servicegroup_members` ssg, `{$ndoPrefix}hosts` h, `{$ndoPrefix}services` s,\n                           `{$ndoPrefix}hoststatus` hs, `{$ndoPrefix}servicegroups` sg, `{$ndoPrefix}objects` o\n                      WHERE h.host_object_id = s.host_object_id\n                      AND s.host_object_id = hs.host_object_id\n                      AND s.service_object_id = ssg.service_object_id\n                      AND ssg.servicegroup_id = sg.servicegroup_id\n                      AND sg.servicegroup_object_id = o.object_id\n                      AND h.display_name NOT LIKE '_Module_%'                                            \n                      AND o.name1 = '" . $this->dbb->escape($sgName) . "' ";
         if (!$admin) {
             $query .= $aclObj->queryBuilder("AND", "h.display_name", $aclObj->getHostsString("NAME", $this->dbb));
         }
         $query .= " ORDER BY h.display_name ";
     }
     $res = $this->dbb->query($query);
     $tab = array();
     $detailTab = array();
     while ($row = $res->fetchRow()) {
         if (!isset($tab[$row['state']])) {
             $tab[$row['state']] = 0;
         }
         if (!isset($detailTab[$row['name']])) {
             $detailTab[$row['name']] = array();
         }
         foreach ($row as $key => $val) {
             $detailTab[$row['name']][$key] = $val;
         }
         $tab[$row['state']]++;
     }
     if ($detailFlag == true) {
         return $detailTab;
     }
     return $tab;
 }