public function GetRootPages()
 {
     $controllers = new ArrayList();
     $pageModels = Page::get()->filter(array("ParentId" => 0, "ID:not" => AllInOneHelper::excludedPageIds()));
     foreach ($pageModels as $model) {
         $controllers->push(ModelAsController::controller_for($model));
     }
     return $controllers;
 }
 public function handleRequest(SS_HTTPRequest $request, DataModel $model = null)
 {
     $action = $request->param('Action');
     $res = parent::handleRequest($request, $model);
     if (!$action && AllInOneHelper::shouldProcess($request, $res->getStatusCode())) {
         $request->setUrl(self::get_homepage_link() . '/');
         $request->match('$URLSegment//$Action', true);
         $tmpContoller = Injector::inst()->create("AllInOneModelAsController");
         if ($this->session) {
             $tmpContoller->setSession($this->session);
         }
         $res = $tmpContoller->handleRequest($request, $model);
     }
     return $res;
 }
 public function handleRequest(SS_HTTPRequest $request, DataModel $model)
 {
     $action = $request->param('Action');
     $result = parent::handleRequest($request, $model);
     if (!$action && AllInOneHelper::shouldProcess($request, $result->getStatusCode())) {
         $realController = $this->getNestedController();
         $parentId = intval($realController->ParentID);
         $currentPageId = intval($realController->ID);
         if ($parentId === 0 && !AllInOneHelper::isPageIdExluded($currentPageId)) {
             $jsMin = Director::isDev() ? "" : ".min";
             Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery' . $jsMin . '.js');
             Requirements::javascript(THIRDPARTY_DIR . '/jquery-ui/jquery-ui' . $jsMin . '.js');
             Requirements::javascript(THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js');
             Requirements::javascript('silverstripe-all-in-one-page/javascript/dist/AllInOnePage' . $jsMin . '.js');
             $tmpContoller = Injector::inst()->create("AllInOnePage_Controller", $realController->data());
             if ($this->session) {
                 $tmpContoller->setSession($this->session);
             }
             $result = $tmpContoller->handleRequest($this->request, $model);
         }
     }
     return $result;
 }
 public function SetDefaultExlcuded()
 {
     foreach (SiteTree::get()->filter(array('ClassName' => self::$DEFAULT_EXCLUDE_CALSSES, "ID:not" => AllInOneHelper::excludedPageIds())) as $ExcludedPage) {
         $this->owner->AllInOneExludedPages()->Add($ExcludedPage);
     }
 }