Merge branch 'fusionax' of /home/git/platal into fusionax
authorPascal Corpet <pascal.corpet@m4x.org>
Tue, 22 Jul 2008 21:12:06 +0000 (23:12 +0200)
committerPascal Corpet <pascal.corpet@m4x.org>
Tue, 22 Jul 2008 21:12:06 +0000 (23:12 +0200)
19 files changed:
htdocs/images/networking/copains.png [new file with mode: 0644]
htdocs/images/networking/hi5.png [new file with mode: 0644]
htdocs/images/networking/plaxo.png [new file with mode: 0644]
htdocs/images/networking/xing.png [new file with mode: 0644]
htdocs/javascript/profile.js
include/notifs.inc.php
include/user.func.inc.php
include/userset.inc.php
modules/email.php
modules/profile/general.inc.php
modules/profile/jobs.inc.php
plugins/function.select_nat.php
templates/gadgets/ig-minifiche.tpl
templates/include/emails.combobox.tpl
templates/include/minifiche.tpl
templates/profile/general.tpl
templates/profile/profile.tpl
upgrade/fusionax-0.0.1/04_telephone.sql [moved from upgrade/fusionax-0.0.1/03_telephone.sql with 100% similarity]
upgrade/fusionax-0.0.1/05_nationalities.sql [new file with mode: 0644]

diff --git a/htdocs/images/networking/copains.png b/htdocs/images/networking/copains.png
new file mode 100644 (file)
index 0000000..52cae73
Binary files /dev/null and b/htdocs/images/networking/copains.png differ
diff --git a/htdocs/images/networking/hi5.png b/htdocs/images/networking/hi5.png
new file mode 100644 (file)
index 0000000..6648a29
Binary files /dev/null and b/htdocs/images/networking/hi5.png differ
diff --git a/htdocs/images/networking/plaxo.png b/htdocs/images/networking/plaxo.png
new file mode 100644 (file)
index 0000000..c0973e6
Binary files /dev/null and b/htdocs/images/networking/plaxo.png differ
diff --git a/htdocs/images/networking/xing.png b/htdocs/images/networking/xing.png
new file mode 100644 (file)
index 0000000..05c925a
Binary files /dev/null and b/htdocs/images/networking/xing.png differ
index d625bfb..dafdeae 100644 (file)
@@ -110,6 +110,24 @@ function removeSearchName(i)
   }
 }
 
