Changeset 113577 in spip-zone


Ignore:
Timestamp:
Jan 23, 2019, 3:36:07 PM (4 weeks ago)
Author:
cedric@…
Message:

on peut indexer une table en particulier

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/spip-cli/IndexerIndexer.php

    r94426 r113577  
    1313                        ->setName('indexer:indexer')
    1414                        ->setDescription('Lancer l’indexation des contenus SPIP configurés.')
     15                        ->addOption(
     16                                'table',
     17                                null,
     18                                InputOption::VALUE_OPTIONAL,
     19                                'Indexer les contenus d\'une table en particulier',
     20                                null
     21                        )
    1522                ;
    1623        }
     
    2431                $indexer = indexer_indexer();
    2532                // Appeler la fonction qui liste les sources et qui comporte un pipeline pour étendre
    26                 $sources = indexer_sources();
     33                $sources_possibles =
     34
     35                if ($tables = $input->getOption('table')) {
     36
     37                        $tables = explode(',', $tables);
     38                        $tables = array_map('trim', $tables);
     39                        $tables = array_filter($tables);
     40                        if (!$tables) {
     41                                $output->writeln("<error>Indiquez une table</error>");
     42                                exit(1);
     43                        }
     44
     45                        include_spip('base/objets');
     46                        include_spip('inc/config');
     47
     48                        // On crée la liste des sources
     49                        $sources = new Indexer\Sources\Sources();
     50
     51                        // On ajoute chaque objet configuré aux sources à indexer
     52                        // Par défaut on enregistre les articles s'il n'y a rien
     53                        foreach ($tables as $table) {
     54                                if ($table) {
     55                                        $sources->register(
     56                                                table_objet($table),
     57                                                new Spip\Indexer\Sources\SpipDocuments(objet_type($table))
     58                                        );
     59                                }
     60                        }
     61
     62                }
     63                else {
     64                        $sources = indexer_sources();
     65                }
    2766               
    2867                $SpipSourcesIndexer = new Spip\Indexer\Sources\SpipSourcesIndexer($indexer, $sources);
Note: See TracChangeset for help on using the changeset viewer.