<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
{
return array(
'search' => $this->make_hook('quick', AUTH_PUBLIC),
- 'search/adv' => $this->make_hook('advanced', AUTH_COOKIE),
+ 'search/adv' => $this->make_hook('advanced', AUTH_COOKIE, 'directory_ax'),
'advanced_search.php' => $this->make_hook('redir_advanced', AUTH_PUBLIC),
- 'search/autocomplete' => $this->make_hook('autocomplete', AUTH_COOKIE, 'user', NO_AUTH),
- 'search/list' => $this->make_hook('list', AUTH_COOKIE, 'user', NO_AUTH),
+ 'search/autocomplete' => $this->make_hook('autocomplete', AUTH_COOKIE, 'directory_ax', NO_AUTH),
+ 'search/list' => $this->make_hook('list', AUTH_COOKIE, 'directory_ax', NO_AUTH),
);
}
{
global $globals;
- $res = XDB::query("SELECT MIN(diminutif), MAX(diminutif)
- FROM groups
- WHERE cat = 'Promotions'");
- list($min, $max) = $res->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';
$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);
$page->addJsLink('ajax.js');
}
- $this->load('search.inc.php');
$page->changeTpl('search/index.tpl');
$page->setTitle('Annuaire');
}
{
global $globals;
require_once 'geocoding.inc.php';
- $this->load('search.inc.php');
$page->assign('advanced',1);
$page->addJsLink('jquery.autocomplete.js');
if ($nb_tot > $globals->search->private_max) {
$this->form_prepare();
$page->trigError('Recherche trop générale.');
+ } else if ($nb_tot == 0) {
+ $this->form_prepare();
+ $page->trigError('Il n\'existe personne correspondant à ces critères dans la base !');
}
}
die();
}
- require_once 'directory.enums.inc.php';
$enums = array(
'binetTxt' => DirEnum::BINETS,
'groupexTxt' => DirEnum::GROUPESX,
'nationaliteTxt' => DirEnum::NATIONALITIES,
'schoolTxt' => DirEnum::EDUSCHOOLS,
);
- if (!array_key_exists($enums, $type)) {
+ if (!array_key_exists($type, $enums)) {
exit();
}
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::EDUDEGREES, Env::i('school'));
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUDEGREES, Env::i('school'));
} else {
- $ids = DirEnum::getOptions(DirEnum::EDUDEGREES);
+ $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::EDUSCHOOLS);
+ $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();
}
}
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");
}
}