+function delNationality(i)
+{
+    $('#nationalite' + i).hide().find('select').val('');
+}
+
+function addNationality()
+{
+    var i = 0;
+    if ($('#nationalite2').find('select').val() == "") {
+        i = 2;
+    } else if ($('#nationalite3').find('select').val() == "") {
+        i = 3;
+    }
+    if ((i == 2) || (i == 3)) {
+        $('#nationalite' + i).show();
+    }
+}
+
 function addNetworking()
 {
     var i = 0;
index 3ee2037..1047d26 100644 (file)
@@ -142,6 +142,8 @@ $prf_desc = array('nom' => 'Son patronyme',
                   'freetext' => 'Le texte libre',
                   'mobile' => 'Son numéro de téléphone portable',
                   'nationalite' => 'Sa nationalité',
+                  'nationalite2' => 'Sa seconde nationalité',
+                  'nationalite3' => 'Sa troisième nationalité',
                   'nick' => 'Son surnom',
                   'networking' => 'La liste de ses adresses de networking',
                   'appli1' => 'Son école d\'application',
index 8ee201e..c595d16 100644 (file)
@@ -48,7 +48,8 @@ function user_clear_all_subs($user_id, $really_del=true)
         $tables_to_clear['contact'] = array('contacts');
         XDB::execute("UPDATE auth_user_md5
                          SET date_ins = 0, promo_sortie = 0, nom_usage = '',  password = '', perms = 'pending',
-                             nationalite = '', cv = '', section = 0, date = 0, smtppass = '', mail_storage = ''
+                             nationalite = '', nationalite2 = '', nationalite3 = '', cv = '', section = 0,
+                             date = 0, smtppass = '', mail_storage = ''
                        WHERE user_id = {?}", $uid);
         XDB::execute("DELETE virtual.* FROM virtual INNER JOIN virtual_redirect AS r USING(vid) WHERE redirect = {?}",
                      $alias.'@'.$globals->mail->domain);
@@ -403,7 +404,9 @@ function &get_user_details($login, $from_uid = '', $view = 'private')
                        q.profile_nick AS nickname, q.profile_from_ax, q.profile_freetext AS freetext,
                        q.profile_freetext_pub AS freetext_pub,
                        q.profile_medals_pub AS medals_pub,
-                       IF(gp.nat='',gp.pays,gp.nat) AS nationalite, gp.a2 AS iso3166,
+                       IF(gp1.nat='',gp1.pays,gp1.nat) AS nationalite, gp1.a2 AS iso3166_1,
+                       IF(gp2.nat='',gp2.pays,gp2.nat) AS nationalite2, gp2.a2 AS iso3166_2,
+                       IF(gp3.nat='',gp3.pays,gp3.nat) AS nationalite3, gp3.a2 AS iso3166_3,
                        a.alias AS forlife, a2.alias AS bestalias,
                        c.uid IS NOT NULL AS is_contact,
                        s.text AS section, p.x, p.y, p.pub AS photo_pub,
@@ -412,15 +415,17 @@ function &get_user_details($login, $from_uid = '', $view = 'private')
                        (COUNT(e.email) > 0 OR FIND_IN_SET('googleapps', u.mail_storage) > 0) AS actif,
                        nd.display AS name_display, nd.tooltip AS name_tooltip
                  FROM  auth_user_md5   AS u
-           INNER JOIN  auth_user_quick AS q  USING(user_id)
-           INNER JOIN  aliases         AS a  ON (u.user_id=a.id AND a.type='a_vie')
-           INNER JOIN  aliases         AS a2 ON (u.user_id=a2.id AND FIND_IN_SET('bestalias',a2.flags))
-            LEFT JOIN  contacts        AS c  ON (c.uid = {?} and c.contact = u.user_id)
-            LEFT JOIN  geoloc_pays     AS gp ON (gp.a2 = u.nationalite)
-           INNER JOIN  sections        AS s  ON (s.id  = u.section)
-            LEFT JOIN  photo           AS p  ON (p.uid = u.user_id)
-            LEFT JOIN  mentor          AS m  ON (m.uid = u.user_id)
-            LEFT JOIN  emails          AS e  ON (e.uid = u.user_id AND e.flags='active')
+           INNER JOIN  auth_user_quick AS q   USING(user_id)
+           INNER JOIN  aliases         AS a   ON (u.user_id=a.id AND a.type='a_vie')
+           INNER JOIN  aliases         AS a2  ON (u.user_id=a2.id AND FIND_IN_SET('bestalias',a2.flags))
+            LEFT JOIN  contacts        AS c   ON (c.uid = {?} and c.contact = u.user_id)
+            LEFT JOIN  geoloc_pays     AS gp1 ON (gp1.a2 = u.nationalite)
+            LEFT JOIN  geoloc_pays     AS gp2 ON (gp2.a2 = u.nationalite2)
+            LEFT JOIN  geoloc_pays     AS gp3 ON (gp3.a2 = u.nationalite3)
+           INNER JOIN  sections        AS s   ON (s.id  = u.section)
+            LEFT JOIN  photo           AS p   ON (p.uid = u.user_id)
+            LEFT JOIN  mentor          AS m   ON (m.uid = u.user_id)
+            LEFT JOIN  emails          AS e   ON (e.uid = u.user_id AND e.flags='active')
            INNER JOIN  profile_names_display AS nd ON (nd.user_id = u.user_id)
                 WHERE  a.alias = {?}
              GROUP BY  u.user_id";
index 31358d2..4c4e38e 100644 (file)
@@ -31,7 +31,9 @@ global $globals;
     LEFT JOIN  entreprises    AS e   ON (e.entrid = 0 AND e.uid = u.user_id)
     LEFT JOIN  emploi_secteur AS es  ON (e.secteur = es.id)
     LEFT JOIN  fonctions_def  AS ef  ON (e.fonction = ef.id)
-    LEFT JOIN  geoloc_pays    AS n   ON (u.nationalite = n.a2)
+    LEFT JOIN  geoloc_pays    AS n1  ON (u.nationalite = n1.a2)
+    LEFT JOIN  geoloc_pays    AS n2  ON (u.nationalite2 = n2.a2)
+    LEFT JOIN  geoloc_pays    AS n3  ON (u.nationalite2 = n3.a2)
     LEFT JOIN  adresses       AS adr ON (u.user_id = adr.uid AND FIND_IN_SET(\'active\',adr.statut))
     LEFT JOIN  geoloc_pays    AS gp  ON (adr.country = gp.a2)
     LEFT JOIN  geoloc_region  AS gr  ON (adr.country = gr.a2 AND adr.region = gr.region)
@@ -180,7 +182,9 @@ class MinificheView extends MultipageView
                 u.deces != 0 AS dcd, u.deces, u.matricule_ax,
                 FIND_IN_SET('femme', u.flags) AS sexe,
                 e.entreprise, es.label AS secteur, ef.fonction_fr AS fonction,
-                IF(n.nat='',n.pays,n.nat) AS nat, n.a2 AS iso3166,
+                IF(n1.nat='',n1.pays,n1.nat) AS nat1, n1.a2 AS iso3166_1,
+                IF(n2.nat='',n2.pays,n2.nat) AS nat2, n2.a2 AS iso3166_2,
+                IF(n3.nat='',n3.pays,n3.nat) AS nat3, n3.a2 AS iso3166_3,
                 ad0.text AS app0text, ad0.url AS app0url, ai0.type AS app0type,
                 ad1.text AS app1text, ad1.url AS app1url, ai1.type AS app1type,
                 adr.city, gp.a2, gp.pays AS countrytxt, gr.name AS region,
@@ -194,7 +198,9 @@ class MinificheView extends MultipageView
         return  "LEFT JOIN  entreprises    AS e   ON (e.entrid = 0 AND e.uid = u.user_id".(S::logged() ? "" : " AND e.pub = 'public'").")
                  LEFT JOIN  emploi_secteur AS es  ON (e.secteur = es.id)
                  LEFT JOIN  fonctions_def  AS ef  ON (e.fonction = ef.id)
-                 LEFT JOIN  geoloc_pays    AS n   ON (u.nationalite = n.a2)
+                 LEFT JOIN  geoloc_pays    AS n1  ON (u.nationalite = n1.a2)
+                 LEFT JOIN  geoloc_pays    AS n2  ON (u.nationalite2 = n2.a2)
+                 LEFT JOIN  geoloc_pays    AS n3  ON (u.nationalite3 = n3.a2)
                  LEFT JOIN  applis_ins     AS ai0 ON (u.user_id = ai0.uid AND ai0.ordre = 0)
                  LEFT JOIN  applis_def     AS ad0 ON (ad0.id = ai0.aid)
                  LEFT JOIN  applis_ins     AS ai1 ON (u.user_id = ai1.uid AND ai1.ordre = 1)
index 5d55e92..7aa8475 100644 (file)
@@ -240,7 +240,7 @@ class EmailModule extends PLModule
             print_r(Env::v('emails_rewrite'));
             if (Env::v('emailop') == "ajouter" && Env::has('email')) {
                 $new_email = Env::v('email');
-                if ($new_email == "new@new.new") {
+                if ($new_email == "new@example.org") {
                     $new_email = Env::v('email_new');
                 }
                 $retour = $redirect->add_email($new_email);
index 42dc5cd..a63540e 100644 (file)
@@ -122,7 +122,7 @@ class ProfileEmailDirectory implements ProfileSetting
         $success = true;
         if (!is_null($value)) {
             $email_stripped = strtolower(trim($value));
-            if ((!isvalid_email($email_stripped)) && ($email_stripped) && ($p->values['email_directory'] == "new@new.new")) {
+            if ((!isvalid_email($email_stripped)) && ($email_stripped) && ($p->values['email_directory'] == "new@example.org")) {
                 $page->assign('email_error', '1');
                 $page->assign('email_directory_error', $email_stripped);
                 $page->trigError('Adresse Email invalide');
@@ -235,6 +235,8 @@ class ProfileGeneral extends ProfilePage
                                   = new ProfilePub();
         $this->settings['freetext']
                                   = $this->settings['nationalite']
+                                  = $this->settings['nationalite2']
+                                  = $this->settings['nationalite3']
                                   = $this->settings['nick']
                                   = $this->settings['yourself']
                                   = $this->settings['display_name']
@@ -254,13 +256,15 @@ class ProfileGeneral extends ProfilePage
                                   = new ProfileAppli();
         $this->watched= array('nom' => true, 'freetext' => true, 'tels' => true,
                               'networking' => true, 'appli1' => true, 'appli2' => true,
-                              'nationalite' => true, 'nick' => true);
+                              'nationalite' => true, 'nationalite2' => true,
+                              'nationalite3' => true, 'nick' => true);
     }
 
     protected function _fetchData()
     {
         // Checkout all data...
-        $res = XDB::query("SELECT  u.promo, u.promo_sortie, u.nom_usage, u.nationalite, u.naissance,
+        $res = XDB::query("SELECT  u.promo, u.promo_sortie, u.nom_usage, u.nationalite,
+                                   u.nationalite2, u.nationalite3, u.naissance,
                                    t.display_tel as mobile, t.pub as mobile_pub,
                                    d.email_directory as email_directory,
                                    q.profile_freetext as freetext, q.profile_freetext_pub as freetext_pub,
@@ -320,12 +324,26 @@ class ProfileGeneral extends ProfilePage
 
     protected function _saveData()
     {
-        if ($this->changed['nationalite'] || $this->changed['nom'] || $this->changed['prenom']
-            || $this->changed['naissance']) {
+        if ($this->changed['nationalite'] || $this->changed['nationalite2'] || $this->changed['nationalite3']
+            || $this->changed['nom'] || $this->changed['prenom'] || $this->changed['naissance']) {
+            if ($this->values['nationalite3'] == "") {
+                $this->values['nationalite3'] = NULL;
+            }
+            if ($this->values['nationalite2'] == "") {
+                $this->values['nationalite2'] = $this->values['nationalite3'];
+                $this->values['nationalite3'] = NULL;
+            }
+            if ($this->values['nationalite'] == "") {
+                $this->values['nationalite']  = $this->values['nationalite2'];
+                $this->values['nationalite2'] = $this->values['nationalite3'];
+                $this->values['nationalite3'] = NULL;
+            }
+
            XDB::execute("UPDATE  auth_user_md5
-                            SET  nationalite = {?}, nom={?}, prenom={?}, naissance={?}
+                            SET  nationalite = {?}, nationalite2 = {?}, nationalite3 = {?}, nom={?}, prenom={?}, naissance={?}
                           WHERE  user_id = {?}",
-                         $this->values['nationalite'], $this->values['nom'], $this->values['prenom'],
+                         $this->values['nationalite'], $this->values['nationalite2'], $this->values['nationalite3'],
+                         $this->values['nom'], $this->values['prenom'],
                          preg_replace('@(\d{2})/(\d{2})/(\d{4})@', '\3-\2-\1', $this->values['naissance']),
                          S::v('uid'));
         }
@@ -340,8 +358,11 @@ class ProfileGeneral extends ProfilePage
                          $this->values['synchro_ax'], S::v('uid'));
         }
         if ($this->changed['email_directory']) {
-            $new_email = ($this->values['email_directory'] == "new@new.new") ?
+            $new_email = ($this->values['email_directory'] == "new@example.org") ?
                 $this->values['email_directory_new'] : $this->values['email_directory'];
+            if ($new_email == "") {
+                $new_email = NULL;
+            }
             XDB::execute("REPLACE INTO  profile_directory (uid, email_directory)
                                 VALUES  ({?}, {?})",
                          S::v('uid'), $new_email);
index 90f05cf..9796e96 100644 (file)
@@ -49,7 +49,7 @@ class ProfileJob extends ProfileGeoloc
             $chk =& $this->$obj;
             foreach ($fields as $field) {
                 if ($field == "email_new") {
-                    if ($job['email'] == "new@new.new") {
+                    if ($job['email'] == "new@example.org") {
                         $job['email'] = $job[$field];
                     }
                     continue;
@@ -112,7 +112,7 @@ class ProfileJob extends ProfileGeoloc
                      S::i('uid'));
         $i = 0;
         foreach ($value as $jobid=>&$job) {
-            if ($job['email'] == "new@new.new") {
+            if ($job['email'] == "new@example.org") {
                 $job['email'] = $job['email_new'];
             }
             XDB::execute("INSERT INTO  entreprises (uid, entrid, entreprise, secteur, ss_secteur,
index bc0401c..60a9a8e 100644 (file)
@@ -20,7 +20,7 @@
  ***************************************************************************/
 
 
-function select_nat($valeur,$pad=false) {
+function select_nat($valeur, $pad=false) {
     $sql = "SELECT a2 AS id,IF(nat='',pays,nat) AS text FROM geoloc_pays ORDER BY text";
     $res = XDB::iterRow($sql);
     $sel = ' selected="selected"';
@@ -28,19 +28,22 @@ function select_nat($valeur,$pad=false) {
     // on ajoute une entree vide si $pad est vrai
     $html = "";
     if ($pad) {
-       $html.= '<option value="0"'.($valeur==0?$sel:"")."></option>\n";
+             $html .= sprintf("<option value=\"\"%s></option>\n", ($valeur ? $sel : ""));
     }
-    while (list($my_id,$my_text) = $res->next()) {
-       $html .= sprintf("<option value=\"%s\" %s>%s</option>\n",$my_id,($valeur==$my_id?$sel:""),$my_text);
+    while (list($my_id, $my_text) = $res->next()) {
+        $html .= sprintf("<option value=\"%s\"%s>%s</option>\n", $my_id, ($valeur==$my_id ? $sel : ""), $my_text);
     }
+
     return $html;
 }
 
 function smarty_function_select_nat($params, &$smarty) {
-    if(empty($params['pad']) || !($params['pad']))
-       $pad = false;
-    else
-       $pad = true;
+    if (empty($params['pad']) || !($params['pad'])) {
+             $pad = false;
+    } else {
+             $pad = true;
+    }
+
     return select_nat($params['valeur'], $pad);
 }
 
index 244fda4..9ad99bd 100644 (file)
     {if !$c.dcd && $c.inscrit}</a>{/if}
   </div>
   <div class="autre">
-    {if $c.iso3166}
-    <img src='images/flags/{$c.iso3166}.gif' alt='{$c.nat}' height='11' title='{$c.nat}' />&nbsp;
+    {if $c.iso3166_1}
+    <img src='images/flags/{$c.iso3166_1}.gif' alt='{$c.nat1}' height='11' title='{$c.nat1}' />&nbsp;
+    {/if}
+    {if $c.iso3166_2}
+    <img src='images/flags/{$c.iso3166_2}.gif' alt='{$c.nat2}' height='11' title='{$c.nat2}' />&nbsp;
+    {/if}
+    {if $c.iso3166_3}
+    <img src='images/flags/{$c.iso3166_3}.gif' alt='{$c.nat3}' height='11' title='{$c.nat3}' />&nbsp;
     {/if}
     (X {$c.promo})
     {if $c.dcd}décédé{if $c.sexe}e{/if} le {$c.deces|date_format}{/if}
index b53b494..c5cce09 100644 (file)
@@ -71,7 +71,7 @@
         </optgroup>
       {/if}
       <optgroup label="Autres choix">
-        <option value="new@new.new" {if $error}selected="selected"{/if}>Utiliser une autre adresse email</option>
+        <option value="new@example.org" {if $error}selected="selected"{/if}>Utiliser une autre adresse email</option>
         <option value="" {if (($val eq '') && (!$error))}selected="selected"{/if}>{if
         $name neq "email"}Ne pas mettre d'adresse email{else}&nbsp;{/if}</option>
       </optgroup>
@@ -94,7 +94,7 @@
       $(function() {
         $("select#combobox").change(function() {
           $(".new").hide();
-          if ($("select#combobox").val() == "new@new.new") {
+          if ($("select#combobox").val() == "new@example.org") {
             $(".new").show();
           }
         }).change();
index 0b60e96..ac57278 100644 (file)
     </div>
 
     <div class="appli">
-      {if $c.iso3166}
-      <img src='images/flags/{$c.iso3166}.gif' alt='{$c.nat}' height='11' title='{$c.nat}' />&nbsp;
+      {if $c.iso3166_1}
+      <img src='images/flags/{$c.iso3166_1}.gif' alt='{$c.nat1}' height='11' title='{$c.nat1}' />&nbsp;
+      {/if}
+      {if $c.iso3166_2}
+      <img src='images/flags/{$c.iso3166_2}.gif' alt='{$c.nat2}' height='11' title='{$c.nat2}' />&nbsp;
+      {/if}
+      {if $c.iso3166_3}
+      <img src='images/flags/{$c.iso3166_3}.gif' alt='{$c.nat3}' height='11' title='{$c.nat3}' />&nbsp;
       {/if}
       X {$c.promo}{if $c.app0text}, {applis_fmt type=$c.app0type text=$c.app0text url=$c.app0url}{*
       *}{/if}{if $c.app1text}, {applis_fmt type=$c.app1type text=$c.app1text url=$c.app1url}{/if}{*
index b85bb41..7d3118b 100644 (file)
@@ -70,7 +70,9 @@
     </td>
   </tr>
   <tr>
-    <td class="titre">Date de naissance</td>
+    <td>
+      <span class="titre">Date de naissance</span>
+    </td>
     <td><input type="text" {if $errors.naissance}class="error"{/if} name="naissance" value="{$naissance}" /></td>
   </tr>
   <tr>
     </td>
     <td>
       <select name="nationalite">
-        {select_nat valeur=$nationalite}
+        {select_nat valeur=$nationalite pad=1}
+      </select>
+      <a href="javascript:addNationality();">{icon name=add title="Ajouter une nationalité"}</a>
+    </td>
+  </tr>
+  <tr id="nationalite2" {if !$nationalite2}style="display: none"{/if}>
+    <td></td>
+    <td>
+      <select name="nationalite2">
+        {select_nat valeur=$nationalite2 pad=1}
+      </select>
+      <a href="javascript:delNationality('2');">{icon name=cross title="Supprimer cette nationalité"}</a>
+    </td>
+  </tr>
+  <tr id="nationalite3" {if !$nationalite3}style="display: none"{/if}>
+    <td></td>
+    <td>
+      <select name="nationalite3">
+        {select_nat valeur=$nationalite3 pad=1}
       </select>
+      <a href="javascript:delNationality('3');">{icon name=cross title="Supprimer cette nationalité"}</a>
     </td>
   </tr>
   <tr class="pair">
index 489c3a3..a72fa31 100644 (file)
@@ -131,8 +131,14 @@ function chgMainWinLoc(strPage)
     </div>
     {/if}
     <div class='formation'>
-      {if $x.iso3166}
-      <img src='images/flags/{$x.iso3166}.gif' alt='{$x.nationalite}' height='11' title='{$x.nationalite}' />&nbsp;
+      {if $x.iso3166_1}
+      <img src='images/flags/{$x.iso3166_1}.gif' alt='{$x.nationalite}' height='11' title='{$x.nationalite}' />&nbsp;
+      {/if}
+      {if $x.iso3166_2}
+      <img src='images/flags/{$x.iso3166_2}.gif' alt='{$x.nationalite2}' height='11' title='{$x.nationalite2}' />&nbsp;
+      {/if}
+      {if $x.iso3166_3}
+      <img src='images/flags/{$x.iso3166_3}.gif' alt='{$x.nationalite3}' height='11' title='{$x.nationalite3}' />&nbsp;
       {/if}
       X {$x.promo}
       {if ($x.promo_sortie-3 > $x.promo)}
diff --git a/upgrade/fusionax-0.0.1/05_nationalities.sql b/upgrade/fusionax-0.0.1/05_nationalities.sql
new file mode 100644 (file)
index 0000000..48fe5fd
--- /dev/null
@@ -0,0 +1,11 @@
+ALTER TABLE auth_user_md5 ADD COLUMN nationalite2 CHAR(2) DEFAULT NULL,
+                          ADD COLUMN nationalite3 CHAR(2) DEFAULT NULL,
+                          ADD KEY nationalite2 (nationalite2),
+                          ADD KEY nationalite3 (nationalite3),
+                          MODIFY nationalite CHAR(2) DEFAULT NULL;
+
+UPDATE auth_user_md5 SET nationalite=NULL WHERE nationalite="00" OR nationalite='';
+
+DELETE FROM geoloc_pays WHERE a2="00";
+
+# vim:set syntax=mysql: