Changeset 107761 in spip-zone


Ignore:
Timestamp:
Nov 27, 2017, 9:47:36 AM (2 years ago)
Author:
booz@…
Message:

exporter le descriptif de la rubrique de l'article

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/spip-cli/convertisseurExporter.php

    r99657 r107761  
    5353                ;
    5454        }
    55 
     55       
    5656        protected function execute(InputInterface $input, OutputInterface $output) {
    5757                global $spip_racine;
    5858                global $spip_loaded;
    59                 global $spip_version_branche ;         
    60        
     59                global $spip_version_branche ;
     60               
    6161                include_spip("iterateur/data");
    6262               
    6363                $source = $input->getOption('source') ;
    64                 $dest = $input->getOption('dest') ;     
     64                $dest = $input->getOption('dest') ;
    6565                $branche = $input->getOption('branche') ;
    66 
     66               
    6767                // Secteur ou rubrique à exporter.
    6868                if(!$branche OR !intval($branche)){
    6969                        $output->writeln("<error>Préciser l'id du secteur ou de la rubrique à exporter. spip export -b 123 </error>");
    7070                        exit();
    71                 }       
    72 
     71                }
    7372               
    7473                // demande t'on un secteur ou une rubrique ?
     
    7675               
    7776                if($parent == 0)
    78                         $critere_export = "where id_secteur=" . intval($branche) ;             
     77                        $critere_export = "where id_secteur=" . intval($branche) ;
    7978                else
    8079                        $critere_export = "where id_rubrique=" . intval($branche) ;
     
    8483                        $output->writeln("<error>Préciser le répertoire où exporter les fichiers de $source au format txt. spip export -d `repertoire` </error>");
    8584                        exit();
    86                 }       
    87 
     85                }
    8886               
    8987                if ($spip_loaded) {
    9088                        chdir($spip_racine);
    91 
     89                       
    9290                        if (!function_exists('passthru')){
    9391                                $output->writeln("<error>Votre installation de PHP doit pouvoir exécuter des commandes externes avec la fonction passthru().</error>");
     
    9593                        // Si c'est bon on continue
    9694                        else{
    97 
     95                               
    9896                                // chopper les articles en sql.
    9997                                $query = sql_query("select * from spip_articles $critere_export order by date_redac asc");
    100 
     98                               
    10199                                // start and displays the progress bar
    102100                                $progress = new ProgressBar($output, sql_count($query));
     
    105103                                $progress->setMessage(" Export de `spip_articles` en cours dans $dest ... ", 'message');
    106104                                $progress->start();
    107 
     105                               
    108106                                while($f = sql_fetch($query)){
    109107                                       
    110108                                        $id_article = $f['id_article'] ;
    111109                                        $id_rubrique = $f['id_rubrique'] ;
    112                                
     110                                       
    113111                                        // Exporter les champs spip_articles
    114112                                        $fichier = "" ;
     
    119117                                        $progress->setMessage('', 'docs');
    120118                                        $progress->setMessage('', 'auteurs');
    121 
    122 
     119                                       
     120                                        // mettre les champs dans un fichiers texte balisé avec des <ins class="champ">.
    123121                                        foreach($f as $k => $v){
    124122                                                if($k == "texte" or $v == "" or $v == "0" or $v == "non" or $v == "0000-00-00 00:00:00")
     
    127125                                        }
    128126                                        $fichier .= "\n\n" . $f['texte'] . "\n\n" ;
    129 
    130                                         // métadonnées (hierarchie, auteurs, mots-clés...)
    131 
     127                                       
     128                                        // Ajouter des métadonnées (hierarchie, auteurs, mots-clés...)
     129                                       
    132130                                        // hierarchie
    133                                         $titre_rubrique = sql_getfetsel("titre", "spip_rubriques", "id_rubrique=$id_rubrique");
    134                                         $id_parent = sql_getfetsel("id_parent", "spip_rubriques", "id_rubrique=$id_rubrique");
     131                                        $rubrique = sql_fetsel("titre, descriptif, id_parent", "spip_rubriques", "id_rubrique=$id_rubrique");
     132                                        $titre_rubrique = $rubrique['titre'];
     133                                        $id_parent = $rubrique['id_parent'];
     134                                        $descriptif_parent = $rubrique['titre'];
     135                                        if($descriptif_rubrique = $rubrique['descriptif'])
     136                                                        $descriptif_rubrique = "<ins class='descriptif_rubrique'>$descriptif_rubrique</ins>\n" ;
     137                                       
    135138                                        if($id_parent)
    136139                                                $titre_parent = sql_getfetsel("titre", "spip_rubriques", "id_rubrique=$id_parent");
     
    145148                                                if($a['nom'])
    146149                                                        $ins_auteurs[] = $a ;
    147                                
     150                                       
    148151                                        $auteurs = "" ;
    149152                                        foreach($ins_auteurs as $k => $a){
    150                                                         if($k == 0)
    151                                                                 $sep = "" ;
    152                                                         else
    153                                                                 $sep = "@@" ;
    154                                                         $bio = ($a['bio'] != "") ? "::" . $a['bio'] : "" ;
    155                                                                
    156                                                         $auteurs .= $sep . $a['nom'] . $bio ;
    157                                         }                                       
    158                                                                                
     153                                                if($k == 0)
     154                                                        $sep = "" ;
     155                                                else
     156                                                        $sep = "@@" ;
     157                                                $bio = ($a['bio'] != "") ? "::" . $a['bio'] : "" ;
     158                                                $auteurs .= $sep . $a['nom'] . $bio ;
     159                                        }
     160                                       
    159161                                        $auteurs_m = substr($auteurs, 0, 100) ;
    160162                                        $progress->setMessage($auteurs_m, 'auteurs');
     
    169171                                                if($mc['titre'])
    170172                                                        $ins_mc[] = $mc['type'] . "::" . $mc['titre'] ;
    171                                         }       
     173                                        }
    172174                                        if(is_array($ins_mc)){
    173175                                                $motscles = join("@@", $ins_mc) ;
     
    175177                                                $progress->setMessage($motscles_m, 'motscles');
    176178                                        }
    177 
     179                                       
    178180                                        // documents joints
    179181                                        $documents = sql_allfetsel("*", "spip_documents d, spip_documents_liens dl", "dl.id_objet=$id_article and dl.objet='article' and dl.id_document=d.id_document");
     
    185187                                                $progress->setMessage($docs_m, 'docs');
    186188                                        }
    187 
     189                                       
    188190                                        // Ajouter les métadonnées
    189191                                        if($auteurs)
    190                                                 $fichier = "<ins class='auteurs'>$auteurs</ins>\n" . $fichier ;                         
     192                                                $fichier = "<ins class='auteurs'>$auteurs</ins>\n" . $fichier ;
    191193                                        if($motscles)
    192194                                                $fichier = "<ins class='mots_cles'>$motscles</ins>\n" . $fichier ;
    193195                                        if($documents)
    194196                                                $fichier = "<ins class='documents'>$documents</ins>\n" . $fichier ;
    195                                         if($titre_parent && $titre_rubrique)
    196                                                 $fichier = "<ins class='hierarchie'>$titre_parent@@$titre_rubrique</ins>\n" . $fichier ;
    197                                
     197                                        if($titre_parent && $titre_rubrique){
     198                                                $fichier = "<ins class='hierarchie'>$titre_parent@@$titre_rubrique</ins>\n" .
     199                                                $descriptif_rubrique .
     200                                                $fichier ;
     201                                        }
    198202                                        // Créer un fichier txt
    199203                                        $date = ($f['date_redac'] != "0000-00-00 00:00:00")? $f['date_redac'] : $f['date'] ;
     
    201205                                        $annee = $m[1] ;
    202206                                        $mois = $m[2] ;
    203 
     207                                       
    204208                                        include_spip("inc/charset");
    205209                                        $nom_fichier = translitteration($f['titre']) ;
     
    210214                                       
    211215                                        $nom_fichier = "$dest/$annee/$annee-$mois/$annee-$mois"."_$nom_fichier.txt" ;
    212 
     216                                       
    213217                                        // Créer les répertoires
    214218                                        if(!is_dir("$dest/$annee"))
     
    224228                                                $progress->advance();
    225229                                       
    226                                         }       
     230                                        }
    227231                                        else{
    228232                                                $output->writeln("<error>échec de l'export de $nom_fichier</error>");
    229233                                                exit ;
    230                                         }                       
     234                                        }
    231235                                }
    232236                               
    233237                                // ensure that the progress bar is at 100%
    234238                                $progress->finish();
    235 
     239                               
    236240                        }
    237241                        $output->writeln("\n");
     
    242246        }
    243247}
    244 
    245        
Note: See TracChangeset for help on using the changeset viewer.