/** * {@inheritdoc} */ public function generate(PageCollection $pageCollection, \Closure $messageCallback) { $generatedPages = new PageCollection(); $sections = []; // collects sections /* @var $page Page */ foreach ($pageCollection as $page) { if ($page->getSection() != '') { $sections[$page->getSection()][] = $page; } } // adds node pages to collection if (count($sections) > 0) { $menuWeight = 100; foreach ($sections as $section => $pages) { if (!$pageCollection->has($section . '/index')) { usort($pages, 'PHPoole\\Util::sortByDate'); $page = (new Page())->setId(Page::urlize(sprintf('%s/index', $section)))->setPathname(Page::urlize(sprintf('%s', $section)))->setTitle(ucfirst($section))->setNodeType(NodeType::SECTION)->setVariable('pages', $pages)->setVariable('menu', ['main' => ['weight' => $menuWeight]]); $generatedPages->add($page); } $menuWeight += 10; } } return $generatedPages; }
/** * {@inheritdoc} */ public function generate(PageCollection $pageCollection, \Closure $messageCallback) { $generatedPages = new PageCollection(); if (!$pageCollection->has('index')) { $filteredPages = $pageCollection->filter(function (Page $page) { return $page->getNodeType() === null && $page->getSection() == $this->config->get('site.paginate.homepage.section') && !empty($page->getBody()); }); $pages = $filteredPages->sortByDate()->toArray(); /* @var $page Page */ $page = (new Page())->setId('index')->setNodeType(NodeType::HOMEPAGE)->setPathname(Page::urlize(''))->setTitle('Home')->setVariable('pages', $pages)->setVariable('menu', ['main' => ['weight' => 1]]); $generatedPages->add($page); } return $generatedPages; }