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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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();
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
 /**
  * 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);
 }