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 ...');
$website_url = $this->getContainer()->getParameter('siteurl');
$message = \Swift_Message::newInstance()
->setSubject('Muzi.ch: Contrôle modération')
->setFrom('contact@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' => $website_url.$this->getContainer()->get('router')->generate('AdmingeneratorDashboard_welcome', array(), false)
)))
;
$this->getContainer()->get('mailer')->send($message);
}
$output->writeln('Terminé !');
}
}