function __construct(Page $page, Page $selected = null, $disabled = false) { $this->page = $page; $this->selected = $selected; $this->checked = $this->page->Equals($selected); $this->tree = new PageTreeProvider($this->page->GetSite()); $this->child = $this->tree->FirstChildOf($this->page); $this->disabled = $disabled; }
/** * Gets the page's user group * @param Page $page * @return Usergroup */ static function FindPageGroup(Page $page) { $currPage = $page; $result = null; do { $result = $currPage->GetUserGroup(); $currPage = $currPage->GetParent(); } while (!$result && $currPage); if (!$result && $page->GetSite()) { return $page->GetSite()->GetUserGroup(); } return $result; }
/** * Gets the rights of the page * @param Page $page * @return BackendPageRights */ static function FindPageRights(Page $page) { $currPage = $page; $result = null; do { $result = $currPage->GetUserGroupRights(); $currPage = $currPage->GetParent(); } while (!$result && $currPage); if (!$result && $page->GetSite()) { $siteRights = $page->GetSite()->GetUserGroupRights(); if ($siteRights) { return $siteRights->GetPageRights(); } } return $result; }
/** * True if page can be appended * @param Page $page The page before * @return bool */ protected function CanCreateAfter() { $parent = $this->tree->ParentOf($this->page); if ($parent) { return BackendModule::Guard()->Allow(BackendAction::Create(), $parent); } return BackendModule::Guard()->GrantAddPageToSite($this->page->GetSite())->ToBool(); }
/** * Returns the url of a page with parameters and fragment * @param Page $page The page * @param array $params All parameters * @return string Return the page url */ static function PageUrl(Page $page, array $params = array(), $fragment = '') { $siteUrl = $page->GetSite()->GetUrl(); $pageUrl = $page->GetUrl(); if ($pageUrl == 'index.html') { $url = $siteUrl; } else { $url = Path::Combine($siteUrl, $pageUrl); } $oblParams = self::GatherParams($url); $urlObl = self::AttachObligatoryParams($url, $oblParams, $params); $urlAllParams = self::AttachMoreParams($urlObl, $oblParams, $params); return $fragment ? $urlAllParams . '#' . $fragment : $urlAllParams; }
/** * Initializes the form * @return boolean */ protected function Init() { $this->page = new Page(Request::GetData('page')); $this->parent = Page::Schema()->ByID(Request::GetData('parent')); $this->previous = Page::Schema()->ByID(Request::GetData('previous')); $this->site = $this->page->Exists() ? $this->page->GetSite() : Site::Schema()->ByID(Request::GetData('site')); $this->dateFormat = Trans('Core.DateFormat'); $this->InitPageRights(); if (!$this->page->Exists() && !$this->site->Exists()) { Response::Redirect(BackendRouter::ModuleUrl(new SiteList())); return true; } $this->AddLayoutField(); $this->AddNameField(); $this->AddUrlField(); $this->AddTitleField(); $this->AddDescriptionField(); $this->AddKeywordsField(); $this->AddMenuAccessField(); $this->AddUserGroupField(); $this->AddGuestsOnlyField(); $this->AddMemberGroupField(); $this->AddPublishField(); $this->AddSubmit(); $this->AddPublishFromDateField(); $this->AddPublishFromHourField(); $this->AddPublishFromMinuteField(); $this->AddPublishToDateField(); $this->AddPublishToHourField(); $this->AddPublishToMinuteField(); $this->AddSitemapRelevanceField(); $this->AddSitemapChangeFrequencyField(); $this->AddTypeField(); $this->AddRedirectTargetSelector(); return parent::Init(); }
/** * The link for the back button * @return string Returns the url to the page tree */ protected function BackLink() { $params = array('site' => $this->page->GetSite()->GetID()); $params['selected'] = $this->page->GetID(); return BackendRouter::ModuleUrl(new PageTree(), $params); }