Ignore:
Timestamp:
Dec 13, 2015, 11:35:58 AM (5 years ago)
Author:
cedric@…
Message:

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/filtres_images/filtres/images_typo.php

    r93092 r93611  
    1010\***************************************************************************/
    1111
    12 if (!defined('_ECRIRE_INC_VERSION')) return;
     12if (!defined('_ECRIRE_INC_VERSION')) {
     13        return;
     14}
    1315
    1416// librairie de base du core
     
    2022
    2123// http://code.spip.net/@rtl_mb_ord
    22 function rtl_mb_ord($char){
    23 
    24         if (($c = ord($char)) < 216) return $c;
    25         else return 256 * rtl_mb_ord(substr($char, 0, -1)) + ord(substr($char, -1));
     24function rtl_mb_ord($char) {
     25
     26        if (($c = ord($char)) < 216) {
     27                return $c;
     28        } else {
     29                return 256*rtl_mb_ord(substr($char, 0, -1))+ord(substr($char, -1));
     30        }
    2631
    2732        /*      return (strlen($char) < 2) ?
     
    2934                                + ord(substr($char, -1));
    3035                               
    31         */                     
     36        */
    3237}
    3338
     
    3742        $rtl_prec = $rtl_global;
    3843
    39         $ponctuations = array("/", "-", "«","»", "“", "”", ",", ".", " ", ":", ";", "(", ")", "،", "؟", "?", "!", " ");
    40         foreach($ponctuations as $ponct) {
     44        $ponctuations = array("/", "-", "«", "»", "“", "”", ",", ".", " ", ":", ";", "(", ")", "،", "؟", "?", "!", " ");
     45        foreach ($ponctuations as $ponct) {
    4146                $ponctuation[$ponct] = true;
    4247        }
    4348
    44                
    4549
    4650        for ($i = 0; $i < spip_strlen($mot); $i++) {
    4751                $lettre = spip_substr($mot, $i, 1);
    48                
     52
    4953                $code = rtl_mb_ord($lettre);
    5054                # echo "<li>$lettre - $code";
    5155
    52                 if (($code >= 54928 && $code <= 56767) ||  ($code >= 15707294 && $code <= 15711164)) {
     56                if (($code >= 54928 && $code <= 56767) || ($code >= 15707294 && $code <= 15711164)) {
    5357                        $rtl = true;
    54                 }
    55                 else $rtl = false;
    56                
     58                } else {
     59                        $rtl = false;
     60                }
     61
    5762                if ($lettre == "٠" || $lettre == "١" || $lettre == "٢" || $lettre == "٣" || $lettre == "٤" || $lettre == "٥"
    58                                  || $lettre == "٦" || $lettre == "٧" || $lettre == "٨" || $lettre == "٩") $rtl = false;
    59                
     63                        || $lettre == "٦" || $lettre == "٧" || $lettre == "٨" || $lettre == "٩"
     64                ) {
     65                        $rtl = false;
     66                }
     67
    6068                if ($ponctuation[$lettre]) {
    6169                        # le truc mega casse-gueule de l'inversion unicode:
     
    6371                        # (et non automatiquement le rtl_global)
    6472                        $rtl = $rtl_prec;
    65                        
     73
    6674                        if ($rtl) {
    6775                                switch ($lettre) {
    68                                         case "(": $lettre = ")"; break;
    69                                         case ")": $lettre = "("; break;
    70                                         case "«": $lettre = "»"; break;
    71                                         case "»": $lettre = "«"; break;
    72                                         case "“": $lettre = "”"; break;
    73                                         case "”": $lettre = "“"; break;
     76                                        case "(":
     77                                                $lettre = ")";
     78                                                break;
     79                                        case ")":
     80                                                $lettre = "(";
     81                                                break;
     82                                        case "«":
     83                                                $lettre = "»";
     84                                                break;
     85                                        case "»":
     86                                                $lettre = "«";
     87                                                break;
     88                                        case "“":
     89                                                $lettre = "”";
     90                                                break;
     91                                        case "”":
     92                                                $lettre = "“";
     93                                                break;
    7494                                }
    7595                        }
    7696                }
    77                
    78                
    79                 if ($rtl) $res = $lettre.$res;
    80                 else $res = $res.$lettre;
    81                
     97
     98
     99                if ($rtl) {
     100                        $res = $lettre . $res;
     101                } else {
     102                        $res = $res . $lettre;
     103                }
     104
    82105                $rtl_prec = $rtl;
    83                
    84         }
     106
     107        }
     108
    85109        return $res;
    86110}
    87 
    88111
    89112
     
    93116        // hebreu + presentation A: 15707294 => 15710140
    94117        // arabe presentation: 15708336 => 15711164
    95        
     118
    96119        #       echo hexdec("efb7bc");
    97120
     
    101124
    102125        $arabic_letters = array(
    103                 array("ي", // lettre 0
     126                array(
     127                        "ي", // lettre 0
    104128                        "ﻱ",  // isolee 1
    105129                        "ﻳ", // debut 2
    106130                        "ﻴ", // milieu 3
    107                         "ﻲ"),
    108                 array("ب", // lettre 0
     131                        "ﻲ"
     132                ),
     133                array(
     134                        "ب", // lettre 0
    109135                        "ﺏ",  // isolee 1
    110136                        "ﺑ", // debut 2
    111137                        "ﺒ", // milieu 3
    112                         "ﺐ"),
    113                 array("ا", // lettre 0
     138                        "ﺐ"
     139                ),
     140                array(
     141                        "ا", // lettre 0
    114142                        "ا",  // isolee 1
    115143                        "ﺍ", // debut 2
    116144                        "ﺍ", // milieu 3
    117                         "ﺎ"),
    118                 array("إ", // lettre 0
     145                        "ﺎ"
     146                ),
     147                array(
     148                        "إ", // lettre 0
    119149                        "إ",  // isolee 1
    120150                        "إ", // debut 2
    121151                        "ﺈ", // milieu 3
    122                         "ﺈ"),
    123                 array("ل", // lettre 0
     152                        "ﺈ"
     153                ),
     154                array(
     155                        "ل", // lettre 0
    124156                        "ﻝ",  // isolee 1
    125157                        "ﻟ", // debut 2
    126158                        "ﻠ", // milieu 3
    127                         "ﻞ"),
    128                 array("خ", // lettre 0
     159                        "ﻞ"
     160                ),
     161                array(
     162                        "خ", // lettre 0
    129163                        "ﺥ",  // isolee 1
    130164                        "ﺧ", // debut 2
    131165                        "ﺨ", // milieu 3
    132                         "ﺦ"),
    133                 array("ج", // lettre 0
     166                        "ﺦ"
     167                ),
     168                array(
     169                        "ج", // lettre 0
    134170                        "ﺝ",  // isolee 1
    135171                        "ﺟ", // debut 2
    136172                        "ﺠ", // milieu 3
    137                         "ﺞ"),
    138                 array("س", // lettre 0
     173                        "ﺞ"
     174                ),
     175                array(
     176                        "س", // lettre 0
    139177                        "ﺱ",  // isolee 1
    140178                        "ﺳ", // debut 2
    141179                        "ﺴ", // milieu 3
    142                         "ﺲ"),
    143                 array("ن", // lettre 0
     180                        "ﺲ"
     181                ),
     182                array(
     183                        "ن", // lettre 0
    144184                        "ﻥ",  // isolee 1
    145185                        "ﻧ", // debut 2
    146186                        "ﻨ", // milieu 3
    147                         "ﻦ"),
    148                 array("ش", // lettre 0
     187                        "ﻦ"
     188                ),
     189                array(
     190                        "ش", // lettre 0
    149191                        "ﺵ",  // isolee 1
    150192                        "ﺷ", // debut 2
    151193                        "ﺸ", // milieu 3
    152                         "ﺶ"),
    153                 array("ق", // lettre 0
     194                        "ﺶ"
     195                ),
     196                array(
     197                        "ق", // lettre 0
    154198                        "ﻕ",  // isolee 1
    155199                        "ﻗ", // debut 2
    156200                        "ﻘ", // milieu 3
    157                         "ﻖ"),
    158                 array("ح", // lettre 0
     201                        "ﻖ"
     202                ),
     203                array(
     204                        "ح", // lettre 0
    159205                        "ﺡ",  // isolee 1
    160206                        "ﺣ", // debut 2
    161207                        "ﺤ", // milieu 3
    162                         "ﺢ"),
    163                 array("م", // lettre 0
     208                        "ﺢ"
     209                ),
     210                array(
     211                        "م", // lettre 0
    164212                        "ﻡ",  // isolee 1
    165213                        "ﻣ", // debut 2
    166214                        "ﻤ", // milieu 3
    167                         "ﻢ"),
    168                 array("ر", // lettre 0
     215                        "ﻢ"
     216                ),
     217                array(
     218                        "ر", // lettre 0
    169219                        "ر",  // isolee 1
    170220                        "ﺭ", // debut 2
    171221                        "ﺮ", // milieu 3
    172                         "ﺮ"),
    173                 array("ع", // lettre 0
     222                        "ﺮ"
     223                ),
     224                array(
     225                        "ع", // lettre 0
    174226                        "ع",  // isolee 1
    175227                        "ﻋ", // debut 2
    176228                        "ﻌ", // milieu 3
    177                         "ﻊ"),
    178                 array("و", // lettre 0
     229                        "ﻊ"
     230                ),
     231                array(
     232                        "و", // lettre 0
    179233                        "و",  // isolee 1
    180234                        "ﻭ", // debut 2
    181235                        "ﻮ", // milieu 3
    182                         "ﻮ"),
    183                 array("ة", // lettre 0
     236                        "ﻮ"
     237                ),
     238                array(
     239                        "ة", // lettre 0
    184240                        "ة",  // isolee 1
    185241                        "ة", // debut 2
    186242                        "ﺔ", // milieu 3
    187                         "ﺔ"),
    188                 array("ف", // lettre 0
     243                        "ﺔ"
     244                ),
     245                array(
     246                        "ف", // lettre 0
    189247                        "ﻑ",  // isolee 1
    190248                        "ﻓ", // debut 2
    191249                        "ﻔ", // milieu 3
    192                         "ﻒ"),
    193                 array("ﻻ", // lettre 0
     250                        "ﻒ"
     251                ),
     252                array(
     253                        "ﻻ", // lettre 0
    194254                        "ﻻ",  // isolee 1
    195255                        "ﻻ", // debut 2
    196256                        "ﻼ", // milieu 3
    197                         "ﻼ"),
    198                 array("ح", // lettre 0
     257                        "ﻼ"
     258                ),
     259                array(
     260                        "ح", // lettre 0
    199261                        "ﺡ",  // isolee 1
    200262                        "ﺣ", // debut 2
    201263                        "ﺤ", // milieu 3
    202                         "ﺢ"),
    203                 array("ت", // lettre 0
     264                        "ﺢ"
     265                ),
     266                array(
     267                        "ت", // lettre 0
    204268                        "ﺕ",  // isolee 1
    205269                        "ﺗ", // debut 2
    206270                        "ﺘ", // milieu 3
    207                         "ﺖ"),
    208                 array("ض", // lettre 0
     271                        "ﺖ"
     272                ),
     273                array(
     274                        "ض", // lettre 0
    209275                        "ﺽ",  // isolee 1
    210276                        "ﺿ", // debut 2
    211277                        "ﻀ", // milieu 3
    212                         "ﺾ"),
    213                 array("ك", // lettre 0
     278                        "ﺾ"
     279                ),
     280                array(
     281                        "ك", // lettre 0
    214282                        "ك",  // isolee 1
    215283                        "ﻛ", // debut 2
    216284                        "ﻜ", // milieu 3
    217                         "ﻚ"),
    218                 array("ه", // lettre 0
     285                        "ﻚ"
     286                ),
     287                array(
     288                        "ه", // lettre 0
    219289                        "ﻩ",  // isolee 1
    220290                        "ﻫ", // debut 2
    221291                        "ﻬ", // milieu 3
    222                         "ﻪ"),
    223                 array("ي", // lettre 0
     292                        "ﻪ"
     293                ),
     294                array(
     295                        "ي", // lettre 0
    224296                        "ي",  // isolee 1
    225297                        "ﻳ", // debut 2
    226298                        "ﻴ", // milieu 3
    227                         "ﻲ"),
    228                 array("ئ", // lettre 0
     299                        "ﻲ"
     300                ),
     301                array(
     302                        "ئ", // lettre 0
    229303                        "ﺉ",  // isolee 1
    230304                        "ﺋ", // debut 2
    231305                        "ﺌ", // milieu 3
    232                         "ﺊ"),
    233                 array("ص", // lettre 0
     306                        "ﺊ"
     307                ),
     308                array(
     309                        "ص", // lettre 0
    234310                        "ﺹ",  // isolee 1
    235311                        "ﺻ", // debut 2
    236312                        "ﺼ", // milieu 3
    237                         "ﺺ"),
    238                 array("ث", // lettre 0
     313                        "ﺺ"
     314                ),
     315                array(
     316                        "ث", // lettre 0
    239317                        "ﺙ",  // isolee 1
    240318                        "ﺛ", // debut 2
    241319                        "ﺜ", // milieu 3
    242                         "ﺚ"),
    243                 array("ﻷ", // lettre 0
     320                        "ﺚ"
     321                ),
     322                array(
     323                        "ﻷ", // lettre 0
    244324                        "ﻷ",  // isolee 1
    245325                        "ﻷ", // debut 2
    246326                        "ﻸ", // milieu 3
    247                         "ﻸ"),
    248                 array("د", // lettre 0
     327                        "ﻸ"
     328                ),
     329                array(
     330                        "د", // lettre 0
    249331                        "ﺩ",  // isolee 1
    250332                        "ﺩ", // debut 2
    251333                        "ﺪ", // milieu 3
    252                         "ﺪ"),
    253                 array("ذ", // lettre 0
     334                        "ﺪ"
     335                ),
     336                array(
     337                        "ذ", // lettre 0
    254338                        "ﺫ",  // isolee 1
    255339                        "ﺫ", // debut 2
    256340                        "ﺬ", // milieu 3
    257                         "ﺬ"),
    258                 array("ط", // lettre 0
     341                        "ﺬ"
     342                ),
     343                array(
     344                        "ط", // lettre 0
    259345                        "ﻁ",  // isolee 1
    260346                        "ﻃ", // debut 2
    261347                        "ﻄ", // milieu 3
    262                         "ﻂ"),
    263                 array("آ", // lettre 0
     348                        "ﻂ"
     349                ),
     350                array(
     351                        "آ", // lettre 0
    264352                        "آ",  // isolee 1
    265353                        "آ", // debut 2
    266354                        "ﺂ", // milieu 3
    267                         "ﺂ"),
    268                 array("أ", // lettre 0
     355                        "ﺂ"
     356                ),
     357                array(
     358                        "أ", // lettre 0
    269359                        "أ",  // isolee 1
    270360                        "أ", // debut 2
    271361                        "ﺄ", // milieu 3
    272                         "ﺄ"),
    273                 array("ؤ", // lettre 0
     362                        "ﺄ"
     363                ),
     364                array(
     365                        "ؤ", // lettre 0
    274366                        "ؤ",  // isolee 1
    275367                        "ؤ", // debut 2
    276368                        "ﺆ", // milieu 3
    277                         "ﺆ"),
    278                 array("ز", // lettre 0
     369                        "ﺆ"
     370                ),
     371                array(
     372                        "ز", // lettre 0
    279373                        "ز",  // isolee 1
    280374                        "ز", // debut 2
    281375                        "ﺰ", // milieu 3
    282                         "ﺰ"),
    283                 array("ظ", // lettre 0
     376                        "ﺰ"
     377                ),
     378                array(
     379                        "ظ", // lettre 0
    284380                        "ظ",  // isolee 1
    285381                        "ﻇ", // debut 2
    286382                        "ﻈ", // milieu 3
    287                         "ﻆ"),
    288                 array("غ", // lettre 0
     383                        "ﻆ"
     384                ),
     385                array(
     386                        "غ", // lettre 0
    289387                        "غ",  // isolee 1
    290388                        "ﻏ", // debut 2
    291389                        "ﻐ", // milieu 3
    292                         "ﻎ"),
    293                 array("ى", // lettre 0
     390                        "ﻎ"
     391                ),
     392                array(
     393                        "ى", // lettre 0
    294394                        "ى",  // isolee 1
    295395                        "ﯨ", // debut 2
    296396                        "ﯩ", // milieu 3
    297                         "ﻰ"),
    298                 array("پ", // lettre 0
     397                        "ﻰ"
     398                ),
     399                array(
     400                        "پ", // lettre 0
    299401                        "پ",  // isolee 1
    300402                        "ﭘ", // debut 2
    301403                        "ﭙ", // milieu 3
    302                         "ﭗ"),
    303                 array("چ", // lettre 0
     404                        "ﭗ"
     405                ),
     406                array(
     407                        "چ", // lettre 0
    304408                        "چ",  // isolee 1
    305409                        "ﭼ", // debut 2
    306410                        "ﭽ", // milieu 3
    307                         "ﭻ")
     411                        "ﭻ"
     412                )
    308413        );
    309        
    310         if(init_mb_string() AND mb_regex_encoding() !== "UTF-8") echo "Attention: dans php.ini, il faut indiquer:<br /><strong>mbstring.internal_encoding = UTF-8</strong>";
    311        
    312        
     414
     415        if (init_mb_string() AND mb_regex_encoding() !== "UTF-8") {
     416                echo "Attention: dans php.ini, il faut indiquer:<br /><strong>mbstring.internal_encoding = UTF-8</strong>";
     417        }
     418
     419
    313420        $texte = explode(" ", $texte);
    314        
     421
    315422        foreach ($texte as $mot) {
    316423                $res = "";
    317424
    318425                // Inserer des indicateurs de debut/fin
    319                 $mot = "^".$mot."^";
     426                $mot = "^" . $mot . "^";
    320427
    321428                $mot = preg_replace(",&nbsp;,u", " ", $mot);
     
    324431
    325432                // ponctuations
    326                 $ponctuations = array("/", "-", "«","»", "“", "”", ",", ".", " ", ":", ";", "(", ")", "،", "؟", "?", "!"," ");
    327                 foreach($ponctuations as $ponct) {
     433                $ponctuations = array("/", "-", "«", "»", "“", "”", ",", ".", " ", ":", ";", "(", ")", "،", "؟", "?", "!", " ");
     434                foreach ($ponctuations as $ponct) {
    328435                        $mot = str_replace("$ponct", "^$ponct^", $mot);
    329436                }
     
    361468                $mot = preg_replace(",لا,u", "ﻻ", $mot);
    362469                $mot = preg_replace(",لأ,u", "ﻷ", $mot);
    363                
    364                
     470
     471
    365472                foreach ($arabic_letters as $a_l) {
    366                         $mot = preg_replace(",([^\^])".$a_l[0]."([^\^]),u", "\\1".$a_l[3]."\\2", $mot);
    367                         $mot = preg_replace(",\^".$a_l[0]."([^\^]),u", "^".$a_l[2]."\\1", $mot);
    368                         $mot = preg_replace(",([^\^])".$a_l[0]."\^,u", "\\1".$a_l[4]."^", $mot);
     473                        $mot = preg_replace(",([^\^])" . $a_l[0] . "([^\^]),u", "\\1" . $a_l[3] . "\\2", $mot);
     474                        $mot = preg_replace(",\^" . $a_l[0] . "([^\^]),u", "^" . $a_l[2] . "\\1", $mot);
     475                        $mot = preg_replace(",([^\^])" . $a_l[0] . "\^,u", "\\1" . $a_l[4] . "^", $mot);
    369476                        // il semble qu'il ne soit pas necessaire de remplacer
    370477                        // la lettre isolee
    371478                        //                      $mot = preg_replace(",\^".$a_l[0]."\^,u", "^".$a_l[1]."^", $mot);
    372479                }
    373                
    374                                 $mot = preg_replace(",\^,u", "", $mot);
    375                
     480
     481                $mot = preg_replace(",\^,u", "", $mot);
     482
    376483                $res = $mot;
    377484                $res = rtl_reverse($mot, $rtl_global);
     
    385492                }
    386493                */
    387                
    388                
    389                 if ($rtl_global) $retour = $res . " " . $retour;
    390                 else $retour = $retour. " ".$res;
    391         }
    392        
    393        
     494
     495
     496                if ($rtl_global) {
     497                        $retour = $res . " " . $retour;
     498                } else {
     499                        $retour = $retour . " " . $res;
     500                }
     501        }
     502
     503
    394504        return $retour;
    395505}
     
    397507
    398508// http://code.spip.net/@printWordWrapped
    399 function printWordWrapped($image, $top, $left, $maxWidth, $font, $couleur, $text, $textSize, $align = "left", $hauteur_ligne = 0) {
     509function printWordWrapped(
     510        $image,
     511        $top,
     512        $left,
     513        $maxWidth,
     514        $font,
     515        $couleur,
     516        $text,
     517        $textSize,
     518        $align = "left",
     519        $hauteur_ligne = 0
     520) {
    400521        static $memps = array();
    401522        $fontps = false;
     
    405526
    406527        // calculer les couleurs ici, car fonctionnement different selon TTF ou PS
    407         $black = imagecolorallocatealpha($image, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 0);
    408         $grey2 = imagecolorallocatealpha($image, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 127);
     528        $black = imagecolorallocatealpha($image, hexdec("0x{" . substr($couleur, 0, 2) . "}"),
     529                hexdec("0x{" . substr($couleur, 2, 2) . "}"), hexdec("0x{" . substr($couleur, 4, 2) . "}"), 0);
     530        $grey2 = imagecolorallocatealpha($image, hexdec("0x{" . substr($couleur, 0, 2) . "}"),
     531                hexdec("0x{" . substr($couleur, 2, 2) . "}"), hexdec("0x{" . substr($couleur, 4, 2) . "}"), 127);
    409532
    410533        // Gaffe, T1Lib ne fonctionne carrement pas bien des qu'on sort de ASCII
     
    413536        // Si police Postscript et que fonction existe...
    414537        if (
    415         false AND
    416         strtolower(substr($font,-4)) == ".pfb"
    417         AND function_exists("imagepstext")) {
     538                false AND
     539                strtolower(substr($font, -4)) == ".pfb"
     540                AND function_exists("imagepstext")
     541        ) {
    418542                // Traitement specifique pour polices PostScript (experimental)
    419                 $textSizePs = round(1.32 * $textSize);
     543                $textSizePs = round(1.32*$textSize);
    420544                if (!$fontps = $memps["$font"]) {
    421545                        $fontps = imagepsloadfont($font);
     
    430554                $lettre = spip_substr($text, $i, 1);
    431555                $code = rtl_mb_ord($lettre);
    432                 if (($code >= 54928 && $code <= 56767) ||  ($code >= 15707294 && $code <= 15711164)) {
     556                if (($code >= 54928 && $code <= 56767) || ($code >= 15707294 && $code <= 15711164)) {
    433557                        $rtl_global = true;
    434558                }
     
    440564
    441565        // les espaces
    442         foreach($words as $k=>$v)
     566        foreach ($words as $k => $v) {
    443567                $words[$k] = str_replace(array('~'), array(' '), $v);
    444 
    445 
    446         if ($hauteur_ligne == 0) $lineHeight = floor($textSize * 1.3);
    447         else $lineHeight = $hauteur_ligne;
     568        }
     569
     570
     571        if ($hauteur_ligne == 0) {
     572                $lineHeight = floor($textSize*1.3);
     573        } else {
     574                $lineHeight = $hauteur_ligne;
     575        }
    448576
    449577        $dimensions_espace = imageftbbox($textSize, 0, $font, ' ', array());
    450         if ($dimensions_espace[2] < 0)
     578        if ($dimensions_espace[2] < 0) {
    451579                $dimensions_espace = imageftbbox($textSize, 0, $font, $line, array());
    452         $largeur_espace = $dimensions_espace[2] - $dimensions_espace[0];
     580        }
     581        $largeur_espace = $dimensions_espace[2]-$dimensions_espace[0];
    453582        $retour["espace"] = $largeur_espace;
    454583
     
    457586        $lines = array();
    458587        while (count($words) > 0) {
    459                
     588
    460589                $mot = $words[0];
    461                
    462                 if ($rtl_global) $mot = rtl_visuel($mot,$rtl_global);
    463        
    464                 $dimensions = imageftbbox($textSize, 0, $font, $line.' '.$mot, array());
    465                 $lineWidth = $dimensions[2] - $dimensions[0]; // get the length of this line, if the word is to be included
     590
     591                if ($rtl_global) {
     592                        $mot = rtl_visuel($mot, $rtl_global);
     593                }
     594
     595                $dimensions = imageftbbox($textSize, 0, $font, $line . ' ' . $mot, array());
     596                $lineWidth = $dimensions[2]-$dimensions[0]; // get the length of this line, if the word is to be included
    466597                if ($lineWidth > $maxWidth) { // if this makes the text wider that anticipated
    467598                        $lines[] = $line; // add the line to the others
    468599                        $line = ''; // empty it (the word will be added outside the loop)
    469600                }
    470                 $line .= ' '.$words[0]; // add the word to the current sentence
     601                $line .= ' ' . $words[0]; // add the word to the current sentence
    471602                $words = array_slice($words, 1); // remove the word from the array
    472603        }
    473         if ($line != '') { $lines[] = $line; } // add the last line to the others, if it isn't empty
    474         $height = count($lines) * $lineHeight; // the height of all the lines total
     604        if ($line != '') {
     605                $lines[] = $line;
     606        } // add the last line to the others, if it isn't empty
     607        $height = count($lines)*$lineHeight; // the height of all the lines total
    475608        // do the actual printing
    476609        $i = 0;
     
    480613        $largeur_max = 0;
    481614        foreach ($lines as $line) {
    482                 if ($rtl_global) $line = rtl_visuel($line, $rtl_global);
    483                
     615                if ($rtl_global) {
     616                        $line = rtl_visuel($line, $rtl_global);
     617                }
     618
    484619                $dimensions = imageftbbox($textSize, 0, $font, $line, array());
    485                 $largeur_ligne = $dimensions[2] - $dimensions[0];
    486                 if ($largeur_ligne > $largeur_max) $largeur_max = $largeur_ligne;
     620                $largeur_ligne = $dimensions[2]-$dimensions[0];
     621                if ($largeur_ligne > $largeur_max) {
     622                        $largeur_max = $largeur_ligne;
     623                }
    487624        }
    488625
    489626        foreach ($lines as $i => $line) {
    490                 if ($rtl_global) $line = rtl_visuel($line, $rtl_global);
     627                if ($rtl_global) {
     628                        $line = rtl_visuel($line, $rtl_global);
     629                }
    491630
    492631                $dimensions = imageftbbox($textSize, 0, $font, $line, array());
    493                 $largeur_ligne = $dimensions[2] - $dimensions[0];
    494                 if ($align == "right") $left_pos = $largeur_max - $largeur_ligne;
    495                 else if ($align == "center") $left_pos = floor(($largeur_max - $largeur_ligne)/2);
    496                 else $left_pos = 0;
    497                
    498                
     632                $largeur_ligne = $dimensions[2]-$dimensions[0];
     633                if ($align == "right") {
     634                        $left_pos = $largeur_max-$largeur_ligne;
     635                } else {
     636                        if ($align == "center") {
     637                                $left_pos = floor(($largeur_max-$largeur_ligne)/2);
     638                        } else {
     639                                $left_pos = 0;
     640                        }
     641                }
     642
     643
    499644                if ($fontps) {
    500645                        $line = trim($line);
    501                         imagepstext ($image, "$line", $fontps, $textSizePs, $black, $grey2, $left + $left_pos, $top + $lineHeight * $i, 0, 0, 0, 16);
    502                 }
    503                 else imagefttext($image, $textSize, 0, $left + $left_pos, $top + $lineHeight * $i, $black, $font, trim($line), array());
     646                        imagepstext($image, "$line", $fontps, $textSizePs, $black, $grey2, $left+$left_pos, $top+$lineHeight*$i, 0, 0, 0,
     647                                16);
     648                } else {
     649                        imagefttext($image, $textSize, 0, $left+$left_pos, $top+$lineHeight*$i, $black, $font, trim($line), array());
     650                }
    504651        }
    505652        $retour["height"] = $height;# + round(0.3 * $hauteur_ligne);
    506653        $retour["width"] = $largeur_max;
    507                  
     654
    508655        return $retour;
    509656}
     
    526673        $align: alignement left, right, center
    527674        */
    528        
     675
    529676        /**
    530677         * On définit les variables par défaut
     
    544691        $texte = $arg_list[0];
    545692        for ($i = 1; $i < $numargs; $i++) {
    546                 if (($p = strpos($arg_list[$i], "="))!==FALSE) {
     693                if (($p = strpos($arg_list[$i], "=")) !== false) {
    547694                        $nom_variable = substr($arg_list[$i], 0, $p);
    548695                        $val_variable = substr($arg_list[$i], $p+1);
     
    550697                }
    551698        }
    552        
    553         $variable = array_merge($variables_defaut,$variable);
     699
     700        $variable = array_merge($variables_defaut, $variable);
    554701        // Construire requete et nom fichier
    555         $text = str_replace("&nbsp;", "~", $texte);     
     702        $text = str_replace("&nbsp;", "~", $texte);
    556703        $text = preg_replace(",(\r|\n)+,ms", " ", $text);
    557704        include_spip('inc/charsets');
    558705        $text = html2unicode(strip_tags($text));
    559         if (strlen($text) == 0) return "";
     706        if (strlen($text) == 0) {
     707                return "";
     708        }
    560709
    561710        $taille = $variable["taille"];
    562         if ($taille < 1) $taille = 16;
     711        if ($taille < 1) {
     712                $taille = 16;
     713        }
    563714
    564715        $couleur = couleur_html_to_hex($variable["couleur"]);
    565         if (strlen($couleur) < 6) $couleur = "000000";
     716        if (strlen($couleur) < 6) {
     717                $couleur = "000000";
     718        }
    566719
    567720        $alt = $texte;
    568                
     721
    569722        $align = $variable["align"];
    570         if (!$variable["align"]) $align="left";
    571          
     723        if (!$variable["align"]) {
     724                $align = "left";
     725        }
     726
    572727        $police = $variable["police"];
    573         if (strlen($police) < 2) $police = "dustismo.ttf";
     728        if (strlen($police) < 2) {
     729                $police = "dustismo.ttf";
     730        }
    574731
    575732        $largeur = $variable["largeur"];
    576         if ($largeur < 5) $largeur = 600;
    577 
    578         if ($variable["hauteur_ligne"] > 0) $hauteur_ligne = $variable["hauteur_ligne"];
    579         else $hauteur_ligne = 0;
    580         if ($variable["padding"] > 0) $padding = $variable["padding"];
    581         else $padding = 0;
    582        
     733        if ($largeur < 5) {
     734                $largeur = 600;
     735        }
     736
     737        if ($variable["hauteur_ligne"] > 0) {
     738                $hauteur_ligne = $variable["hauteur_ligne"];
     739        } else {
     740                $hauteur_ligne = 0;
     741        }
     742        if ($variable["padding"] > 0) {
     743                $padding = $variable["padding"];
     744        } else {
     745                $padding = 0;
     746        }
    583747
    584748
     
    591755                && function_exists('imageCreateTrueColor');
    592756
    593        
    594         if (@file_exists($fichier))
     757
     758        if (@file_exists($fichier)) {
    595759                $image = $fichier;
    596         else if (!$flag_gd_typo)
    597                 return $texte;
    598         else {
    599                 $font = find_in_path('polices/'.$police);
    600                 if (!$font) {
    601                         spip_log(_T('fichier_introuvable', array('fichier' => $police)));
    602                         $font = find_in_path('polices/'."dustismo.ttf");
    603                 }
    604 
    605                 $imgbidon = imageCreateTrueColor($largeur, 45);
    606                 $retour = printWordWrapped($imgbidon, $taille+5, 0, $largeur, $font, $couleur, $text, $taille, 'left', $hauteur_ligne);
    607                 $hauteur = $retour["height"];
    608                 $largeur_reelle = $retour["width"];
    609                 $espace = $retour["espace"];
    610                 imagedestroy($imgbidon);
    611 
    612                 $im = imageCreateTrueColor($largeur_reelle-$espace+(2*$padding), $hauteur+5+(2*$padding));
    613                 imagealphablending ($im, FALSE );
    614                 imagesavealpha ( $im, TRUE );
    615                
    616                 // Creation de quelques couleurs
    617                
    618                 $grey2 = imagecolorallocatealpha($im, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 127);
    619                 ImageFilledRectangle ($im,0,0,$largeur_reelle+(2*$padding),$hauteur+5+(2*$padding),$grey2);
    620                
    621                 // Le texte a dessiner
    622                 printWordWrapped($im, $taille+5+$padding, $padding, $largeur, $font, $couleur, $text, $taille, $align, $hauteur_ligne);
    623                
    624                
    625                 // Utiliser imagepng() donnera un texte plus claire,
    626                 // compare a l'utilisation de la fonction imagejpeg()
    627                 _image_gd_output($im,array('fichier_dest'=>$fichier,'format_dest'=>'png'));
    628                 imagedestroy($im);
    629                
    630                 $image = $fichier;
     760        } else {
     761                if (!$flag_gd_typo) {
     762                        return $texte;
     763                } else {
     764                        $font = find_in_path('polices/' . $police);
     765                        if (!$font) {
     766                                spip_log(_T('fichier_introuvable', array('fichier' => $police)));
     767                                $font = find_in_path('polices/' . "dustismo.ttf");
     768                        }
     769
     770                        $imgbidon = imageCreateTrueColor($largeur, 45);
     771                        $retour = printWordWrapped($imgbidon, $taille+5, 0, $largeur, $font, $couleur, $text, $taille, 'left',
     772                                $hauteur_ligne);
     773                        $hauteur = $retour["height"];
     774                        $largeur_reelle = $retour["width"];
     775                        $espace = $retour["espace"];
     776                        imagedestroy($imgbidon);
     777
     778                        $im = imageCreateTrueColor($largeur_reelle-$espace+(2*$padding), $hauteur+5+(2*$padding));
     779                        imagealphablending($im, false);
     780                        imagesavealpha($im, true);
     781
     782                        // Creation de quelques couleurs
     783
     784                        $grey2 = imagecolorallocatealpha($im, hexdec("0x{" . substr($couleur, 0, 2) . "}"),
     785                                hexdec("0x{" . substr($couleur, 2, 2) . "}"), hexdec("0x{" . substr($couleur, 4, 2) . "}"), 127);
     786                        ImageFilledRectangle($im, 0, 0, $largeur_reelle+(2*$padding), $hauteur+5+(2*$padding), $grey2);
     787
     788                        // Le texte a dessiner
     789                        printWordWrapped($im, $taille+5+$padding, $padding, $largeur, $font, $couleur, $text, $taille, $align,
     790                                $hauteur_ligne);
     791
     792
     793                        // Utiliser imagepng() donnera un texte plus claire,
     794                        // compare a l'utilisation de la fonction imagejpeg()
     795                        _image_gd_output($im, array('fichier_dest' => $fichier, 'format_dest' => 'png'));
     796                        imagedestroy($im);
     797
     798                        $image = $fichier;
     799                }
    631800        }
    632801
     
    635804        $largeur = $dimensions[0];
    636805        $hauteur = $dimensions[1];
    637        
    638         return inserer_attribut("<img src='$image' width='$largeur' height='$hauteur' style='width:".$largeur."px;height:".$hauteur."px;' />", 'alt', $alt);
     806
     807        return inserer_attribut("<img src='$image' width='$largeur' height='$hauteur' style='width:" . $largeur . "px;height:" . $hauteur . "px;' />",
     808                'alt', $alt);
    639809}
    640810
Note: See TracChangeset for help on using the changeset viewer.