X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile.php;h=66343b50ff355a56c9dd8e7e264eb88b5f489357;hb=c4b453748e0affd8711c3a7a95ab6beaad2c2834;hp=ac42c04419d68e3157b12f68d13c3d5667ee4e14;hpb=fb2c09c9676d912c90a77135610f4cfe8c339f6b;p=platal.git diff --git a/modules/profile.php b/modules/profile.php index ac42c04..66343b5 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -1,6 +1,6 @@ $this->make_hook('networking', AUTH_PUBLIC), 'profile/ajax/job' => $this->make_hook('ajax_job', AUTH_COOKIE, 'user', NO_AUTH), 'profile/ajax/secteur' => $this->make_hook('ajax_secteur', AUTH_COOKIE, 'user', NO_AUTH), + 'profile/ajax/ssecteur' => $this->make_hook('ajax_ssecteur', AUTH_COOKIE, 'user', NO_AUTH), 'profile/ajax/skill' => $this->make_hook('ajax_skill', AUTH_COOKIE, 'user', NO_AUTH), 'profile/ajax/searchname' => $this->make_hook('ajax_searchname', AUTH_COOKIE, 'user', NO_AUTH), + 'profile/ajax/buildnames' => $this->make_hook('ajax_buildnames', AUTH_COOKIE, 'user', NO_AUTH), 'javascript/education.js' => $this->make_hook('education_js', AUTH_COOKIE), 'javascript/grades.js' => $this->make_hook('grades_js', AUTH_COOKIE), 'profile/medal' => $this->make_hook('medal', AUTH_PUBLIC), + 'profile/name_info' => $this->make_hook('name_info', AUTH_PUBLIC), 'profile/orange' => $this->make_hook('p_orange', AUTH_MDP), 'profile/usage' => $this->make_hook('p_usage', AUTH_MDP), @@ -137,6 +140,19 @@ class ProfileModule extends PLModule exit; } + function handler_name_info(&$page) + { + header('Content-Type: text/html; charset=utf-8'); + $page->changeTpl('profile/name_info.tpl', SIMPLE); + $res = XDB::iterator("SELECT name, explanations, + FIND_IN_SET('public', flags) AS public, + FIND_IN_SET('has_particle', flags) AS has_particle + FROM profile_name_search_enum + WHERE NOT FIND_IN_SET('not_displayed', flags) + ORDER BY NOT FIND_IN_SET('public', flags)"); + $page->assign('types', $res); + } + function handler_networking(&$page, $mid) { $res = XDB::query("SELECT icon @@ -373,7 +389,7 @@ class ProfileModule extends PLModule WHERE user_id = {?} AND naissance = '0000-00-00'", S::i('uid')); if ($res->numRows()) { $page->trigWarning("Ta date de naissance n'est pas renseignée, ce qui t'empêcheras de réaliser" - . " la procédure de récupération de mot de passe si un jour tu le perdais"); + . " la procédure de récupération de mot de passe si un jour tu le perdais."); } $page->setTitle('Mon Profil'); @@ -438,7 +454,7 @@ class ProfileModule extends PLModule function handler_ajax_edu(&$page, $eduid, $class) { header('Content-Type: text/html; charset=utf-8'); - $page->changeTpl('profile/edu.tpl', NO_SKIN); + $page->changeTpl('profile/general.edu.tpl', NO_SKIN); $res = XDB::iterator("SELECT id, field FROM profile_education_field_enum ORDER BY field"); @@ -463,23 +479,44 @@ class ProfileModule extends PLModule $page->assign('i', $id); $page->assign('job', array()); $page->assign('new', true); - $page->assign('secteurs', XDB::iterator("SELECT id, label - FROM emploi_secteur")); - $page->assign('fonctions', XDB::iterator("SELECT id, fonction_fr, FIND_IN_SET('titre', flags) AS title - FROM fonctions_def - ORDER BY id")); - } - - function handler_ajax_secteur(&$page, $id, $sect, $ssect = -1) + $res = XDB::query("SELECT id, name AS label + FROM profile_job_sector_enum"); + $page->assign('secteurs', $res->fetchAllAssoc()); + $res = XDB::query("SELECT id, fonction_fr, FIND_IN_SET('titre', flags) AS title + FROM fonctions_def + ORDER BY id"); + $page->assign('fonctions', $res->fetchAllAssoc()); + require_once "emails.combobox.inc.php"; + fill_email_combobox($page); + } + + function handler_ajax_secteur(&$page, $id, $jobid, $jobpref, $sect, $ssect = -1) { header('Content-Type: text/html; charset=utf-8'); - $res = XDB::iterator("SELECT id, label - FROM emploi_ss_secteur - WHERE secteur = {?}", $sect); + $res = XDB::iterator("SELECT id, name AS label, FIND_IN_SET('optgroup', flags) AS optgroup + FROM profile_job_subsector_enum + WHERE sectorid = {?}", $sect); $page->changeTpl('profile/jobs.secteur.tpl', NO_SKIN); $page->assign('id', $id); $page->assign('ssecteurs', $res); $page->assign('sel', $ssect); + if ($id != -1) { + $page->assign('change', 1); + $page->assign('jobid', $jobid); + $page->assign('jobpref', $jobpref); + } + } + + function handler_ajax_ssecteur(&$page, $id, $ssect, $sssect = -1) + { + header('Content-Type: text/html; charset=utf-8'); + $res = XDB::iterator("SELECT id, name AS label + FROM profile_job_subsubsector_enum + WHERE subsectorid = {?}", $ssect); + $page->changeTpl('profile/jobs.soussecteur.tpl', NO_SKIN); + $page->assign('id', $id); + $page->assign('sssecteurs', $res); + $page->assign('sel', $sssect); } function handler_ajax_skill(&$page, $cat, $id) @@ -502,24 +539,35 @@ class ProfileModule extends PLModule } } - function handler_ajax_searchname(&$page, $snid) + function handler_ajax_searchname(&$page, $id) { header('Content-Type: text/html; charset=utf-8'); $page->changeTpl('profile/general.searchname.tpl', NO_SKIN); - $page->assign('i', $snid); - $page->assign('sn', array()); - $page->assign('newsn', true); + $res = XDB::query("SELECT id, name, FIND_IN_SET('public', flags) AS pub + FROM profile_name_search_enum + WHERE NOT FIND_IN_SET('not_displayed', flags) + AND NOT FIND_IN_SET('always_displayed', flags)"); + $page->assign('sn_type_list', $res->fetchAllAssoc()); + $page->assign('i', $id); } - + + function handler_ajax_buildnames(&$page, $data) + { + header('Content-Type: text/html; charset=utf-8'); + $page->changeTpl('profile/general.buildnames.tpl', NO_SKIN); + require_once 'name.func.inc.php'; + $page->assign('names', build_names_display($data)); + } + function handler_p_orange(&$page) { $page->changeTpl('profile/orange.tpl'); require_once 'validations.inc.php'; - $res = XDB::query("SELECT e.entry_year, e.grad_year, d.promo_display, FIND_IN_SET('femme', u.flags) AS sexe + $res = XDB::query("SELECT e.entry_year, e.grad_year, d.promo, FIND_IN_SET('femme', u.flags) AS sexe FROM auth_user_md5 AS u - INNER JOIN profile_display AS d ON (d.uid = u.user_id) + INNER JOIN profile_display AS d ON (d.pid = u.user_id) INNER JOIN profile_education AS e ON (e.uid = u.user_id AND FIND_IN_SET('primary', e.flags)) WHERE u.user_id = {?}", S::v('uid')); @@ -584,16 +632,16 @@ class ProfileModule extends PLModule ///// recuperations infos referent //expertise - $res = XDB::query("SELECT expertise FROM mentor WHERE uid = {?}", $user->id()); + $res = XDB::query("SELECT expertise FROM profile_mentor WHERE uid = {?}", $user->id()); $page->assign('expertise', $res->fetchOneCell()); //secteurs $secteurs = $ss_secteurs = Array(); $res = XDB::iterRow( - "SELECT s.label, ss.label - FROM mentor_secteurs AS m - LEFT JOIN emploi_secteur AS s ON(m.secteur = s.id) - LEFT JOIN emploi_ss_secteur AS ss ON(m.secteur = ss.secteur AND m.ss_secteur = ss.id) + "SELECT s.name AS label, ss.name AS label + FROM profile_mentor_sector AS m + LEFT JOIN profile_job_sector_enum AS s ON(m.sectorid = s.id) + LEFT JOIN profile_job_subsector_enum AS ss ON(m.sectorid = ss.sectorid AND m.subsectorid = ss.id) WHERE uid = {?}", $user->id()); while (list($sec, $ssec) = $res->next()) { $secteurs[] = $sec; @@ -605,8 +653,8 @@ class ProfileModule extends PLModule //pays $res = XDB::query( "SELECT gp.pays - FROM mentor_pays AS m - LEFT JOIN geoloc_pays AS gp ON(m.pid = gp.a2) + FROM profile_mentor_country AS m + LEFT JOIN geoloc_pays AS gp ON (m.country = gp.a2) WHERE uid = {?}", $user->id()); $page->assign('pays', $res->fetchColumn()); @@ -621,7 +669,7 @@ class ProfileModule extends PLModule $page->setTitle('Conseil Pro'); //recuperation des noms de secteurs - $res = XDB::iterRow("SELECT id, label FROM emploi_secteur"); + $res = XDB::iterRow("SELECT id, name AS label FROM profile_job_sector_enum"); $secteurs[''] = ''; while (list($tmp_id, $tmp_label) = $res->next()) { $secteurs[$tmp_id] = $tmp_label; @@ -629,7 +677,7 @@ class ProfileModule extends PLModule $page->assign_by_ref('secteurs', $secteurs); // nb de mentors - $res = XDB::query("SELECT count(*) FROM mentor"); + $res = XDB::query("SELECT count(*) FROM profile_mentor"); $page->assign('mentors_number', $res->fetchOneCell()); // On vient d'un formulaire @@ -640,12 +688,12 @@ class ProfileModule extends PLModule $expertise_champ = XDB::escape(Env::v('expertise')); if ($pays_sel != "''") { - $where[] = "mp.pid = $pays_sel"; + $where[] = "mp.country = $pays_sel"; } if ($secteur_sel != "''") { - $where[] = "ms.secteur = $secteur_sel"; + $where[] = "ms.sectorid = $secteur_sel"; if ($ss_secteur_sel != "''") { - $where[] = "ms.ss_secteur = $ss_secteur_sel"; + $where[] = "ms.subsectorid = $ss_secteur_sel"; } } if ($expertise_champ != "''") { @@ -655,9 +703,9 @@ class ProfileModule extends PLModule if ($where) { $where = join(' AND ', $where); - $set = new UserSet("INNER JOIN mentor AS m ON (m.uid = u.user_id) - LEFT JOIN mentor_pays AS mp ON (mp.uid = m.uid) - LEFT JOIN mentor_secteurs AS ms ON (ms.uid = m.uid)", + $set = new UserSet("INNER JOIN profile_mentor AS m ON (m.uid = u.user_id) + LEFT JOIN profile_mentor_country AS mp ON (mp.uid = m.uid) + LEFT JOIN profile_mentor_sector AS ms ON (ms.uid = m.uid)", $where); $set->addMod('mentor', 'Référents'); $set->apply('referent/search', $page, $action, $subaction); @@ -675,9 +723,9 @@ class ProfileModule extends PLModule $page->assign('onchange', 'setSSecteurs()'); $page->assign('id', 'ssect_field'); $page->assign('name', 'ss_secteur'); - $it = XDB::iterator("SELECT id,label AS field - FROM emploi_ss_secteur - WHERE secteur = {?}", $sect); + $it = XDB::iterator("SELECT id, name AS field + FROM profile_job_subsector_enum + WHERE sectorid = {?}", $sect); $page->assign('list', $it); } @@ -686,14 +734,14 @@ class ProfileModule extends PLModule header('Content-Type: text/html; charset=utf-8'); $page->changeTpl('include/field.select.tpl', NO_SKIN); $page->assign('name', 'pays_sel'); - $where = ($ssect ? ' AND ms.ss_secteur = {?}' : ''); + $where = ($ssect ? ' AND ms.subsectorid = {?}' : ''); $it = XDB::iterator("SELECT a2 AS id, pays AS field - FROM geoloc_pays AS g - INNER JOIN mentor_pays AS mp ON (mp.pid = g.a2) - INNER JOIN mentor_secteurs AS ms ON (ms.uid = mp.uid) - WHERE ms.secteur = {?} $where - GROUP BY a2 - ORDER BY pays", $sect, $ssect); + FROM geoloc_pays AS g + INNER JOIN profile_mentor_country AS mp ON (mp.country = g.a2) + INNER JOIN profile_mentor_sector AS ms ON (ms.uid = mp.uid) + WHERE ms.sectorid = {?} $where + GROUP BY a2 + ORDER BY pays", $sect, $ssect); $page->assign('list', $it); }