public function load(ObjectManager $manager)
 {
     //Estos valores sólo se volcarán en el entorno de test
     if ($this->container->get('kernel')->getEnvironment() == 'test') {
         $emailLayout = new EmailLayout();
         $emailLayout->setCreationDate(Util::getCurrentDate());
         $emailLayout->setHeader('Test Header');
         $emailLayout->setFooter('Test Footer');
         $emailLayout->setName('Layout Test 1');
         $manager->persist($emailLayout, $manager);
     }
     $manager->flush();
 }
 /**
  * Permite validar y almacenar la informacion de un layout
  * @author Cesar Giraldo - Kijho Technologies <*****@*****.**> 10/11/2015
  * @param Request $request datos de la solicitud
  * @return Response en caso de exito redirecciona al listado de layouts, 
  * en caso de error despliega nuevamente el formulario de creacion de layouts
  */
 public function saveAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $layoutStorage = $this->container->getParameter('kijho_mailer.storage')['layout'];
     $layout = new $layoutStorage();
     $form = $this->createForm(new EmailLayoutType($this->container), $layout);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $layout->setCreationDate(Util::getCurrentDate());
         $em->persist($layout);
         $em->flush();
         $this->get('session')->getFlashBag()->add('messageSuccessLayout', $this->get('translator')->trans('kijho_mailer.layout.creation_success_message'));
         return $this->redirect($this->generateUrl('kijho_mailer_layout'));
     }
     return $this->render('KijhoMailerBundle:Layout:new.html.twig', array('layout' => $layout, 'form' => $form->createView(), 'menu' => 'layouts'));
 }
 /**
  * Permite validar y almacenar la informacion de un template group
  * @author Cesar Giraldo - Kijho Technologies <*****@*****.**> 12/11/2015
  * @param Request $request datos de la solicitud
  * @return Response en caso de exito redirecciona al listado de template groups, 
  * en caso de error despliega nuevamente el formulario de creacion de template groups
  */
 public function saveAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $templateGroupStorage = $this->container->getParameter('kijho_mailer.storage')['template_group'];
     $templateGroup = new $templateGroupStorage();
     $form = $this->createForm(new EmailTemplateGroupType($this->container), $templateGroup);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $templateGroup->setCreationDate(Util::getCurrentDate());
         $em->persist($templateGroup);
         $em->flush();
         //Seteamos el slug del grupo
         $slug = trim(strtolower(str_replace(' ', '_', $templateGroup->getName()))) . "_" . $templateGroup->getId();
         $templateGroup->setSlug($slug);
         $em->persist($templateGroup);
         $em->flush();
         $this->get('session')->getFlashBag()->add('messageSuccessTemplateGroup', $this->get('translator')->trans('kijho_mailer.template_group.creation_success_message'));
         return $this->redirect($this->generateUrl('kijho_mailer_template_group'));
     }
     return $this->render('KijhoMailerBundle:TemplateGroup:new.html.twig', array('templateGroup' => $templateGroup, 'form' => $form->createView(), 'menu' => 'templateGroups'));
 }
示例#4
0
 /**
  * Esta funcion permite conocer las variables que se encuentran en el contenido
  * de los correos electronicos, para luego validar si el usuario proporciona 
  * o no cada una de las variables a la hora de enviar el correo
  * @author Cesar Giraldo - Kijho Technologies <*****@*****.**> 30/11/2015
  * @param Email $email
  * @param array[mixed] $dataToTemplate
  * @return array[string] arreglo con las variables que faltan por enviar al twig
  */
 private function filterTwigVars(Email $email, $dataToTemplate)
 {
     $content = $email->getContent();
     $lastPos = strpos($content, '}}');
     $nullVars = array();
     if ($lastPos > 0) {
         $var = trim(Util::getBetween($content, '{{', '}}'));
         if (!$this->isParameterInData($var, $dataToTemplate)) {
             array_push($nullVars, $var);
         }
         $noMoreParameters = false;
         while (!$noMoreParameters) {
             $content = substr($content, $lastPos + 2);
             $lastPos = strpos($content, '}}');
             if ($lastPos > 0) {
                 $var = trim(Util::getBetween($content, '{{', '}}'));
                 if (!$this->isParameterInData($var, $dataToTemplate)) {
                     array_push($nullVars, $var);
                 }
             } else {
                 $noMoreParameters = true;
             }
         }
     }
     return $nullVars;
 }
 /**
  * Permite hallar las relaciones que tiene una entidad con otras entidades
  * a partir de la informacion en las anotaciones de sus atributos
  * Cesar Giraldo - Kijho Technologies <*****@*****.**> 17/11/2015
  * @param array[\ReflectionClass] $instances arreglo de instancias a analizar
  * @return \ReflectionClass
  */
 function getEntityRelationships($instances)
 {
     $relationships = array();
     foreach ($instances as $instance) {
         foreach ($instance->getProperties() as $property) {
             //$property = new \ReflectionProperty;
             $docComment = $property->getDocComment();
             $position = strpos($docComment, "targetEntity=");
             if ($position) {
                 $docComment = substr($docComment, $position);
                 $entityName = Util::getBetween($docComment, 'targetEntity="', '"');
                 if (empty($entityName)) {
                     $entityName = Util::getBetween($docComment, "targetEntity='", "'");
                 }
                 try {
                     $entityNamespace = $this->getEntityNamespace();
                     //verificamos que la entidad este escrita con el namespace completo
                     $positionNamespace = strpos($entityName, $entityNamespace);
                     if ($positionNamespace === false) {
                         $entityName = $entityNamespace . $entityName;
                     }
                     $object = new \ReflectionClass(new $entityName());
                     $relationships[$instance->getName()][$property->getName()] = $object;
                 } catch (\Exception $exc) {
                     // El namespace no esta escrito con ruta absoluta
                     //echo $exc->getTraceAsString();
                 }
             }
         }
     }
     return $relationships;
 }