public function PdfAction() { $pdf = new TCPDF('L'); $pdf->SetPrintHeader(true); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // set some language-dependent strings (optional) if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) { require_once dirname(__FILE__) . '/lang/eng.php'; $pdf->setLanguageArray($l); } // set font $pdf->SetFont('helvetica', '', 8); // add a page $pdf->AddPage(); //get report data into $data variable $project = $this->getServiceLocator()->get('ProjectTable'); $data = $project->getWsr(); $view = new PhpRenderer(); $resolver = new TemplateMapResolver(); //set the path of the pdf.phtml file $resolver->setMap(array('PDFTemplate' => '/var/www/html/WSRAutomation/module/Application/view/application/index/pdf.phtml')); $view->setResolver($resolver); $viewModel = new ViewModel(); $viewModel->setTemplate('PDFTemplate')->setVariables(array('projects' => $data, 'view' => 'pdf')); $html = $view->render($viewModel); $pdf->writeHTML($html, true, 0, true, 0); $pdf->Output('WsrReport.pdf', 'I'); }
public function testCanSeedMapWithTraversableViaSetter() { $map = new ArrayObject(array('foo/bar' => __DIR__ . '/foo/bar.phtml')); $resolver = new TemplateMapResolver(); $resolver->setMap($map); $this->assertEquals($map->getArrayCopy(), $resolver->getMap()); }
protected function renderTemplatePath($strPath, $arrVariables) { $view = new PhpRenderer(); $resolver = new TemplateMapResolver(); $resolver->setMap(array('mailTemplate' => __DIR__ . '/../../../' . $strPath)); $view->setResolver($resolver); $viewModel = new ViewModel(); $viewModel->setTemplate('mailTemplate')->setVariables($arrVariables); return $view->render($viewModel); }
/** * Generate paging html */ private function generatePaging() { # Get total page count $pages = ceil($this->totalResults / $this->resultsPerPage); /* # Don't show pagination if there's only one page if($pages == 1) { return; } # Show back to first page if not first page if($this->page != 1) { $this->paging .= "<a href='".$this->baseUrl . '?page=1'."' /> << </a>"; } # Create a link for each page $pageCount = 1; while($pageCount <= $pages) { $this->paging .= "<a href='".$this->baseUrl . '?page='. $pageCount . "' /> ". $pageCount ." </a>"; $pageCount++; } # Show go to last page option if not the last page if($this->page != $pages) { $this->paging .= "<a href='".$this->baseUrl . '?page='. $pages . "' /> >> </a>"; }*/ //return $this->paging; $renderer = new PhpRenderer(); $resolver = new TemplateMapResolver(); $resolver->setMap(array('pager' => __DIR__ . '/../../../../../GDI/view/gdi/index2/_pager.phtml')); $renderer->setResolver($resolver); $view = new ViewModel(array('pages' => $pages, 'current_page' => $this->page, 'baseUrl' => $this->baseUrl, 'pageCount' => 1)); $view->setTemplate('pager'); $content = $renderer->render($view); return $content; }
/** * Create, configure and return the email renderer. * * @see FactoryInterface::createService() * @return \Zend\View\Renderer\RendererInterface */ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('config'); if (empty($config['mail']['renderer'])) { throw new \Exception('Config required in order to create Mailer\\Renderer.' . 'required config key: $config["mail"]["renderer"].'); } $rendererConfig = $config['mail']['renderer']; $resolver = new AggregateResolver(); if (isset($rendererConfig['templateMap'])) { $templateMapResolver = new TemplateMapResolver(); $templateMapResolver->setMap($rendererConfig['templateMap']); $resolver->attach($templateMapResolver); } if (isset($rendererConfig['templatePathStack'])) { $pathStackResolver = new TemplatePathStack(); $pathStackResolver->setPaths($rendererConfig['templatePathStack']); $resolver->attach($pathStackResolver); } $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($serviceLocator->get('ViewHelperManager')); $renderer->setResolver($resolver); return $renderer; }
/** * Function for getting the forgot password template * * @author Kaushal Kishore <*****@*****.**> * @package Users * @access Public * @return Ambigous <string, \Zend\Filter\mixed, mixed> */ public function getForgotPasswordTemplate($variables = array()) { $view = new PhpRenderer(); $resolver = new TemplateMapResolver(); $resolver->setMap(array('mailTemplate' => __DIR__ . '/../../../view/users/user/forgot-mail-template.phtml')); $view->setResolver($resolver); $viewModel = new \Zend\View\Model\ViewModel(); $viewModel->setTemplate('mailTemplate'); $viewModel->setVariables($variables); $content = $view->render($viewModel); return $content; }
/** * @return $this * @throws NotifyException */ public function send() { //ID // create an ID for this digest $emailId = $this->getHash(); //TIME RANGE // calculate time range and create from and // to date objects for the range. $from = new DateTime(); $from->add(new DateInterval('P1D')); $to = new DateTime(); $to->add(new DateInterval('P8D')); $this->logger->info("Queue Service says: Fetching upcoming events"); //EVENTS // fetch all events $events = $this->getEvents($from, $to); //NO EVENTS // if there are no events to publish, then it's no need // to keep on processing this script if (count($events) == 0) { $this->logger->info("Digest, no events registered, stop"); return $this; } else { $this->logger->info("Digest, " . count($events) . " events registered."); } //USERS // get all users who want to know // about the upcoming events. $users = $this->getUsers(); $this->logger->info("Digest, " . count($users) . " user will get email "); //VIEW // create and configure view $child = new ViewModel(array('events' => $events, 'from' => $from, 'to' => $to)); $child->setTemplate('news-digest'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'news-digest' => __DIR__ . '/../../../view/email/news-digest.phtml')); $phpRenderer->setResolver($resolver); //QUEUE // try to connect to Queue and send messages to it. // this will try to send messages to mail_queue, that will // send them on it's way via a MailTransport try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); foreach ($users as $user) { $child->setVariable('user', $user); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $result = new Mail(); $result->name = $user->name; $result->email = $user->email; $result->subject = "Vikan framundan | {$from->format('j. n.')} - {$to->format('j. n. Y')}"; $result->body = $phpRenderer->render($layout); $result->id = $emailId; $result->user_id = md5((string) $emailId . $user->email); $result->type = 'Digest'; $result->parameters = 'allir'; $result->test = false; $msg = new AMQPMessage($result->serialize(), ['delivery_mode' => 2]); $channel->basic_publish($msg, '', 'mail_queue'); $this->logger->debug("Queue Service says: Fetching users who want upcoming events, {$user->email} in queue "); } } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $this->closeDataSourceDriver(); } return $this; }
/** * @return $this * @throws NotifyException */ public function send() { //DATA-OBJECTS // get data-objects from persistence layer. $eventObject = $this->getEvent($this->params->event_id); $userObject = $this->getUser($this->params->recipients); //VIEW // create and configure view $child = new ViewModel(array('user' => $userObject, 'event' => $eventObject)); $child->setTemplate($this->params->type ? 'attend' : 'unattend'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'attend' => __DIR__ . '/../../../view/email/attending.phtml', 'unattend' => __DIR__ . '/../../../view/email/un-attending.phtml')); $phpRenderer->setResolver($resolver); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } //MESSAGE // create and configure message. $message = new Mail(); $message->body = $phpRenderer->render($layout); $message->email = $userObject->email; $message->name = $userObject->name; $message->subject = $this->params->type ? "Þú hefur skráð þig á viðburðinn: {$eventObject->subject}" : "Þú hefur afskráð þig af viðburðinum: {$eventObject->subject}"; //MAIL // now we want to send this to the user/quest via e-mail // so we try to connect to Queue and send a message // to mail_queue try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); $msg = new AMQPMessage($message->serialize(), ['delivery_mode' => 2]); $this->logger->info("{$userObject->email} is " . ($this->params->type ? '' : 'not ') . "attending {$eventObject->subject}"); $channel->basic_publish($msg, '', 'mail_queue'); } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $eventObject = null; $userObject = null; $this->closeDataSourceDriver(); } return $this; }
private function _readTemplate() { $config = $this->serviceManager->get('config'); $templateFile = $this->templatePath . $this->templateFile . ".phtml"; $view = new PhpRenderer(); $resolver = new TemplateMapResolver(); $resolver->setMap(array('mailTemplate' => $templateFile)); $view->setResolver($resolver); $viewModel = new ViewModel(); $viewModel->setTemplate('mailTemplate'); $viewModel->setVariables($this->params); $content = $view->render($viewModel); return $content; }
/** * @return $this * @throws NotifyException */ public function send() { //USER // get the user. $user = $this->getUser($this->params->user_id); $this->logger->debug("User validate [{$user->email}]"); //VIEW // create and configure view $child = new ViewModel(array('user' => $user, 'link' => $this->params->facebook)); $child->setTemplate('script'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'script' => __DIR__ . '/../../../view/email/user-validate.phtml')); $phpRenderer->setResolver($resolver); //MAIL // now we want to send this to the user/quest via e-mail // so we try to connect to Queue and send a message // to mail_queue try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $result = new Mail(); $result->name = $user->name; $result->email = $user->email; $result->subject = "Stjórnvísi, staðfesting á aðgangi"; $result->body = $phpRenderer->render($layout); $result->test = true; $msg = new AMQPMessage($result->serialize(), ['delivery_mode' => 2]); $this->logger->info("User validate email to [{$user->email}]"); $channel->basic_publish($msg, '', 'mail_queue'); } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $user = null; } return $this; }
/** * Prepare the resolver with all the templates we have available * * @return Zend\View\Resolver\TemplateMapResolver */ protected static function initResolver() { $resolver = new TemplateMapResolver(); $resolver->setMap(array('MailLayout' => __DIR__ . '/../../view/layout/email-layout.phtml', 'WelcomeTemplate' => __DIR__ . '/../../view/emails/welcome.phtml', 'NewComment' => __DIR__ . '/../../view/emails/new-comment.phtml')); return $resolver; }
/** * @return $this * @throws NotifyException */ public function send() { $groupObject = $this->getGroup($this->params->group_id); $userObject = $this->getUser($this->params->recipient); //VIEW // create and configure view $child = new ViewModel(array('user' => $userObject, 'group' => $groupObject)); $child->setTemplate($this->params->register ? 'group-register' : 'group-unregister'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'group-register' => __DIR__ . '/../../../view/email/group-register.phtml', 'group-unregister' => __DIR__ . '/../../../view/email/group-unregister.phtml')); $phpRenderer->setResolver($resolver); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $result = new Mail(); $result->name = $userObject->name; $result->email = $userObject->email; $result->subject = $this->params->register ? "Þú hefur skráð þig í hópinn: {$groupObject->name}" : "Þú hefur afskráð þig úr hópnum: {$groupObject->name}"; $result->body = $phpRenderer->render($layout); $result->test = true; //MAIL // now we want to send this to the user/quest via e-mail // so we try to connect to Queue and send a message // to mail_queue try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); $msg = new AMQPMessage($result->serialize(), ['delivery_mode' => 2]); $this->logger->info(get_class($this) . ":send" . " {$userObject->email} is " . ($this->params->register ? '' : 'not ') . "joining group {$groupObject->name_short}"); $channel->basic_publish($msg, '', 'mail_queue'); } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $userObject = null; $groupObject = null; $this->closeDataSourceDriver(); } return $this; }
/** * @return $this * @throws NotifyException */ public function send() { //VIEW // create and configure view $child = new ViewModel(array('user' => $this->params->recipients, 'password' => $this->params->password)); $child->setTemplate('script'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'script' => __DIR__ . '/../../../view/email/lost-password.phtml')); $phpRenderer->setResolver($resolver); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $result = new Mail(); $result->name = $this->params->recipients->name; $result->email = $this->params->recipients->email; $result->subject = "Nýtt lykilorð"; $result->body = $phpRenderer->render($layout); $result->type = 'Password'; $result->test = true; //MAIL // now we want to send this to the user/quest via e-mail // so we try to connect to Queue and send a message // to mail_queue try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); $msg = new AMQPMessage($result->serialize(), ['delivery_mode' => 2]); $this->logger->info($this->params->recipients->name . " is requesting new password"); $channel->basic_publish($msg, '', 'mail_queue'); } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } } return $this; }
/** * Run the handler. * * @return $this * @throws NotifyException */ public function send() { $emailId = $this->getHash(); $users = $this->getUsers($this->params->recipients, $this->params->test, $this->params->sender_id, $this->params->group_id); $group = $this->getGroup($this->params->group_id); $this->logger->info("Group-email in " . ($this->params->test ? '' : 'none') . " test mode"); //MAIL // now we want to send this to the user/quest via e-mail // so we try to connect to Queue and send a message // to mail_queue try { //QUEUE // create and configure queue $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); //VIEW // create and configure view $child = new ViewModel(array('user' => null, 'group' => $group, 'body' => call_user_func(new Paragrapher(), $this->params->body))); $child->setTemplate('script'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'script' => __DIR__ . '/../../../view/email/group-letter.phtml')); $phpRenderer->setResolver($resolver); //FOR EVERY USER // for every user, render mail-template // and send to mail-queue foreach ($users as $user) { $child->setVariable('user', $user); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $result = new Mail(); $result->name = $user->name; $result->email = $user->email; $result->subject = $this->params->subject; $result->body = $phpRenderer->render($layout); $result->user_id = md5((string) $emailId . $user->email); $result->id = $emailId; $result->type = 'Event'; $result->entity_id = $group->id; $result->parameters = $this->params->recipients; $result->test = $this->params->test; $msg = new AMQPMessage($result->serialize(), ['delivery_mode' => 2]); $this->logger->info("Groupmail to user:{$user->email}, group:{$group->name_short}"); $channel->basic_publish($msg, '', 'mail_queue'); } } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $users = null; $group = null; $this->closeDataSourceDriver(); } return $this; }
/** * @return $this * @throws NotifyException */ public function send() { $emailId = $this->getEmailId(); $event = $this->getEvent($this->params->event_id); $users = $this->getUser($this->getGroupsFromEvent($event), $event->id, $this->params->user_id, $this->params->recipients, $this->params->test); $this->logger->info(count($users) . " user will get an email" . "in connection with event {$event->subject}:{$event->id}"); //VIEW // create and configure view $child = new ViewModel(array('user' => null, 'event' => $event, 'body' => call_user_func(new Paragrapher(), $this->params->body))); $child->setTemplate('event'); $layout = new ViewModel(); $layout->setTemplate('layout'); $layout->addChild($child, 'content'); $phpRenderer = new PhpRenderer(); $phpRenderer->setCanRenderTrees(true); $resolver = new Resolver\TemplateMapResolver(); $resolver->setMap(array('layout' => __DIR__ . '/../../../view/layout/email.phtml', 'event' => __DIR__ . '/../../../view/email/event.phtml')); $phpRenderer->setResolver($resolver); //CONNECT TO QUEUE // try to connect to RabbitMQ try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); //FOR EVER USER // for every user: render email template, create message object and // send to mail-queue foreach ($users as $user) { $child->setVariable('user', $user); foreach ($layout as $child) { $child->setOption('has_parent', true); $result = $phpRenderer->render($child); $child->setOption('has_parent', null); $capture = $child->captureTo(); if (!empty($capture)) { $layout->setVariable($capture, $result); } } $message = new Mail(); $message->name = $user->name; $message->email = $user->email; $message->subject = $this->params->subject; $message->body = $phpRenderer->render($layout); $message->id = $emailId; $message->user_id = md5((string) $emailId . $user->email); $message->type = 'Event'; $message->entity_id = $event->id; $message->parameters = $this->params->recipients; $message->test = $this->params->test; $msg = new AMQPMessage($message->serialize(), ['delivery_mode' => 2]); $this->logger->info(" {$user->email} will get an email" . "in connection with event {$event->subject}:{$event->id}"); $channel->basic_publish($msg, '', 'mail_queue'); } } catch (\Exception $e) { throw new NotifyException($e->getMessage(), 0, $e); } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } $users = null; $event = null; $this->closeDataSourceDriver(); } return $this; }