Properly upper/lowercases accented letters when necessary (Closes #984).
authorStéphane Jacob <sj@m4x.org>
Sat, 17 Oct 2009 23:20:21 +0000 (01:20 +0200)
committerStéphane Jacob <sj@m4x.org>
Sun, 18 Oct 2009 17:09:48 +0000 (19:09 +0200)
16 files changed:
include/geoloc.inc.php
include/profil.func.inc.php
include/synchro_ax.inc.php
include/user.func.inc.php
modules/lists/lists.inc.php
modules/profile.php
modules/profile/general.inc.php
modules/register/register.inc.php
modules/search/classes.inc.php
modules/xnet.php
modules/xnetevents.php
modules/xnetgrp.php
templates/geoloc/city.tpl
templates/payment/xnet.tpl
templates/xnetgrp/annuaire.tpl
templates/xnetlists/sync.tpl

index 00e8fa9..89abd27 100644 (file)
@@ -226,7 +226,7 @@ function get_address_text($adr)
         if (isset($adr['city']) && $adr['city']) $l .= $adr['city'];
     }
     if ($l) $t .= "\n".trim($l);
-    if ($adr['country'] != '00' && (!$adr['countrytxt'] || $adr['countrytxt'] == strtoupper($adr['countrytxt']))) {
+    if ($adr['country'] != '00' && (!$adr['countrytxt'] || $adr['countrytxt'] == mb_strtoupper($adr['countrytxt']))) {
         $res = XDB::query("SELECT pays FROM geoloc_pays WHERE a2 = {?}", $adr['country']);
         $adr['countrytxt'] = $res->fetchOneCell();
     }
@@ -244,8 +244,8 @@ function get_address_text($adr)
  */
 function compare_addresses_text($a, $b)
 {
-    $ta = strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"), array("", "\n"), $a));
-    $tb = strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"), array("", "\n"), $b));
+    $ta = mb_strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"), array("", "\n"), $a));
+    $tb = mb_strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"), array("", "\n"), $b));
 
     $la = explode("\n", $ta);
     $lb = explode("\n", $tb);
index 7b418d7..9c9c782 100644 (file)
@@ -108,7 +108,7 @@ function same_field(&$a, &$b) {
             if (!isset($b[$val]) || !same_field($avar, $b[$val])) return false;
         return true;
     } elseif (is_string($a))
-        return (strtoupper($a) == strtoupper($b));
+        return (mb_strtoupper($a) == mb_strtoupper($b));
 }
 function diff_user_tel(&$a, &$b) {
     $c = $a;
index 798b4dd..ed0bd61 100644 (file)
@@ -35,8 +35,8 @@ function get_user_ax($matricule_ax, $raw=false)
     $userax = Array();
     $userax['matricule_ax'] = $matricule_ax;
 
-    $userax['nom'] = strtoupper($ancien->Nom_patr());
-    $userax['nom_usage'] = strtoupper($ancien->Nom_usuel());
+    $userax['nom'] = mb_strtoupper($ancien->Nom_patr());
+    $userax['nom_usage'] = mb_strtoupper($ancien->Nom_usuel());
     if ($userax['nom_usage'] == $userax['nom']) $userax['nom_usage'] = '';
     $userax['prenom'] = $ancien->Prenom();
     $userax['sexe'] = ($ancien->Civilite() != 'M')?1:0;
@@ -65,7 +65,7 @@ function get_user_ax($matricule_ax, $raw=false)
         $jobax['postcode']   = $ancien->Adresse_act_code_pst($i);
         $jobax['city'] = $ancien->Adresse_act_ville($i);
         $jobax['region'] = $ancien->Adresse_act_etat_region($i);
-        $jobax['countrytxt'] = ucwords(strtolower($ancien->Adresse_act_pays($i)));
+        $jobax['countrytxt'] = ucwords(mb_strtolower($ancien->Adresse_act_pays($i)));
         $jobax['tel']  = $ancien->Adresse_act_tel($i);
         $jobax['fax']  = $ancien->Adresse_act_fax($i);
         $jobax['mobile'] = $ancien->Adresse_act_mobile($i);
@@ -85,7 +85,7 @@ function get_user_ax($matricule_ax, $raw=false)
         $adrax['postcode'] = $ancien->Code_pst($i);
         $adrax['city'] = $ancien->Ville($i);
         $adrax['region'] = $ancien->Etat_region($i);
-        $adrax['countrytxt'] = ucwords(strtolower($ancien->Pays($i)));
+        $adrax['countrytxt'] = ucwords(mb_strtolower($ancien->Pays($i)));
         $adrax['pub'] = 'ax';
         if ($ancien->Tel($i) || $ancien->Fax($i)) {
             $adrax['tels'] = array();
index c37be8f..1a07456 100644 (file)
@@ -572,7 +572,7 @@ function set_user_details_pro($uid, $pros)
 // {{{ function set_user_details()
 function set_user_details($uid, $details) {
     if (isset($details['nom_usage'])) {
-        XDB::execute("UPDATE auth_user_md5 SET nom_usage = {?} WHERE user_id = {?}", strtoupper($details['nom_usage']), $uid);
+        XDB::execute("UPDATE auth_user_md5 SET nom_usage = {?} WHERE user_id = {?}", mb_strtoupper($details['nom_usage']), $uid);
     }
     if (isset($details['mobile'])) {
         XDB::execute("UPDATE auth_user_quick SET profile_mobile = {?} WHERE user_id = {?}", $details['mobile'], $uid);
index 2b2af8a..8c9e81c 100644 (file)
@@ -37,7 +37,7 @@ function list_sort_owners(&$members, $tri_promo = true) {
             $prenom = $info['prenom'];
             $promo = $info['promo'];
             $broken = $info['lost'];
-            $key = $tri_promo ? ($promo != 'non-X' ? $promo : 0) : strtoupper(@$nom{0});
+            $key = $tri_promo ? ($promo != 'non-X' ? $promo : 0) : mb_strtoupper(@$nom{0});
             if ($tri_promo) {
                 $promo = null;
             }
index af93171..58a485f 100644 (file)
@@ -675,8 +675,7 @@ class ProfileModule extends PLModule
         $page->assign('usage_old', $usage_old);
         $page->assign('alias_old',  $alias_old);
 
-        $nom_usage = replace_accent(trim(Env::v('nom_usage')));
-        $nom_usage = strtoupper($nom_usage);
+        $nom_usage = mb_strtoupper(trim(Env::v('nom_usage')));
         $page->assign('usage_req', $nom_usage);
 
         if (Env::has('submit') && ($nom_usage != $usage_old)) {
index 719f2a0..8afe3f8 100644 (file)
@@ -29,7 +29,7 @@ class ProfileNom implements ProfileSetting
 
     private function prepareField($value)
     {
-        $value = strtoupper(replace_accent($value));
+        $value = mb_strtoupper($value);
         return preg_replace('/[^A-Z]/', ' ', $value);
     }
 
index 19cd7f2..7bf431a 100644 (file)
 
 function user_cmp($prenom, $nom, $_prenom, $_nom)
 {
-    $_nom    = strtoupper(replace_accent($_nom));
-    $_prenom = strtoupper(replace_accent($_prenom));
-    $nom     = strtoupper(replace_accent($nom));
-    $prenom  = strtoupper(replace_accent($prenom));
+    $_nom    = mb_strtoupper($_nom);
+    $_prenom = mb_strtoupper($_prenom);
+    $nom     = mb_strtoupper($nom);
+    $prenom  = mb_strtoupper($prenom);
 
-    $is_ok   = strtoupper($_prenom) == strtoupper($prenom);
+    $is_ok   = mb_strtoupper($_prenom) == mb_strtoupper($prenom);
 
     $tokens  = preg_split("/[ \-']/", $nom, -1, PREG_SPLIT_NO_EMPTY);
     $maxlen  = 0;
@@ -126,7 +126,7 @@ function check_new_user(&$sub)
     $nom     = preg_replace("/[ \t]+/", ' ', trim($nom));
     $nom     = preg_replace("/--+/", '-', $nom);
     $nom     = preg_replace("/''+/", '\'', $nom);
-    $nom     = strtoupper(replace_accent($nom));
+    $nom     = mb_strtoupper($nom);
 
     if ($promo >= 1996) {
         $res = check_mat($promo, $mat, $nom, $prenom, $ourmat, $ourid, $watch, $naiss);
index a9ae124..9def2db 100644 (file)
@@ -571,7 +571,7 @@ class StringSField extends SField
      * imposées par l'utilisateur) */
     function length()
     {
-        $cleaned = replace_accent(strtolower($this->value));
+        $cleaned = strtolower(replace_accent($this->value));
         $length  = strlen(ereg_replace('[a-z0-9]', '', $cleaned));
         return strlen($this->value) - $length;
     }
index 2c04835..5f0145e 100644 (file)
@@ -187,7 +187,7 @@ class XnetModule extends PLModule
             $this->handler_index(&$page);
         }
 
-        $cat = strtolower($cat);
+        $cat = mb_strtolower($cat);
 
         $page->changeTpl('xnet/groupes.tpl');
         $page->assign('cat', $cat);
index f5cd0f4..9c064a8 100644 (file)
@@ -615,7 +615,7 @@ class XnetEventsModule extends PLModule
         while (list($char, $nb) = $res->next()) {
             $alphabet[ord($char)] = $char;
             $nb_tot += $nb;
-            if (Env::has('initiale') && $char == strtoupper(Env::v('initiale'))) {
+            if (Env::has('initiale') && $char == mb_strtoupper(Env::v('initiale'))) {
                 $tot = $nb;
             }
         }
index e6ebd1e..609c8c0 100644 (file)
@@ -406,7 +406,7 @@ class XnetGrpModule extends PLModule
         while (list($char, $nb) = $res->next()) {
             $alphabet[] = $char;
             $nb_tot += $nb;
-            if (Env::has($group) && $char == strtoupper(Env::v($group))) {
+            if (Env::has($group) && $char == mb_strtoupper(Env::v($group))) {
                 $tot = $nb;
             }
         }
index 3b1007b..27f619f 100644 (file)
@@ -22,6 +22,6 @@
 <city id="{$smarty.request.cityid}">\r
   {assign var="beginning" value=true}\r
   {assign var="nb_displayed" value=0}\r
-  {foreach from=$users item="user"}{if !$beginning}<br/>{/if}{if $nb_displayed < 10}<a href="javascript:ficheXorg('{$user.alias}');">{$user.prenom} {$user.nom|strtolower|ucwords} - {$user.promo}</a>{else}<a href="javascript:clickOnCity({$smarty.request.cityid})">&hellip;</a>{/if}{assign var="nb_displayed" value=$nb_displayed+1}{assign var="beginning" value=false}{/foreach}\r
+  {foreach from=$users item="user"}{if !$beginning}<br/>{/if}{if $nb_displayed < 10}<a href="javascript:ficheXorg('{$user.alias}');">{$user.prenom} {$user.nom|mb_strtolower|ucwords} - {$user.promo}</a>{else}<a href="javascript:clickOnCity({$smarty.request.cityid})">&hellip;</a>{/if}{assign var="nb_displayed" value=$nb_displayed+1}{assign var="beginning" value=false}{/foreach}\r
 </city>\r
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}\r
index 2ff1af8..5c9d194 100644 (file)
@@ -115,7 +115,7 @@ Voici la liste des paiements en ligne possible pour le groupe {$asso.nom} :
     <td class="center">{$p.date|date_format:"%d/%m/%y"}</td>
     <td>
       <a href="https://www.polytechnique.org/profile/{$p.alias}" class="popup2">
-        {$p.nom|strtoupper} {$p.prenom}
+        {$p.nom|mb_strtoupper} {$p.prenom}
        </a>
     </td>
     <td>
index 94e8a22..ec51d81 100644 (file)
@@ -108,7 +108,7 @@ Le groupe {$asso.nom} compte {$nb_tot} membres&nbsp;:
       {elseif $m.x}
       <a href="https://www.polytechnique.org/marketing/public/{$m.uid}">
       {/if}
-      {if $m.femme}&bull;{/if}{if $m.prenom || $m.nom}{$m.prenom} {$m.nom|strtoupper}{else}{$m.email}{/if}
+      {if $m.femme}&bull;{/if}{if $m.prenom || $m.nom}{$m.prenom} {$m.nom|mb_strtoupper}{else}{$m.email}{/if}
       {if $m.x}</a>{/if} 
       {if $m.admin}</strong>{/if}
       {if $m.inscrit && !$m.actif}
index eb720dd..d0f562f 100644 (file)
@@ -34,7 +34,7 @@
     </tr>
     {foreach from=$not_in_list item=u}
     <tr>
-      <td class='checkboxToggle'>{$u.nom|strtoupper} {$u.prenom}</td>
+      <td class='checkboxToggle'>{$u.nom|mb_strtoupper} {$u.prenom}</td>
       <td class='checkboxToggle'>{$u.promo}</td>
       <td class='checkboxToggle'><input type="checkbox" class="moderate_email" name="add[{$u.email}]" id="add{$u.email}"/></td>
     </tr>