X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fsearch.php;h=4386c99f2d7eb4d5a70c0914692697fda072e589;hb=03bda5524bd16c5c160a314d42baefe0b3254c62;hp=bc3229316f78954349903e3beae1b42200d9f223;hpb=8e72025345ea4c1e7cedb5c0a68a6d474aca298a;p=platal.git
diff --git a/modules/search.php b/modules/search.php
index bc32293..4386c99 100644
--- a/modules/search.php
+++ b/modules/search.php
@@ -1,6 +1,6 @@
fetchOneRow();
- $page->assign('promo_min', $min);
- $page->assign('promo_max', $max);
-
if (Env::has('quick') || $action == 'geoloc') {
- $quick = trim(Env::v('quick'));
+ $quick = Env::t('quick');
if (S::logged() && !Env::has('page')) {
S::logger()->log('search', 'quick=' . $quick);
}
+
+ if ($quick == '') {
+ $page->trigWarning('Aucun critère de recherche n\'est spécifié.');
+ $page->changeTpl('search/index.tpl');
+ $page->setTitle('Annuaire');
+ $page->assign('formulaire', 1);
+ $page->addJsLink('ajax.js');
+ return;
+ }
+
$list = 'profile|prf|fiche|fic|referent|ref|mentor';
if (S::admin()) {
$list .= '|admin|adm|ax';
@@ -91,6 +94,17 @@ class SearchModule extends PLModule
$url .= 'action=search&q=' . urlencode(substr($quick, 4));
$url .= '&group=' . urlencode('-Equipe,-Main,-PmWiki,-Site,-Review');
pl_redirect($url);
+ } elseif (strpos($quick, 'trombi:') === 0) {
+ $promo = substr($quick, 7);
+ $res = XDB::query("SELECT diminutif
+ FROM groups
+ WHERE cat = 'Promotions' AND diminutif = {?}",
+ $promo);
+ if ($res->numRows() == 0) {
+ $page->trigWarning("La promotion demandée n'est pas valide: $promo");
+ } else {
+ http_redirect('http://www.polytechnique.net/login/' . $promo . '/annuaire/trombi');
+ }
}
$page->assign('formulaire', 0);
@@ -111,18 +125,17 @@ class SearchModule extends PLModule
return;
}
if (!S::logged() && $nb_tot > $globals->search->public_max) {
- new ThrowError('Votre recherche a généré trop de résultats pour un affichage public.');
+ $page->trigError('Votre recherche a généré trop de résultats pour un affichage public.');
} elseif ($nb_tot > $globals->search->private_max) {
- new ThrowError('Recherche trop générale. Une recherche avancée permet de préciser la recherche.');
+ $page->trigError('Recherche trop générale. Une recherche avancée permet de préciser la recherche.');
} elseif (empty($nb_tot)) {
- new ThrowError('Il n\'existe personne correspondant à ces critères dans la base !');
+ $page->trigError('Il n\'existe personne correspondant à ces critères dans la base !');
}
} else {
$page->assign('formulaire',1);
$page->addJsLink('ajax.js');
}
- $this->load('search.inc.php');
$page->changeTpl('search/index.tpl');
$page->setTitle('Annuaire');
}
@@ -131,7 +144,6 @@ class SearchModule extends PLModule
{
global $globals;
require_once 'geocoding.inc.php';
- $this->load('search.inc.php');
$page->assign('advanced',1);
$page->addJsLink('jquery.autocomplete.js');
@@ -156,7 +168,7 @@ class SearchModule extends PLModule
$nb_tot = $view->count();
if ($nb_tot > $globals->search->private_max) {
$this->form_prepare();
- new ThrowError('Recherche trop générale.');
+ $page->trigError('Recherche trop générale.');
}
}
@@ -195,7 +207,6 @@ class SearchModule extends PLModule
die();
}
- require_once 'directory.enums.inc.php';
$enums = array(
'binetTxt' => DirEnum::BINETS,
'groupexTxt' => DirEnum::GROUPESX,
@@ -207,9 +218,9 @@ class SearchModule extends PLModule
'secteurTxt' => DirEnum::SECTORS,
'description' => DirEnum::JOBDESCRIPTION,
'nationaliteTxt' => DirEnum::NATIONALITIES,
- 'schoolTxt' => DirEnum::SCHOOLS,
+ 'schoolTxt' => DirEnum::EDUSCHOOLS,
);
- if (!array_key_exists($enums, $type)) {
+ if (!array_key_exists($type, $enums)) {
exit();
}
@@ -242,50 +253,53 @@ class SearchModule extends PLModule
function handler_list(&$page, $type = null, $idVal = null)
{
+ $page->assign('name', $type);
+ $page->assign('with_text_value', true);
+ $page->assign('onchange', "document.forms.recherche.{$type}Txt.value = this.options[this.selectedIndex].text");
+
// Give the list of all values possible of type and builds a select input for it
$ids = null;
- require_once 'directory.enums.inc.php';
switch ($type) {
case 'binet':
- $ids = DirEnum::getOptions(DirEnum::BINETS);
+ $ids = DirEnum::getOptionsIter(DirEnum::BINETS);
break;
case 'networking_type':
- $ids = DirEnum::getOptions(DirEnum::NETWORKS);
+ $ids = DirEnum::getOptionsIter(DirEnum::NETWORKS);
break;
case 'country':
- $ids = DirEnum::getOptions(DirEnum::COUNTRIES);
+ $ids = DirEnum::getOptionsIter(DirEnum::COUNTRIES);
$page->assign('onchange', 'changeCountry(this.value)');
break;
case 'diploma':
if (Env::has('school') && Env::i('school') != 0) {
- $ids = DirEnum::getOptions(DirEnum::DEGREES, Env::i('school'));
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUDEGREES, Env::i('school'));
} else {
- $ids = DirEnum::getOptions(DirEnum::DEGREES);
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUDEGREES);
}
break;
case 'groupex':
- $ids = DirEnum::getOptions(DirEnum::GROUPESX);
+ $ids = DirEnum::getOptionsIter(DirEnum::GROUPESX);
break;
case 'nationalite':
- $ids = DirEnum::getOptions(DirEnum::NATIONALITIES);
+ $ids = DirEnum::getOptionsIter(DirEnum::NATIONALITIES);
break;
- case 'region':
- if ($isset($_REQUEST['country'])) {
- $ids = DirEnum::getOptions(DirEnum::ADMINAREAS, $_REQUEST['country']);
+ case 'region':
+ if (Env::has('country')) {
+ $ids = DirEnum::getOptionsIter(DirEnum::ADMINAREAS, Env::v('country'));
} else {
- $ids = DirEnum::getOptions(DirEnum::ADMINAREAS);
+ $ids = DirEnum::getOptionsIter(DirEnum::ADMINAREAS);
}
break;
case 'school':
- $ids = DirEnum::getOptions(DirEnum::SCHOOLS);
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUSCHOOLS);
$page->assign('onchange', 'changeSchool(this.value)');
break;
case 'section':
- $ids = DirEnum::getOptions(DirEnum::SECTIONS);
+ $ids = DirEnum::getOptionsIter(DirEnum::SECTIONS);
break;
case 'secteur':
- $ids = DirEnum::getOptions(DirEnum::SECTORS);
+ $ids = DirEnum::getOptionsIter(DirEnum::SECTORS);
break;
default: exit();
}
@@ -296,10 +310,7 @@ class SearchModule extends PLModule
}
pl_content_headers("text/xml");
$page->changeTpl('include/field.select.tpl', NO_SKIN);
- $page->assign('name', $type);
$page->assign('list', $ids);
- $page->assign('with_text_value', true);
- $page->assign('onchange', "document.forms.recherche.{$type}Txt.value = this.options[this.selectedIndex].text");
}
}