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