/** * (non-PHPdoc) * * @see \Zend\Stdlib\Hydrator\Strategy\StrategyInterface::hydrate() */ public function hydrate($value) { if ('' != $value['params']) { $config = new IniReader(); $value['params'] = $config->fromString($value['params']); } return $value; }
/** * Checks if the provided value can be read by Zend\Config\Ini. * * @param string $value * @return boolean */ protected function parseIni($value) { $iniReader = new Ini(); try { $ini = $iniReader->fromString($value); return true; } catch (\Exception $e) { return false; } }
/** * @param int $id * @return int * @throws UthandoException */ public function sendMessage($id) { $message = $this->getById($id); if ($message->isSent()) { throw new UthandoException('Cannot send message out again.'); } // we need to set the server url before add to mail queue $serverUrlHelper = $this->getService('ViewHelperManager')->get('ServerUrl'); $basePathUrlHelper = $this->getService('ViewHelperManager')->get('BasePath'); $serverUrl = $serverUrlHelper() . $basePathUrlHelper(); $iniReader = new IniReader(); $iniWriter = new IniWriter(); $params = $iniReader->fromString($message->getParams()); $params['server_url'] = $serverUrl; $message->setParams($iniWriter->toString($params)); $viewModel = new NewsletterModel(); $viewModel->setTemplate('message/' . $message->getMessageId()); /* @var $subscriptionMapper SubscriptionMapper */ $subscriptionMapper = $this->getService('UthandoNewsletterSubscription')->getMapper(); $subscriptions = $subscriptionMapper->getSubscriptionsByNewsletterId($message->getNewsletterId()); $subscriberIds = []; /* @var $subscription SubscriptionModel */ foreach ($subscriptions as $subscription) { $subscriberIds[] = $subscription->getSubscriberId(); } /* @var $subscriberMapper SubscriberMapper */ $subscriberMapper = $this->getService('UthandoNewsletterSubscriber')->getMapper(); $subscribers = $subscriberMapper->getSubscribersById($subscriberIds); $count = 0; /* @var $subscriber SubscriberModel */ foreach ($subscribers as $subscriber) { $this->getEventManager()->trigger('mail.queue', $this, ['recipient' => ['name' => $subscriber->getName(), 'address' => $subscriber->getEmail()], 'layout' => $viewModel, 'body' => null, 'subject' => $message->getSubject(), 'renderer' => 'ViewNewsletterRenderer', 'transport' => 'default']); $count++; } // set message as sent and save to database. $message->setDateSent(null)->setSent(true); $this->save($message); return $count; }
/** * @param null $menu * @param bool|true $multiArray * @return Navigation */ public function getPages($menu = null, $multiArray = true) { /* @var $service \UthandoNavigation\Service\MenuItem */ $service = $this->getService('UthandoNavigationMenuItem'); $config = new Ini(); if (null === $menu) { $pages = $service->fetchAll(); } else { $pages = $service->getMenuItemsByMenu($menu); } $pageArray = []; /* @var $page \UthandoNavigation\Model\MenuItem */ foreach ($pages as $page) { $p = $page->getArrayCopy(); $params = $config->fromString($p['params']); // need to initialise params array else error occurs $p['params'] = []; // params contain route params and other element params like: // id, class etc. foreach ($params as $key => $value) { $p[$key] = $value; } if ($p['route'] == '0') { unset($p['route']); $p['uri'] = '#'; } else { unset($p['uri']); } if ($p['resource'] == null) { unset($p['resource']); } $pageArray[] = $p; } if ($multiArray) { $pageArray = ArrayUtils::listToMultiArray($pageArray); } return new Navigation($this->preparePages($pageArray)); }
/** * @param Template|Message $model * @return string */ public function parseParams($model) { $iniReader = new Ini(); $params = $iniReader->fromString($model->getParams()); if ($model instanceof Message) { $params = array_merge(parse_ini_string($model->getTemplate()->getParams()), $params); } $this->setVariables($params); }
/** * @param string $data * @param string $format * @param array $context * * @return mixed */ public function decode($data, $format, array $context = array()) { return $this->decoder->fromString($data); }