Migration de referent.php : le passage en template est fini
authorx2000coic <x2000coic>
Sat, 1 May 2004 05:23:26 +0000 (05:23 +0000)
committerx2000coic <x2000coic>
Sat, 1 May 2004 05:23:26 +0000 (05:23 +0000)
  il manque un bout de la css de recherche.php pour afficher les résultats
  fiche_referent.php n'est pas encore migré
  la template est inclus dans un gros bloc {dynamic} - à changer peut-être pour mieux gérer le cache

etat_migration
htdocs/referent.php [new file with mode: 0644]
templates/referent.tpl [new file with mode: 0644]

index 2847ae0..ece5682 100644 (file)
@@ -60,11 +60,11 @@ Etat  | Ancien nom                                                            | Nouveau nom
 ;        | emploi.php                                                            | 
 ;        | emploi_public.php                                             | 
 ;        | evenements.php                                                        | 
+;        | fiche_referent.php                                            | 
 ;        | index.coupure.php                                             | 
 ;        | mescontacts_pdf.php                                           | 
 ;        | pg.confirm.php                                                        | 
 ;        | pg.php                                                                        | 
-;        | profil.php                                                            | 
 ;        | recherche.php                                                         | 
 ;        | trombino.php                                                          | 
 ;        | trombipromo.php                                                       | 
@@ -177,8 +177,10 @@ xx   | newsletter.php                                                        | -
 xx       | newsletter_req.php                                            | -
 xx       | pattecassee.php                                                       | -
 xx       | preferences.php                                                       | -
+xx       | profil.php                                                            | TODO : reste 2-3 trucs comme popWin() a changer
 xx!      | redirect/error.php                                            | -
 xx!      | redirect/redirect.php                                         | -
+xx       | referent.php                                                          | TODO : utilise la css de recherche qui n'est pas encore migré
 xx       | rss.php                                                                       | -
 xx       | secu.php                                                              | docs/secu.php
 xx       | sendmail.php                                                          | -
