/**
  * (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;
 }
Beispiel #2
0
 /**
  * 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);
 }
Beispiel #6
0
 /**
  * @param string $data
  * @param string $format
  * @param array  $context
  *
  * @return mixed
  */
 public function decode($data, $format, array $context = array())
 {
     return $this->decoder->fromString($data);
 }