From 2f678da163eb9d8720145557a569aba7364f05c4 Mon Sep 17 00:00:00 2001 From: x2000habouzit Date: Wed, 12 Jul 2006 22:18:06 +0000 Subject: [PATCH] migrate referent + profile edition git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@454 839d8a87-29fc-0310-9880-83ba4fa771e5 --- hooks/tmp.inc.php | 4 +- htdocs/profil.php | 125 ---------------- htdocs/referent.php | 153 ------------------- include/profil/get_general.inc.php | 2 +- include/profil/verif_adresses.inc.php | 2 +- include/tabs.inc.php | 32 ++-- modules/events.php | 8 +- modules/profile.php | 274 +++++++++++++++++++++++++++++++--- templates/fiche.tpl | 4 +- templates/geoloc/form.address.tpl | 2 +- templates/include/trombi.tpl | 4 +- templates/login.tpl | 5 +- templates/nomusage.tpl | 2 +- templates/orange.tpl | 2 +- templates/profil.tpl | 11 +- templates/profil/adresses.tpl | 4 +- templates/profil/mentor.tpl | 2 +- templates/profil/naissance.tpl | 2 +- templates/referent.tpl | 88 +++++------ templates/register/success.tpl | 2 +- 20 files changed, 335 insertions(+), 393 deletions(-) delete mode 100644 htdocs/profil.php delete mode 100644 htdocs/referent.php diff --git a/hooks/tmp.inc.php b/hooks/tmp.inc.php index db8e254..736b998 100644 --- a/hooks/tmp.inc.php +++ b/hooks/tmp.inc.php @@ -23,14 +23,14 @@ function tmp_menu() { global $globals; - $globals->menu->addPrivateEntry(XOM_CUSTOM, 10, 'Mon profil', 'profil.php'); + $globals->menu->addPrivateEntry(XOM_CUSTOM, 10, 'Mon profil', 'profile/edit'); $globals->menu->addPrivateEntry(XOM_CUSTOM, 20, 'Mes contacts', 'carnet/contacts'); $globals->menu->addPrivateEntry(XOM_CUSTOM, 30, 'Mon carnet', 'carnet/'); $globals->menu->addPrivateEntry(XOM_CUSTOM, 40, 'Mon mot de passe', 'password'); $globals->menu->addPrivateEntry(XOM_CUSTOM, 50, 'Mes préférences', 'prefs'); $globals->menu->addPrivateEntry(XOM_GROUPS, 10, 'Trombi promo', 'trombi'); - $globals->menu->addPrivateEntry(XOM_GROUPS, 20, 'Conseil Pro.', 'referent.php'); + $globals->menu->addPrivateEntry(XOM_GROUPS, 20, 'Conseil Pro.', 'referent'); if ($globals->geoloc->use_map()) $globals->menu->addPrivateEntry(XOM_GROUPS, 10, 'Planisphère', 'geoloc/'); $globals->menu->addPrivateEntry(XOM_GROUPS, 30, 'Groupes X', 'http://www.polytechnique.net/plan.php'); diff --git a/htdocs/profil.php b/htdocs/profil.php deleted file mode 100644 index 42727de..0000000 --- a/htdocs/profil.php +++ /dev/null @@ -1,125 +0,0 @@ -addCssLink('css/profil.css'); -$page->assign('xorg_title','Polytechnique.org - Mon Profil'); - -require_once('tabs.inc.php'); -require_once('profil.func.inc.php'); - -if (Post::has('register_from_ax_question')) { - $globals->xdb->query('UPDATE auth_user_quick SET profile_from_ax = 1 WHERE user_id = {?}', Session::getInt('uid')); -} - -require_once('synchro_ax.inc.php'); -if (is_ax_key_missing()) - $page->assign('no_private_key', true); - -if (Env::get('synchro_ax') == 'confirm' && !is_ax_key_missing()) { - ax_synchronize(Session::get('bestalias'), Session::getInt('uid')); - $page->trig('Ton profil a été synchronisé avec celui du site polytechniciens.com'); -} - -//on met a jour $opened_tab et $new_tab qui sont le tab du POST et le tab demande -// Tout d'abord, quel est le tab actuel ? -// si on vient d'un POST, old_tab etait le tab courant -if (Env::has('old_tab') && isset($tabname_array[Env::get('old_tab')])) { - // on verifie que la valeur postee existe bien - $opened_tab = Env::get('old_tab'); -} -$new_tab = Env::has('suivant') ? get_next_tab($opened_tab) : $opened_tab; - -// pour tous les tabs, la date de naissance pour verifier -// quelle est bien rentree et la date. -$res = $globals->xdb->query( - "SELECT naissance, DATE_FORMAT(date,'%d.%m.%Y') - FROM auth_user_md5 - WHERE user_id={?}", Session::getInt('uid')); -list($naissance, $date_modif_profil) = $res->fetchOneRow(); - -// lorsqu'on n'a pas la date de naissance en base de données -if (!$naissance) { - // la date de naissance n'existait pas et vient d'être soumise dans la variable - if (Env::has('birth')) { - //en cas d'erreur : - if (!ereg('[0-3][0-9][0-1][0-9][1][9]([0-9]{2})', Env::get('birth'))) { - $page->assign('etat_naissance', 'query'); - $page->trig_run('Date de naissance incorrecte ou incohérente.'); - } - - //sinon - $birth = sprintf("%s-%s-%s", substr(Env::get('birth'),4,4), substr(Env::get('birth'),2,2), substr(Env::get('birth'),0,2)); - $globals->xdb->execute("UPDATE auth_user_md5 SET naissance={?} WHERE user_id={?}", $birth, Session::getInt('uid')); - $page->assign('etat_naissance','ok'); - $page->run(); - } else { - $page->assign('etat_naissance','query'); - } - $page->run();//on affiche le formulaire pour naissance -} - -//doit-on faire un update ? -if (Env::has('modifier') || Env::has('suivant')) { - require_once("profil/get_{$opened_tab}.inc.php"); - require_once("profil/verif_{$opened_tab}.inc.php"); - - if($page->nb_errs()) { - require_once("profil/assign_{$opened_tab}.inc.php"); - $page->assign('onglet',$opened_tab); - $page->assign('onglet_last',get_last_tab()); - $page->assign('onglet_tpl',"profil/$opened_tab.tpl"); - $page->run(); - } - - $date=date("Y-m-j");//nouvelle date de mise a jour - - //On sauvegarde l'uid pour l'AX - /* on sauvegarde les changements dans user_changes : - * on a juste besoin d'insérer le user_id de la personne dans la table - */ - $globals->xdb->execute('REPLACE INTO user_changes SET user_id={?}', Session::getInt('uid')); - - if (!Session::has('suid')) { - require_once('notifs.inc.php'); - register_watch_op(Session::getInt('uid'), WATCH_FICHE); - } - - // mise a jour des champs relatifs au tab ouvert - require_once("profil/update_{$opened_tab}.inc.php"); - - $log =& Session::getMixed('log'); - $log->log('profil', $opened_tab); - $page->assign('etat_update', 'ok'); -} - -require_once("profil/get_{$new_tab}.inc.php"); -require_once("profil/verif_{$new_tab}.inc.php"); -require_once("profil/assign_{$new_tab}.inc.php"); - -$page->assign('onglet',$new_tab); -$page->assign('onglet_last',get_last_tab()); -$page->assign('onglet_tpl',"profil/$new_tab.tpl"); -$page->run(); - -// vim:set et sws=4 sw=4 sts=4: -?> diff --git a/htdocs/referent.php b/htdocs/referent.php deleted file mode 100644 index ff7d12f..0000000 --- a/htdocs/referent.php +++ /dev/null @@ -1,153 +0,0 @@ -assign('xorg_title','Polytechnique.org - Conseil Pro'); - -$nb_max_resultats_total = 100; -$nb_max_resultats_par_page = 10; -$show_formulaire = true; -$page->assign_by_ref('show_formulaire', $show_formulaire); -$page->assign('show_resultat', false); - - -$secteur_selectionne = Post::get('secteur'); -$ss_secteur_selectionne = Post::get('ss_secteur'); -$pays_selectionne = Post::get('pays', '00'); -$expertise_champ = Post::get('expertise'); - -$page->assign('pays_selectionne',$pays_selectionne); -$page->assign('expertise_champ',$expertise_champ); -$page->assign('secteur_selectionne',$secteur_selectionne); -$page->assign('ss_secteur_selectionne',$ss_secteur_selectionne); - -//recuperation des noms de secteurs -$res = $globals->xdb->iterRow("SELECT id, label FROM emploi_secteur"); -$secteurs[''] = ''; -while (list($tmp_id, $tmp_label) = $res->next()) { - $secteurs[$tmp_id] = $tmp_label; -} -$page->assign_by_ref('secteurs', $secteurs); - -//on recupere les sous-secteurs si necessaire -$ss_secteurs[''] = ''; -if (!empty($secteur_selectionne)) -{ - $res = $globals->xdb->iterRow("SELECT id, label FROM emploi_ss_secteur WHERE secteur = {?}", $secteur_selectionne); - while (list($tmp_id, $tmp_label) = $res->next()) { - $ss_secteurs[$tmp_id] = $tmp_label; - } -} -$page->assign_by_ref('ss_secteurs', $ss_secteurs); - -//recuperation des noms de pays -$res = $globals->xdb->iterRow("SELECT a2, pays FROM geoloc_pays WHERE pays <> '' ORDER BY pays"); -$pays['00'] = ''; -while (list($tmp_id, $tmp_label) = $res->next()) { - $pays[$tmp_id] = $tmp_label; -} -$page->assign_by_ref('pays', $pays); - -//On vient d'un formulaire -if (Env::has('Chercher')) { - - $champ_select = 'm.uid, a.prenom, a.nom, a.promo, l.alias, m.expertise'; - $champ_select = $champ_select.', mp.pid'; - $champ_select = $champ_select.', ms.secteur, ms.ss_secteur'; - - $clause_from = ' FROM mentor AS m - LEFT JOIN auth_user_md5 AS a ON(m.uid = a.user_id) - INNER JOIN aliases AS l ON (a.user_id=l.id AND FIND_IN_SET(\'bestalias\',l.flags)) - LEFT JOIN mentor_pays AS mp ON(m.uid = mp.uid) - LEFT JOIN mentor_secteurs AS ms ON(m.uid = ms.uid)'; - - $clause_where = ''; - - if ($pays_selectionne != '00') { - $clause_where = $clause_where." mp.pid = '".addslashes($pays_selectionne)."' AND"; - } - if ($secteur_selectionne) { - $clause_where = $clause_where." ms.secteur = '".addslashes($secteur_selectionne)."' AND"; - if($ss_secteur_selectionne) { - $clause_where = $clause_where." ms.ss_secteur = '".addslashes($ss_secteur_selectionne)."' AND"; - } - } - - if($expertise_champ) { - $clause_where = $clause_where." MATCH(m.expertise) AGAINST('".addslashes($expertise_champ)."') AND"; - } - - if($clause_where) { - - $show_formulaire = false; - $clause_where = substr($clause_where, 0, -3); //on vire le dernier AND - - $sql = "SELECT $champ_select $clause_from WHERE $clause_where GROUP BY uid ORDER BY RAND(".Session::getInt('uid').')'; - $res = $globals->xdb->iterRow($sql); - - if ($res->total() == 0) { - $page->assign('recherche_trop_large',true); - } else { - if (Env::has('page_courante')) { - $page_courante = Env::getInt('page_courante'); - } else { - $page_courante = 1; - } - - $current_uid = 0; - $nb_resultats = 0; - $page->assign('resultats',true); - $personnes = Array(); - $page->assign_by_ref('personnes',$personnes); - while( (list($uid, $prenom, $nom, $promo, $bestalias, - $expertise_bd, $pays_id, $secteur_id, $ss_secteur_id) = $res->next()) - && ($nb_resultats < $nb_max_resultats_total)){ - if ($current_uid != $uid) { - $current_uid = $uid; - $page_correspondante = (int)($nb_resultats / $nb_max_resultats_par_page) +1; - $nb_resultats++; - if( $page_correspondante == $page_courante){ - $pers_trouve['nom'] = $nom; - $pers_trouve['prenom'] = $prenom; - $pers_trouve['promo'] = $promo; - $pers_trouve['bestalias'] = $bestalias; - $pers_trouve['expertise'] = $expertise_bd; - $personnes[] = $pers_trouve; - } - } - } - $nb_pages = (int) ($nb_resultats/$nb_max_resultats_par_page) + 1; - $page->assign('nb_pages_total', $nb_pages); - $page->assign('page_courante', $page_courante); - } - } -} - -if ($show_formulaire) { - $res = $globals->xdb->query("SELECT count(*) FROM mentor"); - $page->assign('mentors_number', $res->fetchOneCell()); -} - -$page->run(); - -?> diff --git a/include/profil/get_general.inc.php b/include/profil/get_general.inc.php index cc78409..a8702f3 100644 --- a/include/profil/get_general.inc.php +++ b/include/profil/get_general.inc.php @@ -56,7 +56,7 @@ replace_ifset($appli_type1,"appli_type1"); replace_ifset($appli_type2,"appli_type2"); replace_ifset($nickname,"nickname"); -if(Env::has('modifier') || Env::has('suivant') && Env::get('old_tab') == 'general') { +if(Env::has('modifier') || Env::has('suivant') && $opened_tab == 'general') { $mobile_pub = Env::get('mobile_pub'); $web_pub = Env::has('web_pub')?'public':'private'; $freetext_pub = Env::has('freetext_pub')?'public':'private'; diff --git a/include/profil/verif_adresses.inc.php b/include/profil/verif_adresses.inc.php index 4fd429f..df30cbe 100644 --- a/include/profil/verif_adresses.inc.php +++ b/include/profil/verif_adresses.inc.php @@ -164,7 +164,7 @@ for ($adrid = 1; $adrid <= $nb_adr_max; $adrid++) { geoloc_adresse($adrid); } -if(Env::get('old_tab', '') == 'adresses' && Env::has('modifier')){ // on ne valide que qd on vient du formulaire +if ($opened_tab == 'adresses' && Env::has('modifier')){ // on ne valide que qd on vient du formulaire $adresses_principales = 0; reset($adresses); foreach($adresses as $adrid => $adr) { diff --git a/include/tabs.inc.php b/include/tabs.inc.php index de64e5c..30c10b0 100644 --- a/include/tabs.inc.php +++ b/include/tabs.inc.php @@ -20,7 +20,7 @@ ***************************************************************************/ -$tabname_array = Array( +$GLOBALS['tabname_array'] = Array( "general" => "Général", "adresses" => "Adresses\npersonnelles", "poly" => "Groupes X\nBinets", @@ -29,35 +29,25 @@ $tabname_array = Array( "skill" => "Compétences\ndiverses", "mentor" => "Mentoring" ); - -$opened_tab = 'general'; -$page->assign("onglets",$tabname_array); -$page->assign("onglet_last",'mentor'); +$page->assign('onglets', $GLOBALS['tabname_array']); -function get_last_tab(){ - end($GLOBALS['tabname_array']); - return key($GLOBALS['tabname_array']); -} +function get_next_tab($tabname) { + $tabname_array = $GLOBALS['tabname_array']; -function get_next_tab($tabname){ - global $tabname_array; - reset($tabname_array); - $marker = false; - while(list($current_tab,$current_tab_desc) = each($tabname_array)){ - if($current_tab == $tabname){ + reset ($tabname_array); + while (list($current_tab, ) = each($tabname_array)) { + if ($current_tab == $tabname){ $res = key($tabname_array);// each() sets key to the next element - if($res != NULL)// if it was the last call of each(), key == NULL => we return the first key - return $res; - else{ + if (is_null($res)) { reset($tabname_array); return key($tabname_array); } + return $res; } } - // We should not arrive to this point, but at least, we return the first key - reset($tabname_array); - return key($tabname_array); + + return null; } ?> diff --git a/modules/events.php b/modules/events.php index b244729..789b651 100644 --- a/modules/events.php +++ b/modules/events.php @@ -118,10 +118,10 @@ class EventsModule extends PLModule // puis par dates croissantes d'expiration $promo = Session::getInt('promo'); $sql = "SELECT e.id,e.titre,e.texte,a.user_id,a.nom,a.prenom,a.promo,l.alias AS forlife - FROM evenements AS e - INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id - INNER JOIN aliases AS l ON ( a.user_id=l.id AND l.type='a_vie' ) - LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) + FROM evenements AS e + INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id + INNER JOIN aliases AS l ON ( a.user_id=l.id AND l.type='a_vie' ) + LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() AND (e.promo_min = 0 || e.promo_min <= {?}) AND (e.promo_max = 0 || e.promo_max >= {?}) diff --git a/modules/profile.php b/modules/profile.php index 5abe009..b86cbdc 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -29,10 +29,13 @@ class ProfileModule extends PLModule 'fiche.php' => $this->make_hook('fiche', AUTH_PUBLIC), 'profile' => $this->make_hook('profile', AUTH_PUBLIC), + 'profile/edit' => $this->make_hook('p_edit', AUTH_MDP), 'profile/orange' => $this->make_hook('p_orange', AUTH_MDP), - 'profile/referent' => $this->make_hook('p_referent', AUTH_MDP), 'profile/usage' => $this->make_hook('p_usage', AUTH_MDP), + 'referent' => $this->make_hook('referent', AUTH_COOKIE), + 'referent/search' => $this->make_hook('ref_search', AUTH_COOKIE), + 'trombi' => $this->make_hook('trombi', AUTH_COOKIE), 'vcard' => $this->make_hook('vcard', AUTH_COOKIE), @@ -60,12 +63,13 @@ class ProfileModule extends PLModule $pnb = $res->fetchOneCell(); $res = $globals->xdb->query( - "SELECT promo,user_id,a.alias AS forlife,IF(nom_usage='', nom, nom_usage) AS nom,prenom + "SELECT promo, user_id, a.alias AS forlife, + IF (nom_usage='', nom, nom_usage) AS nom, prenom FROM photo AS p INNER JOIN auth_user_md5 AS u ON u.user_id=p.uid INNER JOIN aliases AS a ON ( u.user_id=a.id AND a.type='a_vie' ) $where - ORDER BY promo,nom,prenom LIMIT {?}, {?}", $offset*$limit, $limit); + ORDER BY promo, nom, prenom LIMIT {?}, {?}", $offset*$limit, $limit); return array($pnb, $res->fetchAllAssoc()); } @@ -94,7 +98,8 @@ class ProfileModule extends PLModule FROM photo WHERE uid={?}", $uid); - if ((list($type,$data) = $res->fetchOneRow()) && ($photo_pub == 'public' || logged())) { + if ((list($type, $data) = $res->fetchOneRow()) + && ($photo_pub == 'public' || logged())) { Header("Content-type: image/$type"); echo $data; } else { @@ -195,20 +200,20 @@ class ProfileModule extends PLModule $photo = $globals->baseurl.'/photo/'.$user['forlife'].($new ? '/req' : ''); - if(!isset($user['y']) and !isset($user['x'])) { + if (!isset($user['y']) and !isset($user['x'])) { list($user['x'], $user['y']) = getimagesize("images/none.png"); } - if(!isset($user['y']) or $user['y'] < 1) $user['y']=1; - if(!isset($user['x']) or $user['x'] < 1) $user['x']=1; - if($user['x'] > 240){ + if (!isset($user['y']) or $user['y'] < 1) $user['y']=1; + if (!isset($user['x']) or $user['x'] < 1) $user['x']=1; + if ($user['x'] > 240) { $user['y'] = (integer)($user['y']*240/$user['x']); $user['x'] = 240; } - if($user['y'] > 300){ + if ($user['y'] > 300) { $user['x'] = (integer)($user['x']*300/$user['y']); $user['y'] = 300; } - if($user['x'] < 160){ + if ($user['x'] < 160) { $user['y'] = (integer)($user['y']*160/$user['x']); $user['x'] = 160; } @@ -238,6 +243,119 @@ class ProfileModule extends PLModule return PL_OK; } + function handler_p_edit(&$page, $opened_tab = 'general') + { + global $globals; + + $page->changeTpl('profil.tpl'); + + $page->addCssLink('css/profil.css'); + $page->assign('xorg_title', 'Polytechnique.org - Mon Profil'); + + require_once 'tabs.inc.php'; + require_once 'profil.func.inc.php'; + require_once 'synchro_ax.inc.php'; + + if (Post::has('register_from_ax_question')) { + $globals->xdb->query('UPDATE auth_user_quick + SET profile_from_ax = 1 + WHERE user_id = {?}', + Session::getInt('uid')); + } + + if (is_ax_key_missing()) { + $page->assign('no_private_key', true); + } + + if (Env::get('synchro_ax') == 'confirm' && !is_ax_key_missing()) { + ax_synchronize(Session::get('bestalias'), Session::getInt('uid')); + $page->trig('Ton profil a été synchronisé avec celui du site polytechniciens.com'); + } + + // pour tous les tabs, la date de naissance pour verifier + // quelle est bien rentree et la date. + $res = $globals->xdb->query( + "SELECT naissance, DATE_FORMAT(date, '%d.%m.%Y') + FROM auth_user_md5 + WHERE user_id={?}", Session::getInt('uid')); + list($naissance, $date_modif_profil) = $res->fetchOneRow(); + + // lorsqu'on n'a pas la date de naissance en base de données + if (!$naissance) { + // la date de naissance n'existait pas et vient d'être soumise dans la variable + if (Env::has('birth')) { + //en cas d'erreur : + if (!ereg('[0-3][0-9][0-1][0-9][1][9]([0-9]{2})', Env::get('birth'))) { + $page->assign('etat_naissance', 'query'); + $page->trig('Date de naissance incorrecte ou incohérente.'); + return PL_OK; + } + + //sinon + $birth = sprintf("%s-%s-%s", substr(Env::get('birth'), 4, 4), + substr(Env::get('birth'), 2, 2), + substr(Env::get('birth'), 0, 2)); + $globals->xdb->execute("UPDATE auth_user_md5 + SET naissance={?} + WHERE user_id={?}", $birth, + Session::getInt('uid')); + $page->assign('etat_naissance', 'ok'); + return PL_OK; + } + + $page->assign('etat_naissance', 'query'); + return PL_OK; // on affiche le formulaire pour naissance + } + + //doit-on faire un update ? + if (Env::has('modifier') || Env::has('suivant')) { + require_once "profil/get_{$opened_tab}.inc.php"; + require_once "profil/verif_{$opened_tab}.inc.php"; + + if($page->nb_errs()) { + require_once "profil/assign_{$opened_tab}.inc.php"; + $page->assign('onglet', $opened_tab); + $page->assign('onglet_tpl', "profil/$opened_tab.tpl"); + return PL_OK; + } + + $date=date("Y-m-j");//nouvelle date de mise a jour + + //On sauvegarde l'uid pour l'AX + /* on sauvegarde les changements dans user_changes : + * on a juste besoin d'insérer le user_id de la personne dans la table + */ + $globals->xdb->execute('REPLACE INTO user_changes SET user_id={?}', + Session::getInt('uid')); + + if (!Session::has('suid')) { + require_once 'notifs.inc.php'; + register_watch_op(Session::getInt('uid'), WATCH_FICHE); + } + + // mise a jour des champs relatifs au tab ouvert + require_once "profil/update_{$opened_tab}.inc.php"; + + $log =& Session::getMixed('log'); + $log->log('profil', $opened_tab); + $page->assign('etat_update', 'ok'); + } + + if (Env::has('suivant')) { + redirect($globals->baseurl . '/profile/edit/' . + get_next_tab($opened_tab)); + } + + require_once "profil/get_{$opened_tab}.inc.php"; + require_once "profil/verif_{$opened_tab}.inc.php"; + require_once "profil/assign_{$opened_tab}.inc.php"; + + $page->assign('onglet', $opened_tab); + $page->assign('onglet_tpl', "profil/$opened_tab.tpl"); + + return PL_OK; + } + function handler_p_orange(&$page) { global $globals; @@ -248,11 +366,11 @@ class ProfileModule extends PLModule require_once 'xorg.misc.inc.php'; $res = $globals->xdb->query( - "SELECT u.promo,u.promo_sortie + "SELECT u.promo, u.promo_sortie FROM auth_user_md5 AS u WHERE user_id={?}", Session::getInt('uid')); - list($promo,$promo_sortie_old) = $res->fetchOneRow(); + list($promo, $promo_sortie_old) = $res->fetchOneRow(); $page->assign('promo_sortie_old', $promo_sortie_old); $page->assign('promo', $promo); @@ -274,7 +392,7 @@ class ProfileModule extends PLModule elseif ($promo_sortie == $promo + 3) { $globals->xdb->execute( "UPDATE auth_user_md5 set promo_sortie={?} - WHERE user_id={?}",$promo_sortie,Session::getInt('uid')); + WHERE user_id={?}", $promo_sortie, Session::getInt('uid')); $page->trig('Ton statut "orange" a été supprimé.'); $page->assign('promo_sortie_old', $promo_sortie); } @@ -292,7 +410,7 @@ class ProfileModule extends PLModule return PL_OK; } - function handler_p_referent(&$page, $x = null) + function handler_referent(&$page, $x = null) { global $globals; @@ -308,7 +426,8 @@ class ProfileModule extends PLModule $res = $globals->xdb->query( "SELECT prenom, nom, user_id, promo, cv, a.alias AS bestalias FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON (u.user_id=a.id AND FIND_IN_SET('bestalias',a.flags)) + INNER JOIN aliases AS a ON (u.user_id=a.id + AND FIND_IN_SET('bestalias', a.flags)) INNER JOIN aliases AS a1 ON (u.user_id=a1.id AND a1.alias = {?} AND a1.type!='homonyme')", $x); @@ -359,6 +478,122 @@ class ProfileModule extends PLModule return PL_OK; } + function handler_ref_search(&$page) + { + global $globals; + + $page->changeTpl('referent.tpl'); + + $page->assign('xorg_title', 'Polytechnique.org - Conseil Pro'); + + $secteur_sel = Post::get('secteur'); + $ss_secteur_sel = Post::get('ss_secteur'); + $pays_sel = Post::get('pays', '00'); + $expertise_champ = Post::get('expertise'); + + $page->assign('pays_sel', $pays_sel); + $page->assign('expertise_champ', $expertise_champ); + $page->assign('secteur_sel', $secteur_sel); + $page->assign('ss_secteur_sel', $ss_secteur_sel); + + //recuperation des noms de secteurs + $res = $globals->xdb->iterRow("SELECT id, label FROM emploi_secteur"); + $secteurs[''] = ''; + while (list($tmp_id, $tmp_label) = $res->next()) { + $secteurs[$tmp_id] = $tmp_label; + } + $page->assign_by_ref('secteurs', $secteurs); + + //on recupere les sous-secteurs si necessaire + $ss_secteurs[''] = ''; + if (!empty($secteur_sel)) { + $res = $globals->xdb->iterRow("SELECT id, label FROM emploi_ss_secteur + WHERE secteur = {?}", $secteur_sel); + while (list($tmp_id, $tmp_label) = $res->next()) { + $ss_secteurs[$tmp_id] = $tmp_label; + } + } + $page->assign_by_ref('ss_secteurs', $ss_secteurs); + + //recuperation des noms de pays + $res = $globals->xdb->iterRow("SELECT a2, pays FROM geoloc_pays + WHERE pays <> '' ORDER BY pays"); + $pays['00'] = ''; + while (list($tmp_id, $tmp_label) = $res->next()) { + $pays[$tmp_id] = $tmp_label; + } + $page->assign_by_ref('pays', $pays); + + // nb de mentors + $res = $globals->xdb->query("SELECT count(*) FROM mentor"); + $page->assign('mentors_number', $res->fetchOneCell()); + + if (!Env::has('Chercher')) { + return PL_OK; + } + + // On vient d'un formulaire + $where = array(); + + if ($pays_sel != '00') { + $where[] = "mp.pid = '".addslashes($pays_sel)."'"; + } + if ($secteur_sel) { + $where[] = "ms.secteur = '".addslashes($secteur_sel)."'"; + if ($ss_secteur_sel) { + $where[] = "ms.ss_secteur = '".addslashes($ss_secteur_sel)."'"; + } + } + if ($expertise_champ) { + $where[] = "MATCH(m.expertise) AGAINST('".addslashes($expertise_champ)."')"; + } + + if ($where) { + $where = join(' AND ', $where); + + $sql = "SELECT m.uid, a.prenom, a.nom, a.promo, + l.alias AS bestalias, m.expertise, mp.pid, + ms.secteur, ms.ss_secteur + FROM mentor AS m + LEFT JOIN auth_user_md5 AS a ON(m.uid = a.user_id) + INNER JOIN aliases AS l ON (a.user_id=l.id AND + FIND_IN_SET('bestalias', l.flags)) + LEFT JOIN mentor_pays AS mp ON(m.uid = mp.uid) + LEFT JOIN mentor_secteurs AS ms ON(m.uid = ms.uid) + WHERE $where + GROUP BY uid + ORDER BY RAND({?})"; + $res = $globals->xdb->iterator($sql, Session::getInt('uid')); + + if ($res->total() == 0) { + $page->assign('recherche_trop_large', true); + return PL_OK; + } + + $nb_max_res_total = 100; + $nb_max_res_ppage = 10; + + $curpage = Env::getInt('curpage', 1); + $personnes = array(); + $i = 0; + + while (($pers = $res->next()) && count($personnes) < $nb_max_res_total) { + $the_page = intval($i / $nb_max_res_ppage) + 1; + if ($the_page == $curpage) { + $personnes[] = $pers; + } + $i ++; + } + + $page->assign('personnes', $personnes); + $page->assign('curpage', $curpage); + $page->assign('nb_pages_total', + intval($res->total() / $nb_max_res_ppage) + 1); + } + + return PL_OK; + } + function handler_p_usage(&$page) { global $globals; @@ -369,12 +604,13 @@ class ProfileModule extends PLModule require_once 'xorg.misc.inc.php'; $res = $globals->xdb->query( - "SELECT u.nom,u.nom_usage,u.flags,e.alias + "SELECT u.nom, u.nom_usage, u.flags, e.alias FROM auth_user_md5 AS u - LEFT JOIN aliases AS e ON(u.user_id = e.id AND FIND_IN_SET('usage',e.flags)) + LEFT JOIN aliases AS e ON(u.user_id = e.id + AND FIND_IN_SET('usage', e.flags)) WHERE user_id={?}", Session::getInt('uid')); - list($nom,$usage_old,$flags,$alias_old) = $res->fetchOneRow(); + list($nom, $usage_old, $flags, $alias_old) = $res->fetchOneRow(); $flags = new flagset($flags); $page->assign('usage_old', $usage_old); $page->assign('alias_old', $alias_old); @@ -407,7 +643,7 @@ class ProfileModule extends PLModule require_once 'trombi.inc.php'; $page->changeTpl('trombipromo.tpl'); - $page->assign('xorg_title','Polytechnique.org - Trombi Promo'); + $page->assign('xorg_title', 'Polytechnique.org - Trombi Promo'); if (is_null($promo)) { return PL_OK; diff --git a/templates/fiche.tpl b/templates/fiche.tpl index 6ed7256..6750a39 100644 --- a/templates/fiche.tpl +++ b/templates/fiche.tpl @@ -33,7 +33,7 @@ function chgMainWinLoc( strPage ) { {/literal} {if $logged and $x.forlife eq $smarty.session.forlife} -[Modifier ma fiche] +[Modifier ma fiche] {/if} @@ -107,7 +107,7 @@ function chgMainWinLoc( strPage ) { {/if} {if $logged} {if $x.is_referent} - [Ma fiche référent] + [Ma fiche référent] {/if} {/if} diff --git a/templates/geoloc/form.address.tpl b/templates/geoloc/form.address.tpl index 0091eaa..a31cf6a 100644 --- a/templates/geoloc/form.address.tpl +++ b/templates/geoloc/form.address.tpl @@ -33,7 +33,7 @@ style="border:inherit;background:#AFA" onclick="blur()" >{$adr.geoloc}

- [Valider] + [Valider]

{else} diff --git a/templates/include/trombi.tpl b/templates/include/trombi.tpl index 1edf1dd..126f34c 100644 --- a/templates/include/trombi.tpl +++ b/templates/include/trombi.tpl @@ -32,8 +32,8 @@  [ PHOTO ] {if $trombi_admin && $smarty.session.perms eq 'admin'} - - [admin] + + [admin] {/if}
diff --git a/templates/login.tpl b/templates/login.tpl index dadd2ab..3b3d49e 100644 --- a/templates/login.tpl +++ b/templates/login.tpl @@ -46,7 +46,7 @@ Bienvenue {$smarty.session.prenom} fiche date du {$fiche_incitation|date_format}. Il est possible qu'elle ne soit pas à jour. - Si tu souhaites la modifier, clique ici ! + Si tu souhaites la modifier, clique ici !

{/if} @@ -59,7 +59,8 @@ Bienvenue {$smarty.session.prenom} {if $geoloc_incitation > 0}

- Parmi tes adresses, il y en a {$geoloc_incitation} que nous n'avons pas pu localiser. Clique ici pour rectifier. + Parmi tes adresses, il y en a {$geoloc_incitation} que nous n'avons pas pu localiser. + Clique ici pour rectifier.

{/if}
diff --git a/templates/nomusage.tpl b/templates/nomusage.tpl index 8093f27..8d8c8b5 100644 --- a/templates/nomusage.tpl +++ b/templates/nomusage.tpl @@ -31,7 +31,7 @@ Pour supprimer ton nom d'usage, fais une demande avec un nom vide et en précisant la raison.

- [Refaire une demande] - [Retour au profil] + [Refaire une demande] - [Retour au profil]

{else} {if $myusage} diff --git a/templates/orange.tpl b/templates/orange.tpl index be8a6df..17d8672 100644 --- a/templates/orange.tpl +++ b/templates/orange.tpl @@ -56,6 +56,6 @@ {/if} -

[Revenir au profil]

+

[Revenir au profil]

{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/profil.tpl b/templates/profil.tpl index 2ef528c..8bc2ace 100644 --- a/templates/profil.tpl +++ b/templates/profil.tpl @@ -35,7 +35,7 @@ telle qu'elle appara l'AX ou à tout le monde.

- +
@@ -64,15 +63,9 @@ ou - {if $onglet != $onglet_last} - {else} - - {/if}
@@ -44,11 +44,10 @@ ou {if $o eq $onglet}
  • {$i|nl2br}
  • {else} -
  • {$i|nl2br}
  • +
  • {$i|nl2br}
  • {/if} {/foreach} -
    - -
    diff --git a/templates/profil/adresses.tpl b/templates/profil/adresses.tpl index c59395c..febaf6d 100644 --- a/templates/profil/adresses.tpl +++ b/templates/profil/adresses.tpl @@ -47,7 +47,7 @@ {/if} {if $adr.nouvelle != 'new'} - [La supprimer !] + [La supprimer !] {/if} @@ -66,7 +66,7 @@ {else} {assign var="titre" value="Nouvelle adresse :"} {/if} - {include file="geoloc/form.address.tpl" adr=$adr titre=$titre url="`$smarty.server.PHP_SELF`?old_tab=`$smarty.request.old_tab`"} + {include file="geoloc/form.address.tpl" adr=$adr titre=$titre url="profile/edit/`$onglet`"|url} Adresse: diff --git a/templates/profil/mentor.tpl b/templates/profil/mentor.tpl index 22996b9..63772e2 100644 --- a/templates/profil/mentor.tpl +++ b/templates/profil/mentor.tpl @@ -75,7 +75,7 @@ te contactent afin de te demander conseil, dans les domaines que tu connais bien, et pour lesquels tu pourrais les aider, remplis cette rubrique.
    Tu peux mentionner ici les domaines de compétences, les expériences notamment internationales sur la base desquels tu seras identifiable depuis -la page de recherche d'un conseil professionnel. +la page de recherche d'un conseil professionnel.

    diff --git a/templates/profil/naissance.tpl b/templates/profil/naissance.tpl index 8ee4a47..48878fa 100644 --- a/templates/profil/naissance.tpl +++ b/templates/profil/naissance.tpl @@ -31,7 +31,7 @@

    Date de naissance

    - +

    Avant d'accéder à ton profil pour la première fois, tu dois donner ta date de naissance au format JJMMAAAA. Elle ne sera plus demandée par la suite et ne pourra être changée. diff --git a/templates/referent.tpl b/templates/referent.tpl index 1b401f1..cb8966e 100644 --- a/templates/referent.tpl +++ b/templates/referent.tpl @@ -24,8 +24,8 @@ {literal}