- function get_diplomas($school = null)
- {
- if (is_null($school) && Env::has('school')) {
- $school = Env::i('school');
- }
-
- if (!is_null($school)) {
- $sql = 'SELECT type FROM applis_def WHERE id=' . $school;
- } else {
- $sql = 'DESCRIBE applis_def type';
- }
-
- $res = XDB::query($sql);
- $row = $res->fetchOneRow();
- if (!is_null($school)) {
- $types = $row[0];
- } else {
- $types = explode('(',$row[1]);
- $types = str_replace("'","",substr($types[1],0,-1));
- }
- global $page;
- $page->assign('choix_diplomas', explode(',',$types));
- }
-
- function get_advanced($offset, $limit, $order)
- {
- $fields = new SFieldGroup(true, advancedSearchFromInput());
- if ($fields->too_large()) {
- $this->form_prepare();
- new ThrowError('Recherche trop générale.');
- }
- global $globals, $page;
-
- $page->assign('search_vars', $fields->get_url());
-
- $where = $fields->get_where_statement();
- if ($where) {
- $where = "WHERE $where";
- }
- $sql = 'SELECT SQL_CALC_FOUND_ROWS DISTINCT
- u.nom, u.prenom,
- '.$globals->search->result_fields.'
- c.uid AS contact,
- w.ni_id AS watch
- FROM auth_user_md5 AS u
- LEFT JOIN auth_user_quick AS q USING(user_id)
- '.$fields->get_select_statement().'
- '.(Env::has('only_referent') ? ' INNER JOIN mentor AS m ON (m.uid = u.user_id)' : '').'
- LEFT JOIN aliases AS a ON (u.user_id = a.id AND a.type="a_vie")
- LEFT JOIN contacts AS c ON (c.uid='.S::v('uid').'
- AND c.contact=u.user_id)
- LEFT JOIN watch_nonins AS w ON (w.ni_id=u.user_id
- AND w.uid='.S::v('uid').')
- '.$globals->search->result_where_statement."
- $where
- GROUP BY u.user_id
- ORDER BY ".($order?($order.', '):'')
- .implode(',',array_filter(array($fields->get_order_statement(),
- 'promo DESC, NomSortKey, prenom'))).'
- LIMIT '.($offset * $limit).','.$limit;
- $liste = XDB::iterator($sql);
- $res = XDB::query("SELECT FOUND_ROWS()");
- $nb_tot = $res->fetchOneCell();
- return Array($liste, $nb_tot);
- }
-
- function handler_quick(&$page)