/**
  * {@inheritdoc}
  */
 public function execute(BlockContextInterface $blockContext, Response $response = null)
 {
     $pages = $this->em->getAllSortBy('updatedAt');
     $draftPageCount = 0;
     $reviewPageCount = 0;
     $publishedPageCount = 0;
     $reviewPages = array();
     $draftPages = array();
     foreach ($pages as $page) {
         /** @var \Networking\InitCmsBundle\Model\PageInterface $page */
         if ($page->hasPublishedVersion()) {
             $publishedPageCount++;
         }
         if ($page->isReview()) {
             $reviewPageCount++;
             $draftPageCount++;
             $reviewPages[\Locale::getDisplayLanguage($page->getLocale())][] = $page;
         }
         if ($page->isDraft()) {
             $draftPageCount++;
             $draftPages[\Locale::getDisplayLanguage($page->getLocale())][] = $page;
         }
     }
     return $this->renderResponse($blockContext->getTemplate(), array('block' => $blockContext->getBlock(), 'draft_pages' => $draftPageCount, 'review_pages' => $reviewPageCount, 'published_pages' => $publishedPageCount, 'pages' => $pages, 'reviewPages' => $reviewPages, 'draftPages' => $draftPages), $response);
 }
 /**
  * {@inheritdoc}
  */
 public function execute(BlockContextInterface $blockContext, Response $response = null)
 {
     $pages = $this->em->getAllSortBy('updatedAt', 'DESC', Query::HYDRATE_ARRAY);
     $draftPageCount = 0;
     $reviewPageCount = 0;
     $publishedPageCount = 0;
     $reviewPages = array();
     $draftPages = array();
     foreach ($pages as $page) {
         if (array_key_exists('snapshots', $page) && count($page['snapshots']) > 0) {
             $publishedPageCount++;
         }
         if ($page['status'] == PageInterface::STATUS_REVIEW) {
             $reviewPageCount++;
             $draftPageCount++;
             $reviewPages[\Locale::getDisplayLanguage($page['locale'])][] = $page;
         }
         if ($page['status'] == PageInterface::STATUS_DRAFT) {
             $draftPageCount++;
             $draftPages[\Locale::getDisplayLanguage($page['locale'])][] = $page;
         }
     }
     return $this->renderResponse($blockContext->getTemplate(), array('block' => $blockContext->getBlock(), 'draft_pages' => $draftPageCount, 'review_pages' => $reviewPageCount, 'published_pages' => $publishedPageCount, 'pages' => $pages, 'reviewPages' => $reviewPages, 'draftPages' => $draftPages), $response);
 }
 /**
  * Returns the corresponding route of the given URL for the locale supplied
  * If none is found it returns the original route object
  *
  * @param $oldUrl
  * @param $locale
  * @return array|\Networking\InitCmsBundle\Entity\ContentRoute
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function getTranslationRoute($oldUrl, $locale)
 {
     /** @var $router RouterInterface */
     $route = $this->router->matchRequest(Request::create($oldUrl));
     if (!array_key_exists('_content', $route)) {
         return $route;
     }
     $content = $route['_content'];
     if ($content instanceof PageInterface) {
         $translation = $content->getAllTranslations()->get($locale);
         if (is_null($translation)) {
             //@todo does this make sense, or should we throw an exception
             return array('_route' => 'networking_init_cms_home');
         }
         //return a contentRoute object
         return $translation->getContentRoute()->setContent($translation);
     }
     if ($content instanceof PageSnapshotInterface) {
         $content = $this->serializer->deserialize($content->getVersionedData(), $this->pageManager->getClassName(), 'json');
         $translation = $content->getAllTranslations()->get($locale);
         if ($translation && ($snapshotId = $translation->getId())) {
             /** @var $snapshot PageSnapshotInterface */
             $snapshot = $this->om->getRepository($content->getSnapshotClassType())->findOneBy(array('resourceId' => $snapshotId));
             if ($snapshot) {
                 //return a contentRoute object
                 return $snapshot->getRoute();
             }
         }
     }
     if ($this->fallbackRoute) {
         return $this->fallbackRoute;
     }
     if ($route = $this->router->matchRequest(Request::create('/404'))) {
         return $route;
     }
     //no valid translation found
     throw new NotFoundHttpException(sprintf('Could not find a translation to "%s" for content "%s"', $locale, $content->__toString()));
 }