Exemplo n.º 1
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;
 }
Exemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function generate(PageCollection $pageCollection, \Closure $messageCallback)
 {
     $generatedPages = new PageCollection();
     $filteredPages = $pageCollection->filter(function (Page $page) {
         return false !== $page->getTitle();
     });
     /* @var $page Page */
     foreach ($filteredPages as $page) {
         $alteredPage = clone $page;
         $alteredPage->setTitle(strtoupper($page->getTitle()));
         $generatedPages->add($alteredPage);
     }
     return $generatedPages;
 }
Exemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function generate(PageCollection $pageCollection, \Closure $messageCallback)
 {
     $generatedPages = new PageCollection();
     $filteredPages = $pageCollection->filter(function (Page $page) {
         return in_array($page->getNodeType(), [NodeType::HOMEPAGE, NodeType::SECTION]);
     });
     /* @var $page Page */
     foreach ($filteredPages as $page) {
         if ($this->config->get('site.paginate.disabled')) {
             return $generatedPages;
         }
         $paginateMax = intval($this->config->get('site.paginate.max'));
         $paginatePath = $this->config->get('site.paginate.path');
         $pages = $page->getVariable('pages');
         $path = $page->getPathname();
         // paginate
         if (count($pages) > $paginateMax) {
             $paginateCount = ceil(count($pages) / $paginateMax);
             for ($i = 0; $i < $paginateCount; $i++) {
                 $pagesInPagination = array_slice($pages, $i * $paginateMax, $paginateMax);
                 $alteredPage = clone $page;
                 // first page
                 if ($i == 0) {
                     $alteredPage->setId(Page::urlize(sprintf('%s/index', $path)))->setPathname(Page::urlize(sprintf('%s', $path)))->setVariable('aliases', [sprintf('%s/%s/%s', $path, $paginatePath, 1)]);
                 } else {
                     $alteredPage->setId(Page::urlize(sprintf('%s/%s/%s/index', $path, $paginatePath, $i + 1)))->setPathname(Page::urlize(sprintf('%s/%s/%s', $path, $paginatePath, $i + 1)))->unVariable('menu');
                 }
                 // pagination
                 $pagination = ['pages' => $pagesInPagination];
                 if ($i > 0) {
                     $pagination += ['prev' => Page::urlize(sprintf('%s/%s/%s', $path, $paginatePath, $i))];
                 }
                 if ($i < $paginateCount - 1) {
                     $pagination += ['next' => Page::urlize(sprintf('%s/%s/%s', $path, $paginatePath, $i + 2))];
                 }
                 $alteredPage->setVariable('pagination', $pagination);
                 $generatedPages->add($alteredPage);
             }
         }
     }
     return $generatedPages;
 }
Exemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function generate(PageCollection $pageCollection, \Closure $messageCallback)
 {
     $generatedPages = new PageCollection();
     $filteredPages = $pageCollection->filter(function (Page $page) {
         return false !== $page->getVariable('external');
     });
     /* @var $page Page */
     foreach ($filteredPages as $page) {
         try {
             $pageContent = file_get_contents($page->getVariable('external'), false);
             $html = (new Converter())->convertBody($pageContent);
             $page->setHtml($html);
             $generatedPages->add($page);
         } catch (\Exception $e) {
             $error = sprintf('Cannot get contents from %s', $page->getVariable('external'));
             $message = sprintf("> Unable to generate '%s': %s", $page->getId(), $error);
             call_user_func_array($messageCallback, ['GENERATE_PROGRESS', $message]);
         }
     }
     return $generatedPages;
 }