Changeset 3352


Ignore:
Timestamp:
04/28/10 15:00:43 (11 years ago)
Author:
kent1
Message:

On enlève certaines fonctions qui ne sont plus nécessaire (code mort)

On ajoute un selecteur de langue sur les articles si on a plusieurs langues dispo

On log un peu moins

On s'insère dans les pipelines pre_insertion et pre_edition pour la gestion des langues

Location:
plugins_spip/diogene
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene/diogene_fonctions.php

    r3324 r3352  
    11<?php
    2 /**
    3  *
    4  * Compte les langues dans $GLOBALS['meta']['langues_utilisees']
    5  *
    6  * @return int Le nombre de langues possible
    7  */
    8 function diogene_nombre_langues(){
    9         $langues = explode(',', $GLOBALS['meta']['langues_utilisees']);
    10         return count($langues);
    11 }
    12 
    13 /**
    14  *
    15  * @return
    16  * @param object $lang_env[optional]
    17  */
    18 function diogene_form_langues($lang_env=''){
    19         $langues = explode(',', $GLOBALS['meta']['langues_utilisees']);
    20         sort($langues);
    21         $ret = ' ';
    22                 foreach($langues as $l) {
    23                         if($l == $lang_env){
    24                                 $ret .= "<option class='maj-debut' value='$l' selected='selected'>".traduire_nom_langue($l)."</option>\n";
    25                         }else{
    26                                 $ret .= "<option class='maj-debut' value='$l'>".traduire_nom_langue($l)."</option>\n";
    27                         }
    28                 }
    29         return $ret;
    30 }
    31 
    32 function diogene_form_trad_langues($lang_trad=''){
    33         $langues = explode(',', $GLOBALS['meta']['langues_utilisees']);
    34         sort($langues);
    35         $ret = ' ';
    36                 foreach($langues as $l) {
    37                         if($l != $lang_trad){
    38                                 $ret .= "<option class='maj-debut' value='$l'>".traduire_nom_langue($l)."</option>\n";
    39                         }
    40                 }
    41         return $ret;
    42 }
    43 
    44 
    452// http://doc.spip.org/@balise_URL_ARTICLE_dist
    463function balise_URL_ARTICLE($p) {
  • plugins_spip/diogene/diogene_pipelines.php

    r3348 r3352  
    11<?php
    22/**
    3  * Insertion dans le pipeline pre_edition
     3 * Insertion dans le pipeline editer_contenu_objet
    44 * InsÚre ou enlÚve les champs dans le formulaire
    55 * que l'on souhaite ajouter ou supprimer
     
    1111        $args = $flux['args'];
    1212        $type = $args['type'];
     13        $langues_dispos = explode(',',$GLOBALS['meta']['langues_multilingue']);
    1314        if (in_array($type,array('rubrique','article','site'))){
    1415                $id_secteur = $args['contexte']['id_secteur'] ?
     
    5152                                $ajouts = pipeline('diogene_avant_formulaire',array('args'=>$args,'data'=>''));
    5253                                $flux['data'] = preg_replace(",(<div [^>]*class=[\"'][^>]*formulaire_editer_$type),Uims",$ajouts."\\1",$flux['data'],1);
     54                        }
     55                        /**
     56                         * On ajoute le formulaire de langue sur les articles
     57                         */
     58                        if(($type=='article') && (count($langues_dispos)>1)){
     59                                $saisie_langue = recuperer_fond('formulaires/selecteur_langue',array('langues_dispos'=>$langues_dispos,'id_article'=>$args['contexte']['id_article']));
     60                                $flux['data'] = preg_replace(",(<li [^>]*class=[\"']editer_titre.*<\/li>),Uims","\\1".$saisie_langue,$flux['data'],1);
    5361                        }
    5462                        /**
     
    162170                }
    163171                if($flux['args']['form'] == 'editer_rubrique'){
    164                         spip_log($flux['data']['id_rubrique'],'test');
    165172                        $id_rubrique = intval($flux['data']['id_rubrique']);
    166173                        $infos_rubrique = sql_getfetsel('statut','spip_rubriques','id_rubrique='.intval($id_rubrique));
    167                         spip_log($infos_rubrique,'test');
    168174                        if($infos_rubrique == 'publie'){
    169175                                $flux['data']['redirect'] = generer_url_entite($id_rubrique,'rubrique');
     
    177183}
    178184
     185function diogene_diogene_champs_sup($flux){
     186        $flux['article']['date'] = _T('diogene:champ_date_publication');
     187        if($GLOBALS['meta']['articles_redac'] !== 'non'){
     188                $flux['article']['date_redac'] = _T('diogene:champ_date_publication_anterieure');
     189        }
     190        if($GLOBALS['meta']['activer_sites'] == 'oui'){
     191                $flux['site'] = array();
     192        }
     193        $flux['rubrique'] = array();
     194        return $flux;
     195}
     196
     197function diogene_diogene_avant_formulaire($flux){
     198        $flux['data'] .= '<script type="text/javascript" src="'.find_in_path('prive/javascript/presentation.js').'"></script>';
     199        if(is_array(unserialize($flux['args']['champs_ajoutes'])) &&
     200                (in_array('date',unserialize($flux['args']['champs_ajoutes'])) || in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])))){
     201                $flux['data'] .= recuperer_fond('formulaires/dateur/inc-dateur', $flux['args']);
     202    }
     203        return $flux;
     204}
     205
     206function diogene_diogene_ajouter_media($flux){
     207        $id_article = $flux['args']['contexte']['id_article'];
     208        if(is_array(unserialize($flux['args']['champs_ajoutes']))  &&
     209                (in_array('date',unserialize($flux['args']['champs_ajoutes'])) || in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])))){
     210                if(in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])) && in_array('date',unserialize($flux['args']['champs_ajoutes'])) && ($GLOBALS['meta']['articles_redac'] != 'non')){
     211                        $dates_ajoutees = 'date_full';
     212                        if(!$flux['args']['contexte']['date']){
     213                                list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',mktime()));
     214                        }else{
     215                                list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date'])));
     216                        }
     217                        if($flux['args']['contexte']['date_redac']){
     218                                list($flux['args']['contexte']['date_redac'],$flux['args']['contexte']['heure_redac']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date_redac'])));
     219                        }
     220                }elseif(in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])) && ($GLOBALS['meta']['articles_redac'] != 'non')){
     221                        list($flux['args']['contexte']['date_redac'],$flux['args']['contexte']['heure_redac']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date_redac'])));
     222                        $dates_ajoutees = 'date_redac';
     223                }elseif(in_array('date',unserialize($flux['args']['champs_ajoutes']))){
     224                if(!$flux['args']['contexte']['date']){
     225                                list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',mktime()));
     226                        }else{
     227                                list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date'])));
     228                        }
     229                        $dates_ajoutees = 'date_orig';
     230                }
     231                if($dates_ajoutees){
     232                        $flux['args']['contexte']['dates_ajoutees'] = $dates_ajoutees;
     233                        $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_dates',$flux['args']['contexte']);
     234                }
     235        }
     236    return $flux;
     237}
     238
     239function diogene_diogene_ajout_media_post_verifier($flux){
     240        $id_article = _request('id_article');
     241        $erreurs = &$flux['args']['erreurs'];
     242
     243        if(!$erreurs['date'] && ($date = _request('date_orig'))){
     244                include_spip('inc/date_gestion');
     245                $date_orig = verifier_corriger_date_saisie('orig','oui',&$erreurs);
     246        }
     247
     248        if(!$erreurs['date_redac'] && ($date = _request('date_redac'))){
     249                $date_redac = verifier_corriger_date_saisie('redac','oui',&$erreurs);
     250        }
     251        return $flux;
     252}
     253
     254function diogene_diogene_ajout_media_post_traiter($flux){
     255        $id_objet = $flux['args']['id_objet'];
     256        if(_request('date_orig')){
     257                $flux['data']['date'] = date('Y-m-d H:i:s',verifier_corriger_date_saisie('orig','oui',&$erreurs));
     258        }
     259        if(_request('date_redac')){
     260                $flux['data']['date'] = date('Y-m-d H:i:s',verifier_corriger_date_saisie('redac','oui',&$erreurs));
     261        }
     262        return $flux;
     263}
     264
     265/**
     266 * Insertion dans le pipeline pre_insertion
     267 * A la creation d'un article on vérifie si on nous envoie la langue
     268 * si oui on la met correctement dÚs l'insertion
     269 *
     270 * @param array $flux le contexte du pipeline
     271 */
     272function diogene_pre_insertion($flux){
     273        if(($flux['args']['table'] == 'spip_articles') && _request('changer_lang')){
     274                $flux['data']['lang'] = _request('changer_lang');
     275                $flux['data']['langue_choisie'] = 'oui';
     276        }
     277        return $flux;
     278}
     279
     280/**
     281 * Insertion dans le pipeline pre_edition
     282 * A la modification d'un article on vérifie si on nous envoie la langue
     283 * si elle est différente de celle de l'article on la change
     284 *
     285 * @param array $flux le contexte du pipeline
     286 */
    179287function diogene_pre_edition($flux){
    180288        if(in_array($flux['args']['type'],array('article','rubrique','site')) && ($flux['args']['action']=='modifier')){
    181289                $flux = pipeline('diogene_ajout_media_post_traiter',$flux);
    182                 return $flux;
     290        }
     291        if(($flux['args']['table'] == 'spip_articles') && _request('changer_lang')){
     292                $flux['data']['lang'] = _request('changer_lang');
     293                $flux['data']['langue_choisie'] = 'oui';
    183294        }
    184295        return $flux;
     
    205316        return $flux;
    206317}
    207 function diogene_diogene_champs_sup($flux){
    208         $flux['article']['date'] = _T('diogene:champ_date_publication');
    209         if($GLOBALS['meta']['articles_redac'] !== 'non'){
    210                 $flux['article']['date_redac'] = _T('diogene:champ_date_publication_anterieure');
    211         }
    212         if($GLOBALS['meta']['activer_sites'] == 'oui'){
    213                 $flux['site'] = array();
    214         }
    215         $flux['rubrique'] = array();
    216         return $flux;
    217 }
    218 
    219 function diogene_diogene_avant_formulaire($flux){
    220         $flux['data'] .= '<script type="text/javascript" src="'.find_in_path('prive/javascript/presentation.js').'"></script>';
    221         if(is_array(unserialize($flux['args']['champs_ajoutes'])) &&
    222                 (in_array('date',unserialize($flux['args']['champs_ajoutes'])) || in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])))){
    223                 $flux['data'] .= recuperer_fond('formulaires/dateur/inc-dateur', $flux['args']);
    224     }
    225         return $flux;
    226 }
    227 
    228 function diogene_diogene_ajouter_media($flux){
    229         $id_article = $flux['args']['contexte']['id_article'];
    230         if(is_array(unserialize($flux['args']['champs_ajoutes']))  &&
    231                 (in_array('date',unserialize($flux['args']['champs_ajoutes'])) || in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])))){
    232                 if(in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])) && in_array('date',unserialize($flux['args']['champs_ajoutes'])) && ($GLOBALS['meta']['articles_redac'] != 'non')){
    233                         $dates_ajoutees = 'date_full';
    234                         if(!$flux['args']['contexte']['date']){
    235                                 list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',mktime()));
    236                         }else{
    237                                 list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date'])));
    238                         }
    239                         if($flux['args']['contexte']['date_redac']){
    240                                 list($flux['args']['contexte']['date_redac'],$flux['args']['contexte']['heure_redac']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date_redac'])));
    241                         }
    242                 }elseif(in_array('date_redac',unserialize($flux['args']['champs_ajoutes'])) && ($GLOBALS['meta']['articles_redac'] != 'non')){
    243                         list($flux['args']['contexte']['date_redac'],$flux['args']['contexte']['heure_redac']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date_redac'])));
    244                         $dates_ajoutees = 'date_redac';
    245                 }elseif(in_array('date',unserialize($flux['args']['champs_ajoutes']))){
    246                 if(!$flux['args']['contexte']['date']){
    247                                 list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',mktime()));
    248                         }else{
    249                                 list($flux['args']['contexte']['date_orig'],$flux['args']['contexte']['heure_orig']) = explode(' ',date('d/m/Y H:i',strtotime($flux['args']['contexte']['date'])));
    250                         }
    251                         $dates_ajoutees = 'date_orig';
    252                 }
    253                 if($dates_ajoutees){
    254                         $flux['args']['contexte']['dates_ajoutees'] = $dates_ajoutees;
    255                         $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_dates',$flux['args']['contexte']);
    256                 }
    257         }
    258     return $flux;
    259 }
    260 
    261 function diogene_diogene_ajout_media_post_verifier($flux){
    262         $id_article = _request('id_article');
    263         $erreurs = &$flux['args']['erreurs'];
    264 
    265         if(!$erreurs['date'] && ($date = _request('date_orig'))){
    266                 include_spip('inc/date_gestion');
    267                 $date_orig = verifier_corriger_date_saisie('orig','oui',&$erreurs);
    268         }
    269 
    270         if(!$erreurs['date_redac'] && ($date = _request('date_redac'))){
    271                 $date_redac = verifier_corriger_date_saisie('redac','oui',&$erreurs);
    272         }
    273         return $flux;
    274 }
    275 
    276 function diogene_diogene_ajout_media_post_traiter($flux){
    277         $id_objet = $flux['args']['id_objet'];
    278         if(_request('date_orig')){
    279                 $flux['data']['date'] = date('Y-m-d H:i:s',verifier_corriger_date_saisie('orig','oui',&$erreurs));
    280         }
    281         if(_request('date_redac')){
    282                 $flux['data']['date'] = date('Y-m-d H:i:s',verifier_corriger_date_saisie('redac','oui',&$erreurs));
    283         }
    284         return $flux;
    285 }
    286 
    287318?>
  • plugins_spip/diogene/formulaires/selecteur_langue.html

    r3343 r3352  
    11[(#REM)
    2         Squelette permettant d'afficher un sélecteur de langue dans
     2        Squelette permettant d'afficher un sélecteur de langues dans
    33        le formulaire d'édition d'articles
     4
     5        Le select a pour attribut name "changer_lang" pour ne pas entrer en concurrence
     6        avec la langue de l'environnement
    47
    58        Doit recevoir dans l'environnement :
    69        - un id_article
     10        - un array des langues disponibles
     11
    712]#CACHE{0}
    813<li>
    9         <label for="choix_langue">
     14        <label for="langue">
    1015                <:diogene:choix_langue:>
    1116        </label>
    12         <BOUCLE_art(ARTICLES){id_article}>
     17        #SET{langues_dispos,#ENV{langues_dispos}}
     18        <BOUCLE_art(ARTICLES){id_article}{statut?}>
    1319                #SET{langue_article,#LANG}
    14         <B_trads>
    15         [(#SET{nb_langues,#COMPTEUR_BOUCLE})]
    16         <p>
    17                 <:diogene:article_deja_traduit:>
    18                 <BOUCLE_trads(ARTICLES){traduction}{', '}{exclus}>
    19                         <a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE}|parametre_url{id_rubrique,#ID_RUBRIQUE}|parametre_url{id_trad,''})]" title="#TITRE" class="nyromodal">[(#LANG|traduire_nom_langue)]</a>
    20                 </BOUCLE_trads>
    21         </p>
    22         </B_trads>
    23         [(#SET{nb_langues,1})]
    24         <//B_trads>
     20                <B_trads>
     21                [(#SET{nb_langues,#COMPTEUR_BOUCLE})]
     22                <p class="explications">
     23                        <:diogene:article_deja_traduit:>
     24                        <BOUCLE_trads(ARTICLES){traduction}{', '}{exclus}>
     25                                <a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE}|parametre_url{id_rubrique,#ID_RUBRIQUE}|parametre_url{id_trad,''})]" title="#TITRE" class="nyromodal">[(#LANG|traduire_nom_langue)]</a>
     26                                [(#SET{langues_dispos,[(#GET{langues_dispos}|langue_unset{#LANG})]})]
     27                        </BOUCLE_trads>
     28                </p>
     29                </B_trads>
     30                [(#SET{nb_langues,1})]
     31                <//B_trads>
    2532        </BOUCLE_art>
    26         [(#REM|diogene_nombre_langues|>{#GET{nb_langues}}|oui)
    27         <select id="choix_langue" name="choix_langue">
    28                 [(#ENV{id_trad}|oui)[(#GET{langue_article}|diogene_form_trad_langues)]]
    29                 [(#ENV{id_trad}|non)[(#ENV{lang}|diogene_form_langues)]]
    30         </select>]
     33        [(#SET{langue_defaut,#GET{langue_article,#ENV{lang}}})]
     34        <B_langues>
     35        <select id="langue" name="changer_lang">
     36                <BOUCLE_langues(POUR){tableau #GET{langues_dispos}}>
     37                <option value="#VALEUR"[(#VALEUR|=={#GET{langue_defaut}}|oui) selected="selected"]>[(#VALEUR|traduire_nom_langue)]</option>
     38                </BOUCLE_langues>
     39        </select>
     40        </B_langues>
    3141</li>
  • plugins_spip/diogene/lang/diogene_en.php

    r3349 r3352  
    1111        'champ_date_publication_anterieure' => 'Date of earlier publishing',
    1212        'chercher_article' => 'Search for an article&nbsp;?',
    13         'choix_langue' => 'Choice of the language',
     13        'choix_langue' => 'Language',
    1414
    1515        // D
  • plugins_spip/diogene/lang/diogene_fr.php

    r3349 r3352  
    1111        'champ_date_publication_anterieure' => 'Date de publication ant&eacute;rieure',
    1212        'chercher_article' => 'Rechercher un article&nbsp;?',
    13         'choix_langue' => 'Choix de la langue',
     13        'choix_langue' => 'Langue',
    1414
    1515        // D
  • plugins_spip/diogene/plugin.xml

    r3348 r3352  
    6767        </pipeline>
    6868        <pipeline>
     69                <nom>pre_insertion</nom>
     70                <inclure>diogene_pipelines.php</inclure>
     71        </pipeline>
     72        <pipeline>
     73                <nom>pre_edition</nom>
     74                <inclure>diogene_pipelines.php</inclure>
     75        </pipeline>
     76        <pipeline>
    6977                <nom>post_edition</nom>
    7078                <inclure>diogene_pipelines.php</inclure>
Note: See TracChangeset for help on using the changeset viewer.