setName('moderate:check') ->setDescription('Contrôle les moderations a effectuer et envoie un email') // Dans l'avenir on pourra préciser: // - le type // - l'élément // ->addOption('sites', null, InputOption::VALUE_REQUIRED, 'Liste exhaustive des site a traiter') // ->addArgument('sites', InputArgument::OPTIONAL, 'Liste exhaustive des site a traiter') // ->addOption('yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters') ; } protected function execute(InputInterface $input, OutputInterface $output) { $doctrine = $this->getContainer()->get('doctrine'); $em = $doctrine->getEntityManager(); $output->writeln('#'); $output->writeln('## Script de contrôle de la modération ##'); $output->writeln('#'); $count_tags = $doctrine->getRepository('MuzichCoreBundle:Tag') ->countToModerate(); $count_elements = $doctrine->getRepository('MuzichCoreBundle:Element') ->countToModerate(); $count_comments = $doctrine->getRepository('MuzichCoreBundle:Element') ->countForCommentToModerate(); $output->writeln('Nombre de tags a modérer: '.$count_tags.''); $output->writeln('Nombre d\'élément a modérer: '.$count_elements.''); $output->writeln('Nombre d\'élément avec commentaire a modérer: '.$count_comments.''); if ($count_tags || $count_elements || $count_comments) { $output->writeln('Envoie du courriel ...'); $message = \Swift_Message::newInstance() ->setSubject('Muzi.ch: Contrôle modération') ->setFrom('noreply@muzi.ch') ->setTo('sevajol.bastien@gmail.com') ->setBody($this->getContainer()->get('templating')->render('MuzichCoreBundle:Email:checkmoderate.txt.twig', array( 'tags' => $count_tags, 'elements' => $count_elements, 'comments' => $count_comments, 'url' => $this->getContainer()->get('router')->generate('MuzichAdminBundle_moderate_index', array(), true) ))) ; $this->getContainer()->get('mailer')->send($message); } $output->writeln('Terminé !'); } }