Example #1
0
 /**
  * Save page properties.
  *
  * @param Page $page
  * @param array $values
  */
 public static function savePageProperties(Page $page, array $values)
 {
     $urlChanged = $page->getUrl() != $values['url'];
     $page->setAutoName($values['name']);
     $page->setEnabled($values['enabled']);
     $page->setVisible($values['visible']);
     $page->setIncludeInIndex($values['index']);
     // Redirection
     $v = $values['redirect'];
     $page->setRedirectMethod($v['method'] ? $v['method'] : null);
     if ($v['page_id'] == 'external') {
         $page->setRedirectUrl($v['url']);
     } else {
         $redirectPageId = (int) $v['page_id'];
         $page->setRedirectPageId($redirectPageId ? $redirectPageId : null);
         $page->setRedirectUrl(null);
     }
     // Base page and template
     $v = $values['base_page'];
     $pageRevision = $page->getPageRevision();
     $pageRevision->setBasePageId($v['base_page_id'] ? (int) $v['base_page_id'] : null);
     // Advanced
     $v = $values['advanced'];
     $page->setImage($v['image']);
     $pageRevision->setTemplate($v['template'] ? $v['template'] : null);
     $page->setLangcode(strlen($v['langcode']) ? $v['langcode'] : null);
     $page->setModelRoute($v['model_route'] ? $v['model_route'] : null);
     $page->setCacheLifetime((int) $v['cache_lifetime']);
     $page->setGenerator(strlen($v['generator']) ? $v['generator'] : null);
     $page->setEncoding(strlen($v['encoding']) ? $v['encoding'] : null);
     // Save page/revision
     $pageRevision->save();
     $page->save();
     // Update url recursively
     if (empty($values['url'])) {
         // reset url
         $page->setUrlRecurse($page->getExpectedUrl());
     } else {
         if ($urlChanged) {
             // set new url
             $url = $values['url'];
             if (substr($url, -1) != '/') {
                 $url .= '/';
             }
             if ($url != '/' && substr($url, 0, 1) == '/') {
                 $url = substr($url, 1);
             }
             $page->setUrlRecurse($url);
         }
     }
 }
Example #2
0
 public function saveConfiguration($values)
 {
     // Create admin role
     $access = array('*', 'Curry_Backend_Content/*');
     $adminRole = self::createRole('Administrator', $access);
     if ($adminRole->isNew()) {
         self::createFilebrowserAccess($adminRole, 'Root', '');
     }
     // Create editor role
     $access = array('Curry_Backend_FileBrowser', 'Curry_Backend_Page', 'Curry_Backend_Profile', 'Curry_Backend_Translations', 'Curry_Backend_Content/*');
     $editorRole = self::createRole('Editor', $access);
     if ($editorRole->isNew()) {
         self::createFilebrowserAccess($editorRole, 'Shared', 'content/shared/');
     }
     // Create admin user
     if ($values['admin']['username']) {
         $adminUser = self::createUser($values['admin']['username'], $values['admin']['password'], $adminRole);
         $adminUser->save();
     }
     // Create default meta-data items
     $metadatas = array('Title' => 'text', 'Keywords' => 'textarea', 'Description' => 'textarea', 'Image' => 'previewImage');
     foreach ($metadatas as $name => $type) {
         $metadata = new \Metadata();
         $metadata->setName($name);
         $metadata->setDisplayName($name);
         $metadata->setType($type);
         $metadata->save();
     }
     // Create pages
     $rootPage = new \Page();
     $rootPage->setName("Root");
     $rootPage->setURL("root/");
     $rootPage->setVisible(true);
     $rootPage->setEnabled(true);
     $rootPage->makeRoot();
     $rootPage->save();
     $rootPage->createDefaultRevisions($rootPage);
     $rootPage->save();
     $templatePage = new \Page();
     $templatePage->setName('Templates');
     $templatePage->setURL("templates/");
     $templatePage->setIncludeInIndex(false);
     $templatePage->insertAsLastChildOf($rootPage);
     $templatePage->save();
     $templatePage->createDefaultRevisions();
     $pageRevision = $templatePage->getWorkingPageRevision();
     $pageRevision->setTemplate('Root.html.twig');
     $templatePage->save();
     $homePage = new \Page();
     $homePage->setName('Home');
     $homePage->setURL("/");
     $homePage->setVisible(true);
     $homePage->setEnabled(true);
     $homePage->insertAsLastChildOf($rootPage);
     $homePage->save();
     $homePage->createDefaultRevisions($templatePage);
     $homePage->save();
     // Create page access objects
     $pa = new \PageAccess();
     $pa->setUserRole($adminRole);
     $pa->setPage($rootPage);
     $pa->setPermSubpages(true);
     $pa->setPermVisible(true);
     $pa->setPermCreatePage(true);
     $pa->setPermCreateModule(true);
     $pa->setPermPublish(true);
     $pa->setPermProperties(true);
     $pa->setPermContent(true);
     $pa->setPermMeta(true);
     $pa->setPermModules(true);
     $pa->setPermRevisions(true);
     $pa->setPermPermissions(true);
     $pa->save();
     $pa = new \PageAccess();
     $pa->setUserRole($editorRole);
     $pa->setPage($rootPage);
     $pa->setPermSubpages(true);
     $pa->setPermVisible(true);
     $pa->setPermCreatePage(true);
     $pa->setPermCreateModule(true);
     $pa->setPermPublish(true);
     $pa->setPermProperties(true);
     $pa->setPermContent(true);
     $pa->setPermMeta(true);
     $pa->setPermModules(true);
     $pa->setPermRevisions(true);
     $pa->setPermPermissions(false);
     $pa->save();
     $pa = new \PageAccess();
     $pa->setUserRole($editorRole);
     $pa->setPage($templatePage);
     $pa->setPermSubpages(true);
     $pa->setPermVisible(false);
     $pa->setPermCreatePage(false);
     $pa->setPermCreateModule(false);
     $pa->setPermPublish(false);
     $pa->setPermProperties(false);
     $pa->setPermContent(false);
     $pa->setPermMeta(false);
     $pa->setPermModules(false);
     $pa->setPermRevisions(false);
     $pa->setPermPermissions(false);
     $pa->save();
     // Create template root
     $templateRoot = $this->app['template.root'];
     if (!file_exists($templateRoot)) {
         @mkdir($templateRoot, 0777, true);
     }
     if (file_exists($this->app['configPath'])) {
         $config = $this->app->openConfiguration();
         $config->name = $values['name'];
         $config->adminEmail = $values['email'];
         if (!isset($config->backend)) {
             $config->backend = array();
         }
         $config->backend->templatePage = $templatePage->getPageId();
         if ($values['base_url']) {
             $config->baseUrl = $values['base_url'];
         } else {
             unset($config->baseUrl);
         }
         $config->developmentMode = (bool) $values['development_mode'];
         $config->secret = sha1(uniqid(mt_rand(), true) . microtime());
         $this->app->writeConfiguration($config);
     }
     return true;
 }