public function getPages($parent = NULL) { $this->setState((int) $parent, TRUE); $repository = $this->getPresenter()->getContext()->cms->pageRepository; $data = array(); $dql = $repository->createQueryBuilder('a'); if ($parent) { $dql = $dql->andWhere('a.parent = ?1')->setParameter(1, $parent); } else { $dql = $dql->andWhere('a.parent IS NULL'); } $dql->orderBy('a.position'); $types = $this->contentManager->getContentTypes(); foreach ($dql->getQuery()->getResult() as $page) { if (!$page->isAllowedInBackend($this->presenter->user, ExtendedPageEntity::ADMIN_PRIVILEGE_SHOW)) { continue; } $type = explode('.', $types[$page->class]); $type = $this->presenter->template->translate(end($type)); $item = array('title' => $page->mainRoute->name . ' <small class="muted">' . $type . '</small>', 'key' => $page->id); if (count($page->children) > 0) { $item['isLazy'] = TRUE; } if (!$page->parent || $this->getState((int) $page->id)) { $item['expand'] = TRUE; $item['children'] = $this->getPages($page->id); } $data[] = $item; } return $data; }
/** * @return \CmsModule\Content\IContentType */ private function getContentType() { $entityClass = $this->entityManager->getClassMetadata(get_class($this->getPageEntity()))->getName(); return $this->contentManager->getContentType($entityClass); }