/** * lista de pruebas abiertas. * As select but not sort criteria and show only open contests. Used in combogrids * @param {object} $am AuthManager object */ function enumerate($am = null) { $this->myLogger->enter(); // retrieve number of inscriptions for this contest if ($am == null) { $am = new AuthManager("Pruebas::enumerate"); } $limit = $am->getUserLimit(); $inscritos = $this->__select("Prueba, count(*) AS Inscritos", "Inscripciones", "1 GROUP BY Prueba", "", ""); // evaluate search criteria for query $q = http_request("q", "s", null); $where = "(Pruebas.Club=Clubes.ID) AND ( Pruebas.Cerrada=0 ) "; if ($q !== "") { $where = "{$where} AND ( (Pruebas.Nombre LIKE '%{$q}%' ) OR (Clubes.Nombre LIKE '%{$q}%') OR (Pruebas.Observaciones LIKE '%{$q}%') )"; } // retrieve result from parent __select() call $result = $this->__select("Pruebas.ID AS ID, Pruebas.Nombre AS Nombre, Pruebas.Club AS Club,Clubes.Nombre AS NombreClub,\n\t\t\t\t\t\t\tPruebas.Ubicacion AS Ubicacion, Pruebas.Triptico AS Triptico, Pruebas.Cartel AS Cartel, \n\t\t\t\t\t\t\tPruebas.RSCE AS RSCE, Pruebas.Selectiva AS Selectiva, Pruebas.Cerrada AS Cerrada,\n\t\t\t\t\t\t\tPruebas.Observaciones AS Observaciones, {$limit} as UserLimit", "Pruebas,Clubes", $where, "ID DESC", ""); // parse result and add inscriptions count foreach ($result['rows'] as &$item) { // pass by reference $item['Inscritos'] = 0; foreach ($inscritos['rows'] as $data) { if ($data['Prueba'] == $item['ID']) { $item['Inscritos'] = $data['Inscritos']; } } } // return composed array $this->myLogger->leave(); return $result; }