/**
  * Retourne un message pour un template en base
  * @param  string $template_name nom du template
  * @param  string $locale        langue
  * @param  array  $template_vars tableau de variable
  * @return SwiftMessage
  */
 public function getMessageForTemplate($template_name, $locale = 'en', $template_vars = array())
 {
     $template = $this->dm->getRepository($this->template_class)->find($template_name);
     if (is_null($template)) {
         throw new \Exception(sprintf('Template "%s" not found', $template_name));
     }
     // Refresh template based on locale
     $template->setTranslatableLocale($locale);
     $this->dm->refresh($template);
     // Assign template engine
     $template->setTwigEngine($this->twig);
     // Construct and return message
     return \Swift_Message::newInstance()->setSubject($template->getFinalSubject($template_vars))->setBody($template->getFinalBody($template_vars), 'text/html');
 }
 /**
  * @param Doctrine\Common\Persistence\ObjectManager $em
  * @param Doctrine\Common\Persistence\Mapping\ClassMetadataFactory $factory
  * @param Knp\FriendlyContexts\Reflection\ObjectReflector $reflector
  * @param Knp\FriendlyContexts\Utils\TextFormater $formater
  * @param ReflectionClass $class1
  * @param ReflectionClass $class2
  * @param ReflectionClass $class3
  * @param ReflectionClass $class4
  **/
 function let($em, $factory, $reflector, $formater, \ReflectionClass $class1, \ReflectionClass $class2, \ReflectionClass $class3, \ReflectionClass $class4)
 {
     $class1->getShortName()->willReturn('User');
     $class1->getNamespaceName()->willReturn('N1/Namespace');
     $class2->getShortName()->willReturn('User');
     $class2->getNamespaceName()->willReturn('N2/Namespace');
     $class3->getShortName()->willReturn('Users');
     $class3->getNamespaceName()->willReturn('N1/Namespace');
     $class4->getShortName()->willReturn('Company');
     $class4->getNamespaceName()->willReturn('N1/Namespace');
     $em->getMetadataFactory()->willReturn($factory);
     $factory->getAllMetadata()->willReturn([]);
     $reflector->getReflectionsFromMetadata(Argument::any())->willReturn([$class1, $class2, $class3, $class4]);
     $this->beConstructedWith($reflector, $formater);
 }
Example #3
0
 /**
  * Save feed
  *
  * @param array $values
  * @return Newscoop\News\Feed
  */
 public function save(array $values)
 {
     if (!array_key_exists('type', $values)) {
         throw new \InvalidArgumentException("Feed type not specified");
     }
     $feed = $this->repository->findBy($values);
     if (count($feed)) {
         return $feed[0];
     }
     switch ($values['type']) {
         case 'reuters':
             $feed = new ReutersFeed($values['config']);
             break;
         default:
             throw new \InvalidArgumentException("Feed type '{$values['type']}' not implemented");
     }
     $this->om->persist($feed);
     $this->om->flush();
     return $feed;
 }