/** * {@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())); }