diff --git a/htdocs/referent.php b/htdocs/referent.php
new file mode 100644 (file)
index 0000000..f577728
--- /dev/null
@@ -0,0 +1,157 @@
+<?php
+
+require("auto.prepend.inc.php");
+new_skinned_page('referent.tpl',AUTH_COOKIE);
+
+$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 = '';
+if(isset($_POST['secteur'])){
+  $secteur_selectionne = "{$_POST['secteur']}";
+}
+
+$ss_secteur_selectionne = '';
+if(isset($_POST['ss_secteur'])){
+  $ss_secteur_selectionne = $_POST['ss_secteur'];
+}
+
+$pays_selectionne = '00';
+if(isset($_POST['pays'])){
+  $pays_selectionne = $_POST['pays'];
+}
+
+$expertise_champ = '';
+if(isset($_POST['expertise'])){
+  $expertise_champ = stripslashes($_POST['expertise']);
+}
+      
+$page->assign('pays_selectionne',$pays_selectionne);
+$page->assign('expertise_champ',htmlentities($expertise_champ));
+$page->assign('secteur_selectionne',$secteur_selectionne);
+$page->assign('ss_secteur_selectionne',$ss_secteur_selectionne);
+
+//recuperation des noms de secteurs
+$res = mysql_query("SELECT id, label FROM emploi_secteur");
+$secteurs[''] = '';
+while(list($tmp_id, $tmp_label) = mysql_fetch_row($res))
+  $secteurs[$tmp_id] = $tmp_label;
+mysql_free_result($res);
+$page->assign_by_ref('secteurs', $secteurs);
+
+//on recupere les sous-secteurs si necessaire
+if(!empty($secteur_selectionne))
+{
+  $res = mysql_query("SELECT id, label FROM emploi_ss_secteur
+                      WHERE secteur = '$secteur_selectionne'");
+  $ss_secteurs[''] = '';
+  while(list($tmp_id, $tmp_label) = mysql_fetch_row($res))
+    $ss_secteurs[$tmp_id] = $tmp_label;  
+  mysql_free_result($res);
+  $page->assign_by_ref('ss_secteurs', $ss_secteurs);
+}
+
+//recuperation des noms de pays
+$res = mysql_query("SELECT a2, pays FROM geoloc_pays WHERE pays <> '' ORDER BY pays");
+$pays['00'] = '';
+while(list($tmp_id, $tmp_label) = mysql_fetch_row($res))
+  $pays[$tmp_id] = $tmp_label;
+mysql_free_result($res);
+$page->assign_by_ref('pays', $pays);
+
+//On vient d'un formulaire
+if(isset($_REQUEST['Chercher'])){
+
+  $champ_select = 'm.uid, a.prenom, a.nom, a.promo, a.username, 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)';
+  $clause_from = $clause_from.' LEFT JOIN mentor_pays AS mp ON(m.uid = mp.uid)';
+  $clause_from = $clause_from.' LEFT JOIN mentor_secteurs AS ms ON(m.uid = ms.uid)';
+
+  $clause_where = 'WHERE';
+
+  if($pays_selectionne != '00'){
+    $clause_where = $clause_where." mp.pid = '$pays_selectionne' AND";
+  }
+  if($secteur_selectionne != '')
+  {
+    $clause_where = $clause_where." ms.secteur = '$secteur_selectionne' AND";
+    if($ss_secteur_selectionne)
+      $clause_where = $clause_where." ms.ss_secteur = '$ss_secteur_selectionne' AND";
+  }
+
+  if($expertise_champ != '')
+  {
+    $clause_where = $clause_where." MATCH(m.expertise) AGAINST('".addslashes($expertise_champ)."') AND";
+  }
+
+  if($clause_where != 'WHERE'){
+
+    $show_formulaire = false;
+    $clause_where = substr($clause_where, 0, -3); //on vire le dernier AND
+    $sql = "SELECT $champ_select $clause_from $clause_where
+            GROUP BY uid ORDER BY RAND({$_SESSION['uid']})";
+    echo "requete : ".htmlentities($sql)."<br />";
+    $res = mysql_query($sql);
+    //  echo mysql_error()."<br/>";
+    if(mysql_num_rows($res) == 0){
+      $page->assign('recherche_trop_large',true);
+      mysql_free_result($res);
+    }
+    else{
+      if(isset($_REQUEST['page_courante'])){
+        $page_courante = (int) $_REQUEST['page_courante'];
+      }
+      else{
+        $page_courante = 1;
+      }
+      //echo "nombre de pages : $nb_pages<br/>";
+      $current_uid = 0;
+      $nb_resultats = 0;
+      $page->assign('resultats',true);
+      $personnes = Array();
+      $page->assign_by_ref('personnes',$personnes);
+      while((list($uid, $prenom, $nom, $promo, $username, $expertise_bd, $pays_id, $secteur_id, $ss_secteur_id) = mysql_fetch_row($res))
+          || ($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['username'] = $username;
+           $pers_trouve['expertise'] = nl2br(htmlentities($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);
+      mysql_free_result($res);
+    }//fin else
+  }//fin if clause_where non vide
+}//fin if Chercher
+//sinon on affiche le formulaire
+if($show_formulaire){
+
+  $res = mysql_query("SELECT count(*) FROM mentor");
+  list($nb) = mysql_fetch_row($res);
+  mysql_free_result($res);
+
+  $page->assign('mentors_number',$nb);
+
+}
+
+$page->run();
+
+?>
diff --git a/templates/referent.tpl b/templates/referent.tpl
new file mode 100644 (file)
index 0000000..fb919e4
--- /dev/null
@@ -0,0 +1,163 @@
+{literal}
+<script language="JavaScript" type="text/javascript">
+<!-- Begin
+    function showPage( pNumber ) {
+        document.form_result.page_courante.value = pNumber;
+        document.form_result.submit();
+    }
+// End -->
+</script>
+{/literal}
+<div class="rubrique">
+  Rechercher un camarade pouvant m'aider à orienter mon parcours professionnel
+</div>
+{dynamic}
+{if $recherche_trop_large}
+<p class="normal">
+  Les critères de recherche que tu as rentrés n'ont pas produit de résultats,
+  sans doute car ta requête était trop générale. Nous t'invitons à
+  <a href="referent.php">procéder à une nouvelle recherche</a>, en essayant
+  d'être plus précis.
+</p>
+{elseif $resultats}
+  <FORM action="{$smarty.server.PHP_SELF}" method="POST" name="form_result">
+  <INPUT type="hidden" name="pays" value="{$pays_selectionne}">
+  <INPUT type="hidden" name="expertise" value="{$expertise_champ}">
+  <INPUT type="hidden" name="secteur" value="{$secteur_selectionne}">
+  <INPUT type="hidden" name="ss_secteur" value="{$ss_secteur_selectionne}">
+  <INPUT type="hidden" name="page_courante" value="1">
+  <INPUT type="hidden" name="Chercher" value="1">
+  <TABLE class="rechresult" border=0 cellpadding=0 cellspacing=0 summary="Résultats">
+{section name="resultat" loop=$personnes}
+<TR>
+  <TD class="rechnom">{$personnes[resultat].nom} {$personnes[resultat].prenom}</TD>
+  <TD class="rechdetails"><span class="rechdiplo">X{$personnes[resultat].promo}</span></TD>
+  <TD class="rechdetails" width="15%"><a style="font-size: smaller;" href="javascript:x()"  onclick="popWin('x.php?x={$personnes[resultat].username}')">voir sa fiche</a></TD>
+  <TD class="rechdetails" width="25%"><a style="font-size: smaller;" href="javascript:x()"  onclick="popWin('fiche_referent.php?x={$personnes[resultat].username}')">voir sa fiche référent</a></TD>
+</TR>
+<TR>
+  <TD class="rechtitreitem">Expertise :</TD>
+  <TD class="rechitem" colspan="2">{$personnes[resultat].expertise}</TD>
+</TR>
+<TR>
+<TD>
+&nbsp;
+</TD>
+</TR>
+{/section}
+</TABLE>
+<br />
+<span style="font-size: normal;">Pages&nbsp;:&nbsp;
+{section name="page_number" start=1 loop=$nb_pages_total+1}
+{if $smarty.section.page_number.index == $page_courante}
+{$page_courante} {else}
+<a href="javascript:showPage({$smarty.section.page_number.index})">{$smarty.section.page_number.index} </a> 
+{/if}
+{/section}
+</span>
+</FORM>
+{/if}
+{if $show_formulaire}
+<span class="erreur">
+  Si tu utilises ce service pour la première fois, lis attentivement le texte
+  qui suit.
+</span>
+<p class="normal">
+  En <a href="profil.php">renseignant sa fiche dans l'annuaire</a>, chacun
+  d'entre nous a la possibilité de renseigner, dans la section "Mentoring",
+  s'il accepte de recevoir des messages de la part de camarades qui pourraient
+  souhaiter lui poser quelques questions et recevoir quelques conseils.<br>
+  Ces informations sont rentrées par chacun sur la base du volontariat et sont
+  totalement déclaratives. Chaque X qui complète cette rubrique accepte alors
+  de recevoir un courrier électronique des jeunes camarades qui sont en train
+  de bâtir leur projet professionnel, mais aussi des moins jeunes qui cherchent
+  à réorienter leur carrière. Bien entendu, chacun se réserve le droit de ne
+  pas donner suite à une sollicitation !<br>
+  Pour que ce système soit profitable, il est nécessaire que dans ta recherche
+  de conseils professionnels, tu agisses sagement, en évitant de contacter
+  un trop grand nombre de camarades. De même, pense bien que les quelques
+  personnes que tu vas éventuellement contacter suite à ta recherche
+  accepteront éventuellement de t'aider et de te guider <u>sur la base du
+  volontariat</u>. Il va de soi que plus ton comportement lors de votre
+  contact sera éthique et reconnaissant, plus cette pratique de conseil
+  inter-générations sera encouragée et bien perçue par ceux qui la pratiquent.
+  <br>
+  Nous avons peiné à trouver un nom pour désigner ceux qui sont volontaires
+  pour guider les camarades qui en ressentent le besoin : nous avons finalement
+  retenu le terme de <i>mentors</i> pour désigner ceux qui sont prêts à aider de
+  manière suivie un camarade plus jeune, à plusieurs moments de sa carrière,
+  et avons appelé <i>référents</i> ceux qui s'impliquent plutôt en tant que
+  "relai d'informations", dans le sens où ils ont vécu des expériences
+  professionnelles susceptibles d'intéresser certains d'entre nous (expérience
+  de stage ou d'emploi à l'étranger), sans forcément souhaiter consacrer
+  autant de temps à quelqu'un que le ferait un mentor attentionné.
+  La recherche proposée ici permet de trouver les deux types d'aide.
+</p>
+
+<p class="normal">
+  Dans le formulaire ci-dessous, tu peux rechercher des avis en fonction des
+  domaines de compétence recherchés, des cultures professionnelles des pays
+  connues par le référent, et enfin une dernière case te permettra de faire
+  une recherche par mots-clefs.<br>
+  Nous t'incitons à prendre plutôt 2 ou 3 contacts qu'un seul, cela te
+  permettant certainement d'avoir une vision des choses plus complète.
+</p>
+
+<p class="normal">
+  Actuellement, {$mentors_number} mentors et référents se sont déclarés sur Polytechnique.org.
+</p>
+
+<form action="{$smarty.server.REQUEST_URI}" method="post" name="form_ref">
+<table width="83%" border="0" cellpadding="0" cellspacing="0"
+    summary="Formulaire de recherche de referents" class="bicol">
+  <tr class="impair">
+     <td class="bicoltitre">
+          Secteur de compétence <br> du référent
+     </td>
+     <td >
+       <select name="secteur" OnChange="javascript:submit()">
+         {html_options options=$secteurs selected=$secteur_selectionne}
+       </select>
+     </td>
+  </tr>
+  <tr class="pair">
+     <td class="bicoltitre">
+          Sous-Secteur
+     </td>
+     <td >
+       <select name="ss_secteur">
+         {html_options options=$ss_secteurs selected=$ss_secteur_selectionne}
+       </select>
+     </td>
+  </tr>
+  <tr class="impair">
+     <td class="bicoltitre">
+          Pays bien connu du référent
+     </td>
+     <td >
+       <select name="pays">
+         {html_options options=$pays selected=$pays_selectionne}
+       </select>
+     </td>
+  </tr>
+  <tr class="pair">
+    <td colspan="2">
+     &nbsp;
+    </td>
+  </tr>
+  <tr class="impair">
+     <td class="bicoltitre">
+          Expertise (rentre un ou plusieurs mots clés)
+     </td>
+     <td >
+       <input type="text" name="expertise" size="30" value="{$expertise_champ}" />
+     </td>
+  </tr>
+</table>
+<div style="text-align: center; margin-top: 1em;">
+      <input type="submit" value="Chercher" name="Chercher">
+</div>
+</form>
+
+{/if}
+{/dynamic}