Пример #1
0
 public function testAliases()
 {
     $parent = Page::getByPath('/test-page-2/foo-bar');
     $subject = Page::getByPath('/another-fun-page');
     $subject->addCollectionAlias($parent);
     $pc = Page::getByPath('/brace-yourself');
     $pc->move($parent);
     $page = $this->createPage('Page 2', $parent);
     $page->reindex();
     $this->list->filterByParentID($parent->getCollectionID());
     $this->list->includeAliases();
     $totalResults = $this->list->getTotalResults();
     $this->assertEquals(3, $totalResults);
     $this->list->filterByKeywords('Page');
     $totalResults = $this->list->getTotalResults();
     // should get two.
     $this->assertEquals(2, $totalResults);
     $nl = new \Concrete\Core\Page\PageList();
     $nl->includeAliases();
     $nl->ignorePermissions();
     $nl->sortByName();
     $total = $nl->getPagination()->getTotalResults();
     $results = $nl->getPagination()->setMaxPerPage(10)->getCurrentPageResults();
     $this->assertEquals(15, $total);
     $this->assertEquals(10, count($results));
     $this->assertTrue($results[2]->isAlias());
     $this->assertEquals('Another Fun Page', $results[2]->getCollectionName());
     $this->assertEquals($results[2]->getCollectionID(), $subject->getCollectionID());
     $this->assertEquals(14, $results[2]->getCollectionPointerOriginalID());
     $this->assertEquals(8, $results[2]->getCollectionID());
 }
Пример #2
0
 /**
  * @return \Concrete\Core\Page\PageList
  */
 public function getPageListObject()
 {
     $pl = new PageList();
     $pl->setItemsPerPage($this->itemsPerFeed);
     $pl->sortByPublicDateDescending();
     if (!$this->checkPagePermissions) {
         $pl->ignorePermissions();
     } else {
         $vp = \Concrete\Core\Permission\Key\Key::getByHandle('view_page');
         $guest = \Group::getByID(GUEST_GROUP_ID);
         $access = GroupEntity::getOrCreate($guest);
         // we set page permissions to be Guest group only, because
         // authentication won't work with RSS feeds
         $pl->setPermissionsChecker(function ($page) use($vp, $access) {
             $vp->setPermissionObject($page);
             $pa = $vp->getPermissionAccessObject($page);
             if (!is_object($pa)) {
                 return false;
             }
             return $pa->validateAccessEntities(array($access));
         });
     }
     if ($this->cParentID) {
         if ($this->pfIncludeAllDescendents) {
             $parent = \Page::getByID($this->cParentID);
             if (is_object($parent) && !$parent->isError()) {
                 $pl->filterByPath($parent->getCollectionPath());
             }
         } else {
             $pl->filterByParentID($this->cParentID);
         }
     }
     if ($this->pfDisplayAliases) {
         $pl->includeAliases();
     }
     if ($this->ptID) {
         $pl->filterByPageTypeID($this->ptID);
     }
     if ($this->pfDisplayFeaturedOnly) {
         $pl->filterByAttribute('is_featured', true);
     }
     return $pl;
 }
Пример #3
0
 public function includeAliases()
 {
     return parent::includeAliases();
 }