Changeset 94676 in spip-zone


Ignore:
Timestamp:
Jan 20, 2016, 1:38:28 PM (4 years ago)
Author:
booz@…
Message:

conversion plus generique avec l'un des format proposé par le plugin

Location:
_plugins_/convertisseur/trunk
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/extract/xml_ocr.php

    r94667 r94676  
    4545function convertir_xml_ocr($u) {
    4646
     47        include_spip("inc/filtres");
    4748        $article = extraire_balise($u, 'ARTICLE') ;
    4849        $attrs = explode(";" , extraire_attribut($article, "img")) ;
  • _plugins_/convertisseur/trunk/inc/convertisseur.php

    r94667 r94676  
    326326  $conv_formats['Quark_SPIP'] = 'quark_xml'; // function extract/
    327327  $conv_formats['html_SPIP'] = 'html'; // function sale ou HTML2SPIP
     328  $conv_formats['XML_OCR'] = 'xml_ocr'; // function extract/
    328329 
    329330  //
  • _plugins_/convertisseur/trunk/spip-cli/convert.php

    r94675 r94676  
    33/***
    44
    5 Convertir des fichiers au format Quark XML en fichiers en format SPIP conversion.
     5Convertir des fichiers par lots.
     6
     7au format Quark XML en fichiers en format SPIP conversion.
    68
    79Mettre les fichiers XML dans le repertoire /exports_quark/%COLLECTION%/%NUMERO% du SPIP
     
    2022use Symfony\Component\Console\Output\OutputInterface;
    2123
    22 class Quark_xmlConvert extends Command {
     24class Convert extends Command {
    2325        protected function configure() {
    2426                $this
    25                         ->setName('conversion:quarkxmlconvert')
     27                        ->setName('conversion:convertir')
    2628                        ->setDescription('Convertion des fichiers Quarks XML en fichiers d\'import SPIP.')
    2729                        ->setAliases(array(
     
    2931                        ))
    3032                        ->addOption(
     33                                'extracteur',
     34                                'e',
     35                                InputOption::VALUE_OPTIONAL,
     36                                'Type d\'extracteur pour la conversion',
     37                                ''
     38                        )
     39                        ->addOption(
    3140                                'source',
    3241                                's',
    3342                                InputOption::VALUE_OPTIONAL,
    34                                 'Répertoire source',
    35                                 'exports_quark'
     43                                'Répertoire source de la collection à convertir, structuré en collection/numero/[fichiers]',
     44                                'conversion_source'
    3645                        )
    3746                        ->addOption(
     
    5059               
    5160                include_spip("iterateur/data");
    52                
     61                               
    5362                $source = $input->getOption('source') ;
    5463                $dest = $input->getOption('dest') ;
    55                                
    56                 // Répertoire source, ou arrivent les fichiers Quark (/exports_quark par défaut).
    57                 if(!is_dir($source))
    58                         mkdir($source);
    59 
    60                 // Répertoire de destination ou l'on enregistre les fichiers spip (/convertion_spip par défaut).
    61                 if(!is_dir($dest))
    62                         mkdir($dest);
     64                $extracteur = $input->getOption('extracteur') ;
     65               
     66                include_spip("inc/convertisseur");
     67                global $conv_formats ;
     68                foreach($conv_formats as $v)
     69                        if(!is_array($v))
     70                                $extracteurs_disponibles[] = $v ;
     71                $extracteurs_dispos = join(", ",$extracteurs_disponibles);             
     72                                               
     73                if($extracteur == "" || !in_array($extracteur, $extracteurs_disponibles)){
     74                        $output->writeln("<error>Définir un extracteur `spip convert -e %extracteur%`. Extracteurs disponibles : $extracteurs_dispos</error>");
     75                        exit ;
     76                }
    6377               
    6478                if ($spip_loaded) {
     
    6882                                $output->writeln("<error>Votre installation de PHP doit pouvoir exécuter des commandes externes avec la fonction passthru().</error>");
    6983                        }
     84                       
     85                        // Répertoire de destination ou l'on enregistre les fichiers spip (/convertion_spip par défaut).
     86                        if(!is_dir($source)){
     87                                $output->writeln("<error>Préciser où sont les fichiers à convertir `spip convert -s %repertoire%` ou créer un repertoire conversion_source/</error>");
     88                                exit ;
     89                        }
     90                       
     91                        // Repertoire source   
     92                        if(!is_dir($dest)){
     93                                $output->writeln("<error>Préciser où placer les fichiers convertis `spip convert -d %repertoire%` ou créer un repertoire conversion_spip/</error>");
     94                                exit ;
     95                        }
     96                       
    7097                        // Si c'est bon on continue
    7198                        else{
    72                                 $output->writeln("<info>C'est parti pour la convertion des fichiers Quark XML dans /$dest !</info>");
    73 
     99                                $output->writeln("<info>C'est parti pour la convertion `$extracteur` des fichiers de $source/ dans $dest/ !</info>");
    74100
    75101                                // trouve t'on un repertoire trunk/collections dans $dest ?
     
    83109                                foreach($ls_sources as $s)
    84110                                        $sources[] = $s['dirname'] . "/" . $s['basename'] ;
    85                                                                
     111                               
     112                                // plugin convertisseur
     113                                include_spip("extract/$extracteur");
     114                                                                                       
    86115                                include_spip("inc/utils");
     116                               
     117                                $fonction_extraction = $GLOBALS['extracteur'][$extracteur] ;
    87118                               
    88119                                // chopper des fichiers xml mais pas xxx.metatada.xml
     
    91122                                        $fichiers_xml = preg_files($s, "(?:(?<!\.metadata\.)xml$)");
    92123                                       
    93                                         // plugin convertisseur
    94                                         include_spip("extract/quark_xml");
    95                                        
    96124                                        foreach($fichiers_xml as $f){
     125                                               
     126                                                // ne va pas toujours, prendre a partir de la fin. TODO
    97127                                               
    98128                                                $c = preg_match(",.*/(.*)/.*,U", dirname($f), $m);
     
    111141                                                $article = basename($f);
    112142                                                                                       
    113                                                 $contenu = extracteur_quark_xml($f);
     143                                                $contenu = $fonction_extraction($f);
    114144                                               
    115145                                                include_spip("inc/convertisseur");
Note: See TracChangeset for help on using the changeset viewer.