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')); }
/** * 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; }