Changeset 61964 in spip-zone


Ignore:
Timestamp:
Jun 1, 2012, 1:56:04 PM (8 years ago)
Author:
mmmxvvv@…
Message:

ameliore le traitement des liens

Location:
_plugins_/articles_vers_rubriques
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/articles_vers_rubriques/articles_vers_rubriques_fonctions.php

    r61916 r61964  
    2121}
    2222
    23 function articles_vers_rubriques($id_article_list, $id_parent, $auteur_admin, $statut_br) {
     23function articles_vers_rubriques($id_article_list, $id_parent, $auteur_admin, $statut_br, $modif_liens) {
    2424        $nouvel_rubrique = array();
    2525        $message = "";
     
    218218                // correspondance id_marticle <-> id_article
    219219                sql_insertq(TABLE_ARTICLES_RUBRIQUES, array('id_article' => $id_marticle, 'id_rubrique' => $id_rubrique));
     220               
     221                if($modif_liens)  $message.= modif_liens_article($id_marticle,$id_rubrique);
    220222        }
    221223        return $message;
     
    223225
    224226
    225 function trouve_idrubrique($masque) {
    226         $id_rubrique = sql_getfetsel('id_rubrique', TABLE_ARTICLES_RUBRIQUES, 'id_article='.$masque[2]);
    227        
    228         if($id_rubrique != false)
    229                 return '['.$masque[1].'->rubrique'.$id_rubrique.']';
    230 
    231         else {
    232                 echo "<br><b>Pas de articles:".$masque[2]." trouvée dans la table ".TABLE_ARTICLES_RUBRIQUES."</b><br>";
    233                 return '['.$masque[1].'->article'.$masque[2].']';
    234         }
    235 }
    236 
    237 function traite_table_champ2($table, $id, $champs) {
    238        
     227function traite_table_champ2($id_article, $id_rubrique, $table, $id, $champs) {
     228        $msg='';
    239229        $select = $id;
    240230        foreach ($champs as $i => $nom_champ) {
     
    242232        }
    243233       
    244         $pattern = '/\[([^]]*)-\>[article]{0,7}([0-9 ]+)\]/';
     234        $pattern = '/\[([^]]*)-\>[article]{0,7}('.$id_article.')\]/';
    245235        //$pattern = '/\[([^]]*)-\>[article]{0,7}(['.$id.' ]+)\]/';
    246236        if($resultats = sql_select($select, $table)) {
     
    252242                                if($string!='') {
    253243                                        $count = 0;
    254                                         $new_string = preg_replace_callback($pattern, 'trouve_idrubrique', $string);
    255                 //print "pattern  $newstring";
     244                                        $replacement = '[$1->rubrique'.$id_rubrique.']';
     245                                        $new_string = preg_replace($pattern, $replacement, $string, -1, $count);
    256246                                        if($new_string == NULL){
    257247                                                echo "<br><b>Erreur sur preg_replace_callback ... sur champ:$nom_champ et id:$res[$id]</b><br>";
     
    266256
    267257                                                sql_updateq($table, array($nom_champ => $new_string), $id.'='.$res[$id]);
     258                                                if($count>0)  $msg.= "<br /> $count liens trait&eacute;s dans la table $table ";
    268259                                        }
     260                                       
    269261                                }
    270262                        }
     
    273265        }
    274266        else
    275                 echo 'Erreur sur sql_select<br>'.sql_error();
     267                return 'liens: Erreur sur sql_select<br>'.sql_error();
     268       
     269        return $msg;
    276270}
    277271
     
    279273// Fonction de recherche des liens vers une article
    280274// Changer ces liens qui pointaient vers l'article vers la rubriqe
    281 function modif_liens2() {
    282         traite_table_champ2('spip_articles', 'id_article', array("surtitre","titre","soustitre","texte","chapo","ps"));
    283         traite_table_champ2('spip_rubriques', 'id_rubrique', array("titre","descriptif","texte"));
    284         traite_table_champ2('spip_auteurs', 'id_auteur', array("bio"));
    285         traite_table_champ2('spip_forum', 'id_forum', array("texte"));
    286         traite_table_champ2('spip_syndic', 'id_syndic', array("descriptif"));
     275function modif_liens_article($id_article,$id_rubrique) {
     276        $msg='';
     277        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_articles', 'id_article', array("surtitre","titre","soustitre","texte","chapo","ps"));
     278        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_breves', 'id_breve', array("titre","texte"));     
     279        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_rubriques', 'id_rubrique', array("titre","descriptif","texte"));
     280        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_auteurs', 'id_auteur', array("bio"));
     281        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_forum', 'id_forum', array("texte"));
     282        $msg .= traite_table_champ2($id_article, $id_rubrique, 'spip_syndic', 'id_syndic', array("descriptif"));
     283        return $msg;
    287284}
    288285
  • _plugins_/articles_vers_rubriques/formulaires/articles_vers_rubrique.php

    r61862 r61964  
    6565                $auteur_admin = false;
    6666        }
     67        if(_request('modif_liens')) {
     68                $modif_liens=true;
     69        } else {
     70                $modif_liens=false;
     71        }       
    6772       
    68        
    69        
    70         if(_request('lance_conv') == 'toutes') {
    71                 if($les_breves = sql_select('id_article', 'spip_articles')) {
    72                         while($une_breve = sql_fetch($les_breves)) {
    73                                 articles_vers_rubriques($une_breve['id_article'], $choix_rub, $auteur_admin, _request('statut_br'));
    74                                 spip_log('articles_vers_rubrique : conversion sur article n'.$une_breve['id_article']);
    75                         }
    76                 }
    77                 else
    78                         $msg = '<br>Erreur sur sql_select dans boucle sur les articles'.sql_error().'<br>';
    79                
    80                 if(sql_count($les_breves)<1)
    81                         $msg = "Aucunes articleses trouvées";
    82                 else
    83                         $msg = "Conversion des articleses terminées";
    84                
    85                 spip_log('articles_vers_rubrique : conversion des articles finies');
    86         }
    87         else if(_request('lance_conv') == 'test') {
    88             // Test sur une breve
    89             $msg = "Conversion de test sur la article "._request('_id_test')."<br>";
    90             $msg .= articles_vers_rubriques(_request('_id_test'), $choix_rub, $auteur_admin, _request('statut_br'));
    91         }
    92 
    93         if(_request('modif_liens')) {
    94                 modif_liens2();
    95                 $msg .= "<br>Modification des liens vers les articles";
    96         }
     73            // conversion des articles
     74            $msg = "Conversion sur les articles "._request('_id_test')."<br>";
     75                $msg .= articles_vers_rubriques(_request('_id_test'), $choix_rub, $auteur_admin, _request('statut_br'),$modif_liens);
    9776
    9877//      if(!_request('modif_liens') && !_request('lance_conv'))
  • _plugins_/articles_vers_rubriques/prive/exec/articles_vers_rubriques.html

    r61862 r61964  
    1 <h1 class="grostitre">Conversion de articles en rubriques</h1>
     1<h1 class="grostitre">Conversion des articles en rubriques</h1>
    22<div class="ajax">
    33        #FORMULAIRE_ARTICLES_VERS_RUBRIQUE
Note: See TracChangeset for help on using the changeset viewer.