Exemplo n.º 1
0
 /**
  * {@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;
 }
Exemplo n.º 2
0
 /**
  * {@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;
 }