/**
  * Get result from cache or execute database query
  *
  * @param array $config query and cache parameters
  * @param ServiceLocatorInterface $sl
  * @return multitype:NULL
  */
 protected function queryDbCacheResult($config, $sl)
 {
     $result = array();
     $cache = $sl->get(static::CONTENTINUM_CACHE);
     $key = $config['cache'];
     if (!($result = $cache->getItem($key))) {
         $worker = new Worker($sl->get($config['entitymanager']));
         $worker->setEntity($config['entity']);
         $entries = $worker->getStorage()->getRepository($worker->getEntityName())->findBy(array('publish' => 'yes'), array('itemRang' => 'ASC'));
         $i = 1;
         foreach ($entries as $entry) {
             $metas = array();
             $metas['rel'] = $entry->metaRel ? $entry->metaRel : false;
             $metas['type'] = $entry->metaType ? $entry->metaType : false;
             $metas['title'] = $entry->metaTitle ? $entry->metaTitle : false;
             $metas['content'] = $entry->metaContent ? $entry->metaContent : false;
             if (1 !== $entry->webMedias->id) {
                 $metas['href'] = $entry->webMedias->mediaLink;
                 $metas['sizes'] = $entry->webMedias->mediaDimensions;
             } else {
                 $metas['href'] = $entry->metaLink;
             }
             $result[$entry->webPages->id][] = $metas;
             $i++;
         }
         if (isset($config['savecache']) && true === $config['savecache']) {
             $cache->setItem($key, $result);
         }
     }
     if (null === $result) {
         $result = array();
     }
     return $result;
 }
 /**
  * (non-PHPdoc)
  *
  * @see \Contentinum\Service\WebsiteServiceFactory::queryDbCacheResult()
  */
 protected function queryDbCacheResult($config, $sl)
 {
     $result = array();
     $cache = $sl->get(static::CONTENTINUM_CACHE);
     $key = $config['cache'];
     if (!($result = $cache->getItem($key))) {
         try {
             $worker = new Worker($sl->get($config['entitymanager']));
             $repos = $worker->getStorage()->getRepository($config['entity']);
             if (isset($config['findBy'])) {
                 $entries = $repos->findBy($config['findBy']);
             } else {
                 $entries = $repos->findAll();
             }
         } catch (\Exception $e) {
             print $e->getMessage();
             exit('application break');
         }
         $rows = array();
         foreach ($entries as $entry) {
             $row = array();
             foreach ($this->cols as $col) {
                 $row[$col] = $entry->{$col};
             }
             $rows[$entry->webPreferences->hostId][$entry->url] = $row;
         }
         $result = new Config($rows);
         if (isset($config['savecache']) && true === $config['savecache']) {
             $cache->setItem($key, $result);
         }
     }
     return $result;
 }
 /**
  * Get result from cache or execute database query
  * 
  * @param array $config query and cache parameters 
  * @param ServiceLocatorInterface $sl
  * @return multitype:NULL
  */
 protected function queryDbCacheResult($config, $sl)
 {
     $result = array();
     $cache = $sl->get(static::CONTENTINUM_CACHE);
     $key = $config['cache'];
     if (!($result = $cache->getItem($key))) {
         $worker = new Worker($sl->get($config['entitymanager']));
         $worker->setEntity($config['entity']);
         $sortby = $config['sortby'];
         $entries = $worker->getStorage()->getRepository($worker->getEntityName())->findAll();
         foreach ($entries as $entry) {
             $result[$entry->{$sortby}] = $entry->toArray();
         }
         $this->saveCacheItems($key, $result, $cache, $config);
     }
     return $result;
 }
 /**
  * (non-PHPdoc)
  *
  * @see \Contentinum\Service\WebsiteServiceFactory::queryDbCacheResult()
  */
 protected function queryDbCacheResult($config, $sl)
 {
     $result = array();
     $cache = $sl->get(static::CONTENTINUM_CACHE);
     $key = $config['cache'];
     if (!($result = $cache->getItem($key))) {
         $worker = new Worker($sl->get($config['entitymanager']));
         $repos = $worker->getStorage()->getRepository($config['entity']);
         if (isset($config['findBy'])) {
             $orderBy = array();
             if (isset($config['orderBy'])) {
                 $orderBy = $config['orderBy'];
             }
             $entries = $repos->findBy($config['findBy'], $orderBy);
         } else {
             if (isset($config['orderBy'])) {
                 $entries = $repos->findBy(array(), $config['orderBy']);
             } else {
                 $entries = $repos->findAll();
             }
         }
         $tmp = array();
         foreach ($entries as $entry) {
             if (9 !== $entry->onlylink) {
                 if (1 === $entry->onlylink) {
                     $url = $entry->url;
                     $label = ' (external)';
                 } else {
                     if ('index' === $entry->url) {
                         $url = '/';
                     } else {
                         $url = '/' . $entry->url;
                     }
                     $label = ' (internal)';
                 }
                 $tmp[$url] = array('name' => $entry->label . $label);
             }
         }
         $result = new Config($tmp);
         if (isset($config['savecache']) && true === $config['savecache']) {
             $cache->setItem($key, $result);
         }
     }
     return $result;
 }
 protected function queryDbCacheResult($config, $sl)
 {
     $result = array();
     $cache = $sl->get(static::CONTENTINUM_CACHE);
     $key = $config['cache'];
     if (!($result = $cache->getItem($key))) {
         $worker = new Worker($sl->get($config['entitymanager']));
         $entries = $worker->getStorage()->getRepository($config['entity'])->findBy(array('eventOrganizer' => 1), array('organisation' => 'ASC'));
         $tmp = array();
         foreach ($entries as $entry) {
             $tmp[$entry->id] = array('name' => $entry->organisation);
         }
         $result = new Config($tmp);
         if (isset($config['savecache']) && true === $config['savecache']) {
             $cache->setItem($key, $result);
         }
     }
     return $result;
 }