Changeset 47997 in spip-zone


Ignore:
Timestamp:
May 22, 2011, 2:12:51 PM (10 years ago)
Author:
piero.wbmstr@…
Message:

Le plugin prend maintenant en charge toutes les langues utilisées sur le site (public)

Location:
_plugins_/spip_proprietaire
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip_proprietaire/balise/proprietaire.php

    r45310 r47997  
    33
    44function balise_PROPRIETAIRE($p) {
    5         spip_proprio_proprietaire_texte();
    6    return calculer_balise_dynamique($p,PROPRIETAIRE,array());
     5        spip_proprio_charger_toutes_les_langues();
     6        return calculer_balise_dynamique($p,PROPRIETAIRE,array());
    77}
    88
     
    1010        include_spip('inc/presentation');
    1111        $conf = spip_proprio_recuperer_config();
     12        static $spip_proprio_no_config = false;
     13        if (is_null($conf)) {
     14                include_spip('inc/autoriser');
     15                if ($spip_proprio_no_config===false && autoriser('ecrire')) {
     16                        $div = propre( _T('proprietaire:pas_config', array(
     17                                'url_config' => generer_url_ecrire('spip_proprio')
     18                        )) );
     19                        echo $div;
     20                        $spip_proprio_no_config = true;
     21                }
     22                return;
     23        }
     24
    1225        $nb = ' ';
    1326        $div = '';
    1427
    15         if(isset($conf[$wich])) $div = $conf[$wich];
     28        if (isset($conf[$wich])) $div = $conf[$wich];
    1629        else switch($wich){
    1730                case 'footer':
     
    1932                        $nom_site = typo($conf['proprietaire_nom'])
    2033                                .( strlen($conf['adresse_pays']) ? ' - '.$conf['adresse_pays'] : '');
    21                         if($wich == 'footer') $div .= '<small>';
     34                        if ($wich == 'footer') $div .= '<small>';
    2235                        $div = _T('proprietaire:copyright_info', array(
    2336                                'nom_site' => $nom_site,
    2437                                'date' => ( strlen($conf['copyright_annee']) ? $conf['copyright_annee'].'-' : '').date("Y"),
    2538                        ));
    26                         if(strlen($conf['copyright_complement']))
     39                        if (strlen($conf['copyright_complement']))
    2740                                $div .= $separator.typo($conf['copyright_complement']);
    28                         if(strlen($conf['copyright_comment']))
     41                        if (strlen($conf['copyright_comment']))
    2942                                $div .= $separator.typo($conf['copyright_comment']);
    30                         if($wich == 'footer') $div .= '</small>';
     43                        if ($wich == 'footer') $div .= '</small>';
    3144                        break;
    3245                case 'googlemap_string':
    33                         if($google = make_google_map_proprietaire($conf)) $div .= $google;
     46                        if ($google = make_google_map_proprietaire($conf)) $div .= $google;
    3447                        break;
    3548                case 'vcard' :
     
    4659                                'administrateur'=>url_absolue(generer_url_public('carte_visite','type=admin')),
    4760                        );
    48                         if( isset($GLOBALS['meta']['email_webmaster']) AND strlen($GLOBALS['meta']['email_webmaster']) )
     61                        if ( isset($GLOBALS['meta']['email_webmaster']) AND strlen($GLOBALS['meta']['email_webmaster']) )
    4962                                $cartes_visite_urls['webmaster'] = url_absolue(generer_url_public('carte_visite','type=webmaster'));
    5063                        $div .= propre( _T('proprietaire:carte_visite_info', $cartes_visite_urls) );
     
    5871                                'administrateur'=>url_absolue(generer_url_public('carte_visite','type=admin')),
    5972                        );
    60                         if( isset($GLOBALS['meta']['email_webmaster']) AND strlen($GLOBALS['meta']['email_webmaster']) )
     73                        if ( isset($GLOBALS['meta']['email_webmaster']) AND strlen($GLOBALS['meta']['email_webmaster']) )
    6174                                $cartes_visite_urls['webmaster'] = url_absolue(generer_url_public('carte_visite','type=webmaster'));
    6275                        $div .= propre( _T('proprietaire:carte_visite_info', $cartes_visite_urls) );
     
    6982                case 'carte_visite_image' :
    7083                        $contexte = $conf;
    71                         if(strlen($who)){
    72                                 if(in_array(trim($who), array('admin', 'administrateur', 'administration')))
     84                        if (strlen($who)){
     85                                if (in_array(trim($who), array('admin', 'administrateur', 'administration')))
    7386                                        $who = 'admin';
    74                                 elseif(in_array(trim($who), array('webmaster', 'webmestre')))
     87                                elseif (in_array(trim($who), array('webmaster', 'webmestre')))
    7588                                        $who = 'webmaster';
    76                                 elseif(in_array(trim($who), array('responsable', 'boss', 'chef')))
     89                                elseif (in_array(trim($who), array('responsable', 'boss', 'chef')))
    7790                                        $who = 'chef';
    7891                        }
    7992                        $contexte['who'] = $who;
    80                         if( $wich == 'carte_visite_image' )
     93                        if ( $wich == 'carte_visite_image' )
    8194                                $contexte['type'] = 'image';
    8295                        $div .= recuperer_fond("modeles/carte_visite", $contexte);
    8396                        break;
    8497                case 'googlemap' :
    85                         if(!strlen($who)) $who = 'proprietaire';
     98                        if (!strlen($who)) $who = 'proprietaire';
    8699                        $contexte['googlemap_string'] = make_google_map_proprietaire($conf, $who);
    87100                        $div .= recuperer_fond("modeles/noisette_googlemap", $contexte);
     
    91104                        $contexte = $conf;
    92105                        $contexte['separator'] = $separator;
    93                         if($wich == 'logo') $contexte['logo'] = 'oui';
     106                        if ($wich == 'logo') $contexte['logo'] = 'oui';
    94107                        $div .= recuperer_fond("modeles/noisette_proprietaire", $contexte);
    95108                        break;
  • _plugins_/spip_proprietaire/balise/textes_legaux.php

    r40936 r47997  
    33
    44function balise_TEXTES_LEGAUX($p) {
    5    return calculer_balise_dynamique($p,TEXTES_LEGAUX,array());
     5        spip_proprio_charger_toutes_les_langues();
     6        return calculer_balise_dynamique($p,TEXTES_LEGAUX,array());
    67}
    78
     
    1011        include_spip('spip_proprio_fonctions');
    1112        $conf = spip_proprio_recuperer_config();
     13        static $spip_proprio_no_config = false;
     14        if (is_null($conf)) {
     15                include_spip('inc/autoriser');
     16                if ($spip_proprio_no_config===false && autoriser('ecrire')) {
     17                        $div = propre( _T('proprietaire:pas_config', array(
     18                                'url_config' => generer_url_ecrire('spip_proprio')
     19                        )) );
     20                        echo $div;
     21                        $spip_proprio_no_config = true;
     22                }
     23                return;
     24        }
     25
    1226        $conf['nom_site'] = $GLOBALS['meta']['nom_site'];
    1327        $conf['url_site'] = $GLOBALS['meta']['adresse_site'];
  • _plugins_/spip_proprietaire/balise/textes_proprietaire.php

    r40936 r47997  
    33
    44function balise_TEXTES_PROPRIETAIRE($p) {
    5    return calculer_balise_dynamique($p,TEXTES_PROPRIETAIRE,array());
     5        spip_proprio_charger_toutes_les_langues();
     6        return calculer_balise_dynamique($p,TEXTES_PROPRIETAIRE,array());
    67}
    78
  • _plugins_/spip_proprietaire/exec/spip_proprio.php

    r47379 r47997  
    3636                        ."</div>". fin_boite_info(true);
    3737
    38         // on force le chargement de proprietaire_fr si present
    39         spip_proprio_proprietaire_texte();
     38        // on force le chargement de proprietaire_XX si present
     39        spip_proprio_charger_toutes_les_langues();
    4040        if( $save = _request('save') AND $save == 'oui' ){
    4141                $raccourci = _request('raccourci') ? _request('raccourci') : false;
  • _plugins_/spip_proprietaire/spip_proprio_fonctions.php

    r47281 r47997  
    1616        $delim = false;
    1717        foreach($spip_proprio_usual_delimiters as $delimiter) {
    18                 if(strpos($str, $delimiter)) $delim = $delimiter;
     18                if (strpos($str, $delimiter)) $delim = $delimiter;
    1919        }
    2020        return $delim;
     
    3838
    3939function spip_proprio_recuperer_extension($str){
    40         return( substr(strrchr($str, '.'), 1) );
     40        return substr(strrchr($str, '.'), 1);
    4141}
    4242
     
    107107 */
    108108function apostrophe($str='', $article='', $exception=false){
     109        // On retourne direct si non FR
     110        if ($GLOBALS['spip_ang']!='fr') return $article.' '.$str;
     111
    109112        $voyelles = array('a', 'e', 'i', 'o', 'u');
    110113        $article = trim($article);
     
    113116        $article_fin = substr($article, -1, 1);
    114117
    115         if(in_array($str_deb, $voyelles) OR $exception)
    116                 return( substr($article, 0, strlen($article)-1)."'".$str );
     118        if (in_array($str_deb, $voyelles) OR $exception)
     119                return substr($article, 0, strlen($article)-1)."'".$str;
    117120        return $article.' '.$str;
    118121}
    119122
    120123function modifier_guillemets($str){
    121         return( str_replace("'", '"', $str) );
     124        return str_replace("'", '"', $str);
    122125}
    123126
     
    358361// Avec l'aide inestimable de Paris-Bayrouth (http://www.paris-beyrouth.org/)
    359362function spip_proprio_image_alpha($img, $alpha='', $src=false){
    360         if(!$alpha OR !strlen($alpha) OR $alpha == '0') return $img;
     363        if (!$alpha OR !strlen($alpha) OR $alpha == '0') return $img;
    361364        include_spip("inc/filtres_images");
    362365        $image = _image_valeurs_trans($img, "one", "png");
    363366//var_export($image);
    364367        $img = image_alpha($img, $alpha);
    365         if($src) return( extraire_attribut($img, 'src') );
    366         return($img);
     368        if ($src) return( extraire_attribut($img, 'src') );
     369        return $img;
    367370}
    368371
  • _plugins_/spip_proprietaire/spip_proprio_options.php

    r46690 r47997  
    130130function make_google_map_proprietaire($conf, $who='proprietaire'){
    131131        $str = $google_str = '';
    132         if(strlen($conf[$who.'_adresse_rue']))
     132        if (strlen($conf[$who.'_adresse_rue']))
    133133                $str .= str_replace(array(',', ';', '.', ':', '/'), '', strip_tags($conf[$who.'_adresse_rue']));
    134         if(strlen($conf[$who.'_adresse_code_postal']))
     134        if (strlen($conf[$who.'_adresse_code_postal']))
    135135                $str .= ' '.str_replace(array(',', ';', '.', ':', '/'), '', strip_tags($conf[$who.'_adresse_code_postal']));
    136         if(strlen($conf[$who.'_adresse_ville']))
     136        if (strlen($conf[$who.'_adresse_ville']))
    137137                $str .= ' '.str_replace(array(',', ';', '.', ':', '/'), '', strip_tags($conf[$who.'_adresse_ville']));
    138         if(strlen($str)) {
     138        if (strlen($str)) {
    139139                $entries = explode(' ', $str);
    140140                foreach($entries as $entry)
    141                         if(strlen($entry)) $google_str .= urlencode($entry).'+';
     141                        if (strlen($entry)) $google_str .= urlencode($entry).'+';
    142142                $google_str = trim($google_str, '+');
    143143                return $google_str;
     
    151151
    152152function spip_proprio_enregistrer_config($args){
    153         if(!is_array($args)) return;
     153        if (!is_array($args)) return;
    154154        $mess = array();
    155155        $_conf = spip_proprio_recuperer_config();
     
    162162
    163163function spip_proprio_recuperer_config($str=''){
     164        if (!isset($GLOBALS['meta'][_META_SPIP_PROPRIO])) return NULL;
    164165        $_conf = unserialize($GLOBALS['meta'][_META_SPIP_PROPRIO]);
    165         if(strlen($str)) {
    166                 if(isset($_conf[$str])) return $_conf[$str];
     166        if (strlen($str)) {
     167                if (isset($_conf[$str])) return $_conf[$str];
    167168                return false;
    168169        }
     
    191192 * Fonction de gestion des textes proprietaire
    192193 */
    193 function spip_proprio_proprietaire_texte($str='', $args=array()){
     194function spip_proprio_proprietaire_texte($str='', $args=array(), $langdef='fr'){
    194195        $souvenir = $GLOBALS['spip_lang'];
    195         $GLOBALS['spip_lang'] = 'fr';
    196         $test = _T('proprietaire:exemple');
    197         if(!isset($GLOBALS['i18n_proprietaire_fr'])){
     196        $GLOBALS['spip_lang'] = $langdef;
     197       
     198        // Verification que la langue existe
     199//      $test = _T('proprietaire:exemple');
     200        // Ne fonctionne pas correctement avec '_T', on reprend la traduction pure de SPIP
     201        static $traduire=false ;
     202        if (!$traduire) {
     203                $traduire = charger_fonction('traduire', 'inc');
     204                include_spip('inc/lang');
     205        }
     206        $text = $traduire('proprietaire:test_fichier_langue',$GLOBALS['spip_lang']);
     207
     208        if (!isset($GLOBALS['i18n_proprietaire_'.$langdef])){
    198209                $test = _T('textes_legaux:exemple');
    199                 creer_fichier_textes_proprietaire( $GLOBALS['i18n_textes_legaux_fr'] );
    200                 $GLOBALS['i18n_proprietaire_fr'] = $GLOBALS['i18n_textes_legaux_fr'];
     210                creer_fichier_textes_proprietaire( $GLOBALS['i18n_textes_legaux_'.$langdef], $langdef );
     211                $GLOBALS['i18n_proprietaire_'.$langdef] = $GLOBALS['i18n_textes_legaux_'.$langdef];
    201212        }
    202213        $GLOBALS['spip_lang'] = $souvenir;
     
    204215}
    205216
    206 function textes_proprietaire( $array=false ){
    207         $globale = 'i18n_proprietaire_'.$GLOBALS['spip_lang'];
    208 
    209         $ok = spip_proprio_proprietaire_texte();
    210         if(isset($GLOBALS["$globale"]))
     217/**
     218 * Creation de tous les fichiers de langue 'proprietaire_XX'
     219 * pour toutes les langues utilisees en partie publique
     220 */
     221function spip_proprio_charger_toutes_les_langues(){
     222        // on force le chargement de proprietaire_XX si present
     223        // pour toutes les langues utilisees en partie publique
     224        $langues_du_site = array('fr');
     225        foreach(array('langues_utilisees', 'langues_multilingue', 'langue_site') as $ln_meta) {
     226                if (isset($GLOBALS['meta'][$ln_meta]))
     227                        $langues_du_site = array_merge($langues_du_site, explode(',',$GLOBALS['meta'][$ln_meta]));
     228        }
     229        $langues_du_site = array_unique($langues_du_site);
     230        foreach($langues_du_site as $ln) {
     231                spip_proprio_proprietaire_texte('', '', $ln);
     232        }
     233        return;
     234}
     235
     236function textes_proprietaire( $array=false, $lang=null ){
     237        if (is_null($lang)) $lang = $GLOBALS['spip_lang'];
     238        $globale = 'i18n_proprietaire_'.$lang;
     239
     240        $ok1 = spip_proprio_proprietaire_texte();
     241        if ($lang != 'fr')
     242                $ok2 = spip_proprio_proprietaire_texte('', '', $lang);
     243        if (isset($GLOBALS["$globale"]))
    211244                $GLOBALS["$globale"] = array_merge($GLOBALS['i18n_proprietaire_fr'], $GLOBALS["$globale"]);
    212245        else
    213246                $GLOBALS["$globale"] = $GLOBALS['i18n_proprietaire_fr'];
    214         if($array)
     247        if ($array)
    215248                return $GLOBALS["$globale"];
    216249        return false;
     
    224257        $valeurs = array();
    225258        $tableau = textes_proprietaire(true);
    226         if(isset($tableau) AND is_array($tableau)) {
     259        if (isset($tableau) AND is_array($tableau)) {
    227260                ksort($tableau);
    228261                if($bloc) $div .= debut_cadre_relief('',true,'','','raccourcis');
     
    237270                }
    238271                $div .= "</table>";
    239                 if($bloc) $div .= fin_cadre_relief(true);
     272                if ($bloc) $div .= fin_cadre_relief(true);
    240273        }
    241274        return $div;
    242275}
    243276
    244 function traiter_textes_proprietaire($raccourci){
     277function traiter_textes_proprietaire($raccourci, $lang='fr'){
    245278        include_spip('inc/texte');
    246279        $valeur = _request('value');
    247280        $array_langue = textes_proprietaire(true);
    248281//      $valeur = propre( $valeur );
    249         if(strlen($valeur)) $array_langue[$raccourci] = $valeur;
    250         elseif(isset($array_langue[$raccourci])) unset($array_langue[$raccourci]);
    251         if($ok = creer_fichier_textes_proprietaire($array_langue))
     282        if (strlen($valeur)) $array_langue[$raccourci] = $valeur;
     283        elseif (isset($array_langue[$raccourci])) unset($array_langue[$raccourci]);
     284        if ($ok = creer_fichier_textes_proprietaire($array_langue, $lang))
    252285                return $valeur;
    253286        return false;
    254287}
    255288
    256 function creer_fichier_textes_proprietaire($array_langue){
    257         global $spip_lang;
    258         $file = 'proprietaire_'.$spip_lang;
    259         $globale = 'i18n_proprietaire_'.$spip_lang;
    260         if( !file_exists( find_in_path('lang/'.$file) ) ){
     289function creer_fichier_textes_proprietaire($array_langue, $lang='fr'){
     290        $file = 'proprietaire_'.$lang;
     291        $globale = 'i18n_proprietaire_'.$lang;
     292        if ( !file_exists( find_in_path('lang/'.$file) ) ){
    261293                include_spip('inc/flock');
    262294                $contenu = var_export($array_langue, true);
Note: See TracChangeset for help on using the changeset viewer.