3 namespace wcf\system\sitemap\
object;
5 use wcf\data\DatabaseObject
;
6 use wcf\data\page\Page
;
7 use wcf\data\page\PageList
;
8 use wcf\page\AbstractPage
;
9 use wcf\system\acl\simple\SimpleAclResolver
;
10 use wcf\system\exception\IllegalLinkException
;
11 use wcf\system\exception\PermissionDeniedException
;
14 * Simple page sitemap implementation.
16 * @author Joshua Ruesweg
17 * @copyright 2001-2019 WoltLab GmbH
18 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
19 * @package WoltLabSuite\Core\Sitemap\Object
22 class SimplePageSitemapObject
extends AbstractSitemapObjectObjectType
27 public function getObjectClass()
35 public function getObjectList()
37 /** @var $pageList PageList */
38 $pageList = parent
::getObjectList();
39 $pageList->getConditionBuilder()->add('isMultilingual = ?', [0]);
40 $pageList->getConditionBuilder()->add('page.allowSpidersToIndex = ?', [1]);
48 public function canView(DatabaseObject
$object)
50 /** @var Page $object */
51 if ($object->isDisabled
) {
55 if ($object->requireObjectID
) {
59 if (!$object->validateOptions()) {
63 if (!$object->validatePermissions()) {
67 if (!SimpleAclResolver
::getInstance()->canAccess('com.woltlab.wcf.page', $object->pageID
)) {
71 if (!empty($object->controller
)) {
72 /** @var $page AbstractPage */
73 $page = new $object->controller();
75 if ($page->loginRequired
) {
81 $page->checkModules();
84 $page->checkPermissions();
85 } catch (PermissionDeniedException
$e) {
87 } catch (IllegalLinkException
$e) {