Publikacja strony w przyszłości - Concrete 5.6

Pracując z Concrete 5 brakowało mi, chyba dość podstawowej, funkcjonalności publikacji strony w przyszłości na liście stron - takie coś miał WordPress.

W jakim celu? Np wyświetlanie życzeń :)

A czy można to zrobić na Concrete 5 ? Można :) Nawet bardzo prosto. Wystarczy w pliku:

concrete/core/controllers/blocks/page_list.php

należy w linijce 126 dopisać:

 

  1. if (!$row['displayAliases']) {
  2. $pl->filterByIsAlias(0);
  3. }
  4. $pl->filter('cvName', '', '!=');
  5.  
  6. if ($row['ctID']) {
  7. $pl->filterByCollectionTypeID($row['ctID']);
  8. }
  9.  
  10. $columns = $db->MetaColumns(CollectionAttributeKey::getIndexedSearchTable());
  11. if (isset($columns['AK_EXCLUDE_PAGE_LIST'])) {
  12. $pl->filter(false, '(ak_exclude_page_list = 0 or ak_exclude_page_list is null)');
  13. }
  14.  
  15. if ( intval($row['cParentID']) != 0) {
  16. $cParentID = ($row['cThis']) ? $this->cID : $row['cParentID'];
  17. if ($this->includeAllDescendents) {
  18. $pl->filterByPath(Page::getByID($cParentID)->getCollectionPath());
  19. } else {
  20. $pl->filterByParentID($cParentID);
  21. }
  22. }
  23.  
  24. $pl->filterByPublicDate(date('Y-m-d H:i:s'), '<='); //TUTAJ DOPISUJEMY TĄ LINIJKĘ
  25. return $pl;

 

Od teraz strona nie pokaże się na liście stron dopóki nie osiągnie ustalonej daty :)