Changeset 84043 in spip-zone


Ignore:
Timestamp:
Aug 7, 2014, 2:50:24 PM (7 years ago)
Author:
cedric@…
Message:

bugfix sous SPIP 3 (des champs manquants) et message information plus informatif

Location:
_plugins_/breves_vers_articles
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/breves_vers_articles/breves_vers_articles_fonctions.php

    r56732 r84043  
    8181        $nouvel_article['lang'] = 'fr';
    8282        $nouvel_article['langue_choisie'] = 'oui';
    83         $nouvel_article['id_trad'] = '0';
    84         $nouvel_article['id_version'] = '1';
    85         $nouvel_article['export'] = 'oui';
     83        //$nouvel_article['id_trad'] = '0';
     84        //$nouvel_article['id_version'] = '1';
     85        //$nouvel_article['export'] = 'oui';
    8686       
    8787        $id_article = sql_insertq('spip_articles', $nouvel_article);
    88         $message.="<br>Bréve n°".$id_breve." vers l'article ".$id_article;
    89 
    90         // relation article <=> auteur
    91         if($id_auteur != '') {
     88        if (!$id_article){
     89                $message.="<br>ECHEC Bréve n°".$id_breve;
     90        }
     91        else {
     92                $message.="<br>Bréve n°".$id_breve." vers l'article ".$id_article;
     93
     94                // relation article <=> auteur
     95                if($id_auteur != '') {
     96                        if (_SPIP3) {
     97                                objet_associer(
     98                                        array("auteur"=>$id_auteur),
     99                                        array("article"=>$id_article));
     100                        } else {
     101                                sql_insertq('spip_auteurs_articles', array('id_auteur' => $id_auteur, 'id_article' => $id_article));
     102                        }
     103                }
     104
     105                // on s'occupe du logo
     106                $logobr = IMG_SPIP_PATH."/breveon".$id_breve;
     107                $logoart = IMG_SPIP_PATH."/arton".$id_article;
     108
     109                $ext = "";
     110                if(file_exists($logobr.".jpg")) $ext = ".jpg";
     111                else if(file_exists($logobr.".png")) $ext = ".png";
     112                else if(file_exists($logobr.".gif")) $ext = ".gif";
     113        //      else $message.= '<br>impossible de trouver le logo pour la breve :'.$id_breve;
     114
     115                if($ext!="") if(!rename($logobr.$ext, $logoart.$ext)) $message.="<br>impossible de renommer:".$logobr.$ext;
     116
     117                // on s'occupe des mots clés
    92118                if (_SPIP3) {
    93                         objet_associer(
    94                                 array("auteur"=>$id_auteur),
    95                                 array("article"=>$id_article));
     119
     120                        $mots = sql_allfetsel('id_mot', 'spip_mots_liens', array('objet='.sql_quote('breve'), 'id_objet='.$id_breve));
     121                        if ($mots and $mots = array_map('array_shift', $mots)) {
     122                                objet_associer(
     123                                        array("mot"=>$mots),
     124                                        array("article"=>$id_article));
     125                        }
    96126                } else {
    97                         sql_insertq('spip_auteurs_articles', array('id_auteur' => $id_auteur, 'id_article' => $id_article));
    98                 }
    99         }
    100 
    101         // on s'occupe du logo
    102         $logobr = IMG_SPIP_PATH."/breveon".$id_breve;
    103         $logoart = IMG_SPIP_PATH."/arton".$id_article;
    104        
    105         $ext = "";
    106         if(file_exists($logobr.".jpg")) $ext = ".jpg";
    107         else if(file_exists($logobr.".png")) $ext = ".png";
    108         else if(file_exists($logobr.".gif")) $ext = ".gif";
    109 //      else $message.= '<br>impossible de trouver le logo pour la breve :'.$id_breve;
    110 
    111         if($ext!="") if(!rename($logobr.$ext, $logoart.$ext)) $message.="<br>impossible de renommer:".$logobr.$ext;
    112 
    113         // on s'occupe des mots clés
    114         if (_SPIP3) {
    115                
    116                 $mots = sql_allfetsel('id_mot', 'spip_mots_liens', array('objet='.sql_quote('breve'), 'id_objet='.$id_breve));
    117                 if ($mots and $mots = array_map('array_shift', $mots)) {
    118                         objet_associer(
    119                                 array("mot"=>$mots),
    120                                 array("article"=>$id_article));
    121                 }
    122         } else {
    123                 $mots = sql_select('id_mot', 'spip_mots_breves', 'id_breve='.$id_breve);
    124                 while($motscles = sql_fetch($mots)) {           
    125                         sql_insertq('spip_mots_articles', array('id_mot' => $motscles['id_mot'], 'id_article' => $id_article));
    126                 }
    127         }
    128 
    129         // on s'occupe des forums : ok
    130        
    131         $desc_forum = sql_showtable('spip_forum', true);
    132         if($desc_forum['field']['id_breve']) {
    133         // Utilisation d'une table forum classique
    134                 $forums = sql_select('id_forum', 'spip_forum', 'id_breve='.$id_breve);
    135                 while($forum = sql_fetch($forums)) {           
    136                         sql_updateq('spip_forum', array('id_breve' => '', 'id_article' => $id_article), 'id_forum='.$forum['id_forum']);
    137                 }
    138         }
    139         else if($desc_forum['field']['id_objet']){
    140         // Utilisation de la version objet de gestion des forums
    141                 $forums = sql_select('id_forum', 'spip_forum', 'objet="breve" AND id_objet='.$id_breve);
    142                 while($forum = sql_fetch($forums)) {           
    143                         sql_updateq('spip_forum', array('id_objet' => $id_article, 'objet' => 'article'), 'id_forum='.$forum['id_forum']);
    144                 }
    145         }
    146         else
    147                 $message .= "<br>Impossible de determiner quelle gestion est utilisée sur les forums (id_breve ou id_objet)";
    148        
    149         // Gestion du statut de la bréve
    150         switch($statut_br) {
    151                 case 'idem':
    152                         // Rien à faire
    153                         break;
    154                 case 'prop':
    155                         sql_updateq('spip_breves', array('statut' => 'prop'), 'id_breve='.$id_breve);
    156                         break;
    157                 case 'refus':
    158                         sql_updateq('spip_breves', array('statut' => 'refuse'), 'id_breve='.$id_breve);
    159                         break;
    160         }
    161 
    162         // correspondance id_breve <-> id_article
    163         sql_insertq(TABLE_BREVES_ARTICLES, array('id_breve' => $id_breve, 'id_article' => $id_article));
     127                        $mots = sql_select('id_mot', 'spip_mots_breves', 'id_breve='.$id_breve);
     128                        while($motscles = sql_fetch($mots)) {
     129                                sql_insertq('spip_mots_articles', array('id_mot' => $motscles['id_mot'], 'id_article' => $id_article));
     130                        }
     131                }
     132
     133                // on s'occupe des forums : ok
     134
     135                $desc_forum = sql_showtable('spip_forum', true);
     136                if($desc_forum['field']['id_breve']) {
     137                // Utilisation d'une table forum classique
     138                        $forums = sql_select('id_forum', 'spip_forum', 'id_breve='.$id_breve);
     139                        while($forum = sql_fetch($forums)) {
     140                                sql_updateq('spip_forum', array('id_breve' => '', 'id_article' => $id_article), 'id_forum='.$forum['id_forum']);
     141                        }
     142                }
     143                else if($desc_forum['field']['id_objet']){
     144                // Utilisation de la version objet de gestion des forums
     145                        $forums = sql_select('id_forum', 'spip_forum', 'objet="breve" AND id_objet='.$id_breve);
     146                        while($forum = sql_fetch($forums)) {
     147                                sql_updateq('spip_forum', array('id_objet' => $id_article, 'objet' => 'article'), 'id_forum='.$forum['id_forum']);
     148                        }
     149                }
     150                else
     151                        $message .= "<br>Impossible de determiner quelle gestion est utilisée sur les forums (id_breve ou id_objet)";
     152
     153                // Gestion du statut de la bréve
     154                switch($statut_br) {
     155                        case 'idem':
     156                                // Rien à faire
     157                                break;
     158                        case 'prop':
     159                                sql_updateq('spip_breves', array('statut' => 'prop'), 'id_breve='.$id_breve);
     160                                break;
     161                        case 'refus':
     162                                sql_updateq('spip_breves', array('statut' => 'refuse'), 'id_breve='.$id_breve);
     163                                break;
     164                }
     165
     166                // correspondance id_breve <-> id_article
     167                sql_insertq(TABLE_BREVES_ARTICLES, array('id_breve' => $id_breve, 'id_article' => $id_article));
     168        }
    164169
    165170        return $message;
  • _plugins_/breves_vers_articles/formulaires/breves_vers_article.php

    r48030 r84043  
    6969                if($les_breves = sql_select('id_breve', 'spip_breves')) {
    7070                        while($une_breve = sql_fetch($les_breves)) {
    71                                 breves_vers_articles($une_breve['id_breve'], $choix_rub, _request('auteur_br'), _request('statut_br'));
     71                                $msg .= breves_vers_articles($une_breve['id_breve'], $choix_rub, _request('auteur_br'), _request('statut_br'));
    7272                                spip_log('breves_vers_article : conversion sur breve n'.$une_breve['id_breve']);
    7373                        }
     
    7777               
    7878                if(sql_count($les_breves)<1)
    79                         $msg = "Aucunes bréves trouvées";
     79                        $msg .= "Aucunes bréves trouvées";
    8080                else
    81                         $msg = "Conversion des bréves terminées";
     81                        $msg .= "Conversion des bréves terminées";
    8282               
    8383                spip_log('breves_vers_article : conversion des breves finies');
  • _plugins_/breves_vers_articles/plugin.xml

    r56732 r84043  
    1212        <icon>prive/themes/spip/images/br2art.png</icon>
    1313        <prefix>breves_vers_articles</prefix>
    14         <version>1.3.0</version>
     14        <version>1.3.1</version>
    1515        <install>base/breves_vers_articles_upgrade.php</install>
    1616        <options>breves_vers_articles_options.php</options>
Note: See TracChangeset for help on using the changeset viewer.