Merge commit 'origin/fusionax' into account
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 17 Mar 2009 19:10:10 +0000 (20:10 +0100)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 17 Mar 2009 19:10:10 +0000 (20:10 +0100)
1  2 
modules/search.php

diff --combined modules/search.php
@@@ -73,9 -73,9 +73,9 @@@ class SearchModule extends PLModul
      {
          global $globals;
  
 -        $res = XDB::query("SELECT  MIN(`diminutif`), MAX(`diminutif`)
 -                             FROM  `groupex`.`asso`
 -                            WHERE  `cat` = 'Promotions'");
 +        $res = XDB::query("SELECT  MIN(diminutif), MAX(diminutif)
 +                             FROM  groupex.asso
 +                            WHERE  cat = 'Promotions'");
          list($min, $max) = $res->fetchOneRow();
          $page->assign('promo_min', $min);
          $page->assign('promo_max', $max);
                             array('',
                                   '\\\\\1',
                                   '.*'),
 -                           $_REQUEST['q']);
 +                           Env::s('q'));
          if (!$q) exit();
  
          // try to look in cached results
 -        $cache = XDB::query('SELECT  `result`
 -                               FROM  `search_autocomplete`
 -                              WHERE  `name` = {?} AND
 -                                     `query` = {?} AND
 -                                     `generated` > NOW() - INTERVAL 1 DAY',
 +        $cache = XDB::query('SELECT  result
 +                               FROM  search_autocomplete
 +                              WHERE  name = {?} AND
 +                                     query = {?} AND
 +                                     generated > NOW() - INTERVAL 1 DAY',
                               $type, $q);
          if ($res = $cache->fetchOneCell()) {
              echo $res;
          }
  
          // default search
 -        $unique = '`user_id`';
 -        $db = '`auth_user_md5`';
 +        $unique = 'pid';
 +        $db = 'profiles';
          $realid = false;
          $beginwith = true;
          $field2 = false;
  
          switch ($type) {
            case 'binetTxt':
 -            $db = '`binets_def` INNER JOIN
 -                   `binets_ins` ON(`binets_def`.`id` = `binets_ins`.`binet_id`)';
 -            $field = '`binets_def`.`text`';
 +            $db = 'binets_def INNER JOIN
 +                   binets_ins ON(binets_def.id = binets_ins.binet_id)';
 +            $field = 'binets_def.text';
              if (strlen($q) > 2)
                  $beginwith = false;
 -            $realid = '`binets_def`.`id`';
 +            $realid = 'binets_def.id';
              break;
            case 'networking_typeTxt':
 -            $db = '`profile_networking_enum` INNER JOIN
 -                   `profile_networking` ON(`profile_networking`.`network_type` = `profile_networking_enum`.`network_type`)';
 -            $field = '`profile_networking_enum`.`name`';
 +            $db = 'profile_networking_enum INNER JOIN
 +                   profile_networking ON(profile_networking.network_type = profile_networking_enum.network_type)';
 +            $field = 'profile_networking_enum.name';
              $unique = 'uid';
 -            $realid = '`profile_networking_enum`.`network_type`';
 +            $realid = 'profile_networking_enum.network_type';
              break;
            case 'city':
              $db     = 'geoloc_localities INNER JOIN
              break;
            case 'nationaliteTxt':
              $db     = 'geoloc_countries INNER JOIN
 -                       auth_user_md5 ON (geoloc_countries.a2 = auth_user_md5.nationalite
 -                                         OR geoloc_countries.a2 = auth_user_md5.nationalite2
 -                                         OR geoloc_countries.a2 = auth_user_md5.nationalite3)';
 +                       profile ON (geoloc_countries.a2 IN (profile.nationality1, profile.nationality2, profile.nationality3))';
              $field  = 'geoloc_countries.nationalityFR';
              $realid = 'geoloc_countries.iso_3166_1_a2';
              break;
              $unique    = 'uid';
              $beginwith = false;
              break;
-           case 'sss_secteur':
+           case 'subSubSector':
              $db        = 'profile_job_subsubsector_enum';
              $field     = 'name';
              $beginwith = false;
              $distinct  = false;
              break;
            case 'sectionTxt':
 -            $db = '`sections` INNER JOIN
 -                   `auth_user_md5` ON(`auth_user_md5`.`section` = `sections`.`id`)';
 -            $field = '`sections`.`text`';
 -            $realid = '`sections`.`id`';
 +            $db = 'sections AS acs
 +                   INNER JOIN profiles AS acp ON (acp.section = acs.id)';
 +            $field = 'acs.text';
 +            $realid = 'acs.id';
              $beginwith = false;
              break;
            default: exit();
                  $res .= "\n";
              }
          }
 -        XDB::query('REPLACE INTO  `search_autocomplete`
 +        XDB::query('REPLACE INTO  search_autocomplete
                            VALUES  ({?}, {?}, {?}, NOW())',
                      $type, $q, $res);
          echo $res;
      function handler_list(&$page, $type = null, $idVal = null)
      {
          // Give the list of all values possible of type and builds a select input for it
 -        $field = '`text`';
 -        $id = '`id`';
 +        $field = 'text';
 +        $id = 'id';
          $where = '';
  
          switch ($type) {
            case 'binet':
 -            $db = '`binets_def`';
 +            $db = 'binets_def';
              break;
            case 'networking_type':
 -            $db = '`profile_networking_enum`';
 -            $field = '`name`';
 -            $id = '`network_type`';
 +            $db = 'profile_networking_enum';
 +            $field = 'name';
 +            $id = 'network_type';
              break;
            case 'country':
              $db    = 'geoloc_countries';
              $page->assign('onchange', 'changeCountry(this.value)');
              break;
            case 'fonction':
 -            $db = '`fonctions_def`';
 -            $field = '`fonction_fr`';
 +            $db = 'fonctions_def';
 +            $field = 'fonction_fr';
              break;
            case 'diploma':
              header('Content-Type: text/xml; charset="UTF-8"');
              break;
            case 'nationalite':
              $db    = 'geoloc_countries INNER JOIN
 -                      auth_user_md5 ON (geoloc_countries.iso_3166_1_a2 = auth_user_md5.nationalite
 -                                        OR geoloc_countries.iso_3166_1_a2 = auth_user_md5.nationalite2
 -                                        OR geoloc_countries.iso_3166_1_a2 = auth_user_md5.nationalite3)';
 +                   profiles AS acp ON (acgp.a2 IN (acp.nationality1, acp.nationality2, acp.nationality3))';
              $field = 'nationalityFR';
              $id    = 'iso_3166_1_a2';
              break;
              $page->assign('onchange', 'changeSchool(this.value)');
              break;
            case 'section':
 -            $db = '`sections`';
 +            $db = 'sections';
              break;
            case 'secteur':
              $db    = 'profile_job_sector_enum INNER JOIN