+
+ 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;
+
+ switch ($type) {
+ case 'binet':
+ $ids = DirEnum::getOptionsIter(DirEnum::BINETS);
+ break;
+ case 'networking_type':
+ $ids = DirEnum::getOptionsIter(DirEnum::NETWORKS);
+ break;
+ case 'country':
+ $ids = DirEnum::getOptionsIter(DirEnum::COUNTRIES);
+ $page->assign('onchange', 'changeCountry(this.value)');
+ break;
+ case 'diploma':
+ if (Env::has('school') && Env::i('school') != 0) {
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUDEGREES, Env::i('school'));
+ } else {
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUDEGREES);
+ }
+ break;
+ case 'groupex':
+ $ids = DirEnum::getOptionsIter(DirEnum::GROUPESX);
+ break;
+ case 'nationalite':
+ $ids = DirEnum::getOptionsIter(DirEnum::NATIONALITIES);
+ break;
+ case 'administrativearea':
+ if (Env::has('country')) {
+ $ids = DirEnum::getOptionsIter(DirEnum::ADMINAREAS, Env::v('country'));
+ } else {
+ $ids = DirEnum::getOptionsIter(DirEnum::ADMINAREAS);
+ }
+ $page->assign('onchange', 'changeAdministrativeArea(this.value)');
+ break;
+ case 'subadministrativearea':
+ if (Env::has('administrativearea')) {
+ $ids = DirEnum::getOptionsIter(DirEnum::SUBADMINAREAS, Env::v('administrativearea'));
+ } else {
+ $ids = DirEnum::getOptionsIter(DirEnum::SUBADMINAREAS);
+ }
+ break;
+ case 'school':
+ $ids = DirEnum::getOptionsIter(DirEnum::EDUSCHOOLS);
+ $page->assign('onchange', 'changeSchool(this.value)');
+ break;
+ case 'section':
+ $ids = DirEnum::getOptionsIter(DirEnum::SECTIONS);
+ break;
+ case 'jobterm':
+ if (Env::has('jtid')) {
+ JobTerms::ajaxGetBranch($page, JobTerms::ONLY_JOBS);
+ return;
+ } else {
+ pl_content_headers('text/xml');
+ echo '<div>'; // global container so that response is valid xml
+ echo '<input name="jobtermTxt" type="text" style="display:none" size="32" />';
+ echo '<input name="jobterm" type="hidden"/>';
+ echo '<div class="term_tree"></div>'; // container where to create the tree
+ echo '<script type="text/javascript" src="javascript/jquery.jstree.js"></script>';
+ echo '<script type="text/javascript" src="javascript/jobtermstree.js"></script>';
+ echo '<script type="text/javascript">createJobTermsTree(".term_tree", "search/list/jobterm", "search", "searchForJobTerm");</script>';
+ echo '</div>';
+ exit();
+ }
+ default: exit();
+ }
+ if (isset($idVal)) {
+ pl_content_headers("text/plain");
+ echo $ids[$idVal];
+ exit();
+ }
+ pl_content_headers("text/xml");
+ $page->changeTpl('include/field.select.tpl', NO_SKIN);
+ $page->assign('list', $ids);
+ }
+
+ function handler_referent($page, $action = null, $subaction = null)
+ {
+ global $globals;
+
+ $wp = new PlWikiPage('Docs.Emploi');
+ $wp->buildCache();
+
+ $page->setTitle('Emploi et Carrières');
+
+ // Count mentors
+ $res = XDB::query("SELECT count(distinct pid) FROM profile_mentor_term");
+ $page->assign('mentors_number', $res->fetchOneCell());
+
+ // Search for mentors matching filters
+ require_once 'ufbuilder.inc.php';
+ $ufb = new UFB_MentorSearch();
+ if (!$ufb->isEmpty()) {
+ require_once 'userset.inc.php';
+ $ufc = $ufb->getUFC();
+ $set = new ProfileSet($ufc);
+ $set->addMod('mentor', 'Référents');
+ $set->apply('referent/search', $page, $action, $subaction);
+ $nb_tot = $set->count();
+ if ($nb_tot > $globals->search->private_max) {
+ $this->form_prepare();
+ $page->trigError('Recherche trop générale.');
+ $page->assign('plset_count', 0);
+ } else if ($nb_tot == 0) {
+ $this->form_prepare();
+ $page->trigError('Il n\'existe personne correspondant à ces critères dans la base.');
+ }
+ }
+
+ $page->changeTpl('search/referent.tpl');
+ }
+
+ /**
+ * Builds a select field to choose among countries that referents
+ * know about. Only referents linked to term (jtid) are displayed.
+ * @param $jtid id of job term to restrict referents
+ */
+ function handler_referent_countries($page, $jtid = null)