Changeset 114711 in spip-zone


Ignore:
Timestamp:
Apr 2, 2019, 12:08:05 PM (8 months ago)
Author:
real3t@…
Message:

[SPIP-cli] Nouvelle commande : auteurs:lister [--webmestres] [--email=xxx] [--statut=0minirezo|1comite|5poubelle|6forum]

File:
1 copied

Legend:

Unmodified
Added
Removed
  • _outils_/spip-cli/trunk/src/Command/AuteursLister.php

    r114700 r114711  
    66use Spip\Cli\Console\Command;
    77use Spip\Cli\Loader\Spip;
     8use Symfony\Component\Console\Input\InputArgument;
    89use Symfony\Component\Console\Input\InputInterface;
    910use Symfony\Component\Console\Input\InputOption;
     
    1112
    1213
    13 class AuteursSuperadmin extends Command
     14class AuteursLister extends Command
    1415{
    1516
     
    1819
    1920        protected function configure() {
    20                 $this->setName("auteurs:superadmin")
    21                         ->setDescription("Ajoute / supprime un webmestre observateur (id_auteur = -1).")
    22                         ->addOption('delete', 'd', InputOption::VALUE_NONE, 'Pour supprimer le webmestre observateur.')
    23                         ->addOption('force', 'f', InputOption::VALUE_NONE, 'Supprime puis crée un webmestre observateur.')
    24                         ->setAliases(['root:me'])
     21                $this->setName("auteurs:lister")
     22                        ->setDescription("Liste les auteurs d'un site")
     23                        ->addOption('statut', null, InputOption::VALUE_REQUIRED, 'Statut spécifique')
     24                        ->addOption('email', null, InputOption::VALUE_REQUIRED, 'email (fait un LIKE %email%')
     25                        ->addOption('webmestres', null, InputOption::VALUE_NONE, 'Ne chercher que les webmestres')
    2526                ;
    2627        }
     
    3031                $this->demarrerSpip();
    3132
    32                 if ($input->getOption('delete')) {
    33                         $this->deleteWebmestre();
    34                 } else {
    35                         $this->createWebmestre($input->getOption('force'));
     33                if ($input->getOption('statut')) {
     34                        $statut = $input->getOption('statut');
     35                        if (!in_array($statut, array('0minirezo','1comite', '5poubelle', '6forum'))) {
     36                                $statut = '';
     37                        }
    3638                }
    37                 $this->io->text("");
     39                if ($input->getOption('email')) {
     40                        $email = $input->getOption('email');
     41                }
     42                if ($input->getOption('webmestres')) {
     43                        $statut = '0minirezo';
     44                        $webmestres = true;
     45                }
     46               
     47                $auteurs = $this->listeAuteurs($statut, $email, $webmestres);
     48               
     49                $this->io->table(['id_auteur', 'login', 'nom', 'email', 'statut', 'webmestre'], $auteurs);
    3850        }
    3951
    4052        /** Cherche l’auteur SPIP -1 */
    41         public function findWebmestre() {
    42                 $webmestre = sql_fetsel(['id_auteur AS id', 'login', 'nom', 'email', 'statut', 'webmestre'], 'spip_auteurs', 'id_auteur = ' . sql_quote(-1, '', 'INT'));
    43                 return $webmestre;
     53        public function listeAuteurs($statut = '', $email = '', $webmestres = false) {
     54                $criteres = array();
     55                if ($statut != '') {
     56                        $criteres[] = 'statut = ' . sql_quote($statut);
     57                }
     58                if ($email != '') {
     59                        $criteres[] = 'email LIKE ' . sql_quote("%$email%");
     60                }
     61                if ($webmestres) {
     62                        $criteres[] = "webmestre = 'oui'";
     63                }
     64
     65                $auteurs = sql_allfetsel(['id_auteur', 'login', 'nom', 'email', 'statut', 'webmestre'], 'spip_auteurs', $criteres );
     66
     67                return $auteurs;
    4468        }
    4569
Note: See TracChangeset for help on using the changeset viewer.