Example #1
0
 /**
  * Save new page.
  *
  * @param array $values
  * @return Page
  */
 public static function saveNewPage(array $values)
 {
     $subpage = new Page();
     $subpage->setUid(Helper::getUniqueId());
     $subpage->setVisible($values['visible']);
     $subpage->setEnabled($values['enabled']);
     $subpage->setIncludeInIndex($values['index']);
     if ($values['parent_page_id'] == '@root' && !PageQuery::create()->findRoot()) {
         // Create root node
         $subpage->makeRoot();
         $subpage->setName($values['name']);
         $subpage->setUrl('/');
         // Grant everyone access
         $pageAccess = new PageAccess();
         $pageAccess->setPage($subpage);
         $permissions = PageAccess::getPermissionTypes();
         $grant = array_fill(0, count($permissions), true);
         $pageAccess->fromArray(array_combine($permissions, $grant));
     } else {
         $parentPage = PageQuery::create()->findPk($values['parent_page_id']);
         $subpage->insertAsLastChildOf($parentPage);
         $subpage->setAutoName($values['name']);
     }
     $subpage->save();
     return $subpage;
 }
 public static function createPage($id, $name, $title, $description, $order)
 {
     $newPage = new Page();
     $newPage->setId($id);
     $newPage->setName($name);
     $newPage->setTitel($title);
     $newPage->setDescription($description);
     $newPage->setOrder($order);
     return $newPage;
 }
Example #3
0
 private static function initializeRootPage()
 {
     $oRootPage = new Page();
     $oRootPage->makeRoot();
     $oRootPage->setName('root');
     $oRootPage->setIsInactive(false);
     $oRootPage->setPageType('default');
     $oRootPage->setTemplateName(null);
     $oFirstUser = UserQuery::create()->findOne();
     $oFirstUserId = $oFirstUser !== null ? $oFirstUser->getId() : 0;
     $oRootPage->setCreatedBy($oFirstUserId);
     $oRootPage->setUpdatedBy($oFirstUserId);
     $sPageString = new PageString();
     $sPageString->setLanguageId(Settings::getSetting("session_default", Session::SESSION_LANGUAGE_KEY, 'de'));
     $sPageString->setPageTitle('Home');
     $sPageString->setIsInactive(false);
     $oRootPage->addPageString($sPageString);
     $oRootPage->save();
     return $oRootPage;
 }
Example #4
0
         $content .= '</tr>';
     }
     $content .= "</table>";
     $app->render('page.twig', array('content' => $content));
 })->name('list-pages');
 # Add routes for all pages.
 $app->map('/add-page/', function () use($app, $entityManager) {
     $content = array();
     if ($app->request->isPost()) {
         $content['name'] = $_POST['name'];
         $content['slug'] = $_POST['slug'];
         $content['content'] = $_POST['content'];
         $content['excerpt'] = $_POST['excerpt'];
         if (functions\CSRF::check($_POST['csrf'])) {
             $page = new Page();
             $page->setName($content['name']);
             $page->setSlug($content['slug'], $entityManager);
             $page->setContent($content['content']);
             $page->setExcerpt($content['excerpt']);
             $entityManager->persist($page);
             $entityManager->flush();
             $app->flash('message', 'Page Added Successfully!');
             $app->redirect($app->urlFor('message'));
         }
     }
     $app->render('pages/page-form.twig', array('content' => $content, 'csrf' => functions\CSRF::generate()));
 })->via('GET', 'POST')->name('add-page');
 $app->map('/pages/edit/:id/', function ($id) use($app, $entityManager) {
     $page = $entityManager->find('Page', $id);
     $content = array('name' => $page->getName(), 'slug' => $page->getSlug(), 'content' => $page->getContent(), 'excerpt' => $page->getExcerpt(), 'id' => $page->getId());
     if ($app->request->isPost()) {
 function convertToPage(&$logged_user, &$error)
 {
     db_begin_work();
     $page = new Page();
     $page->setProjectId($this->getProjectId());
     $page->setName($this->getName());
     $body = $this->getBody();
     if (empty($body)) {
         $body = 'page Content missing';
     }
     $page->setBody($body);
     $page->setState($this->getState());
     $page->setVisibility($this->getVisibility());
     $page->setPriority($this->getPriority());
     $page->setCommentsCount($this->getCommentsCount());
     $page->setIsLocked($this->getIsLocked());
     $page->setCreatedById($logged_user->getId());
     $page->setCreatedByName($logged_user->getName());
     $page->setCreatedByEmail($logged_user->getEmail());
     $save = $page->save();
     if ($save && !is_error($save)) {
         db_commit();
         $page->ready();
         $link = mysql_connect(DB_HOST, DB_USER, DB_PASS);
         mysql_select_db(DB_NAME);
         $query = "update healingcrystals_project_objects set parent_id='" . $page->getId() . "', parent_type='Page' where parent_id='" . $this->getId() . "' and project_id='" . $this->getProjectId() . "' and type in ('Comment', 'Task')";
         mysql_query($query);
         $query = "update healingcrystals_project_objects set parent_id=null, parent_type=null where parent_id='" . $this->getId() . "' and project_id='" . $this->getProjectId() . "' and type not in ('Comment', 'Task')";
         mysql_query($query);
         $query = "select * from healingcrystals_assignments where object_id='" . $this->getId() . "'";
         $result = mysql_query($query);
         while ($entry = mysql_fetch_assoc($result)) {
             $query = "insert into healingcrystals_assignments (user_id, object_id, is_owner) values ('" . $entry['user_id'] . "', '" . $page->getId() . "', '" . $entry['is_owner'] . "')";
             mysql_query($query);
         }
         $query = "select * from healingcrystals_project_object_categories where object_id='" . $this->getId() . "'";
         $result = mysql_query($query);
         while ($entry = mysql_fetch_assoc($result)) {
             $query = "insert ignore into healingcrystals_project_object_categories (object_id, category_id) values ('" . $page->getId() . "', '" . $entry['category_id'] . "')";
             mysql_query($query);
         }
         mysql_close($link);
         $this->moveToTrash();
         return $page->getId();
     } else {
         db_rollback();
         $error = $save;
         return '';
     }
 }
Example #6
0
 public function saveConfiguration($values)
 {
     // Restore database from backup?
     if ($values['template'] == 'backup') {
         if (!Curry_Backend_DatabaseHelper::restoreFromFile('db.txt')) {
             $this->addMessage('Unable to restore database content from db.txt', self::MSG_WARNING);
         }
     }
     // Create admin user
     if ($values['admin']['username']) {
         $access = array('*', 'Curry_Backend_Content/*');
         $adminRole = self::createRole('Super', $access);
         $adminUser = self::createUser($values['admin']['username'], $values['admin']['password'], $adminRole);
         if ($adminUser->isNew()) {
             self::createFilebrowserAccess($adminRole, 'Root', '');
         }
         $adminUser->save();
     }
     // Create light user
     if ($values['user']['username']) {
         $access = array('Curry_Backend_FileBrowser', 'Curry_Backend_Page', 'Curry_Backend_Profile', 'Curry_Backend_Translations', 'Curry_Backend_Content/*');
         $userRole = self::createRole('User', $access);
         $user = self::createUser($values['user']['username'], $values['user']['password'], $userRole);
         if ($user->isNew()) {
             $user->save();
             self::createFilebrowserAccess($user, 'Home', 'user-content/' . $user->getUserId() . '/');
             self::createFilebrowserAccess($userRole, 'Shared', 'content/');
         }
         $user->save();
     }
     if ($values['template'] != 'backup') {
         // 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();
         }
         $page = new Page();
         $page->setName("Home");
         $page->setURL("/");
         $page->setVisible(true);
         $page->setEnabled(true);
         $page->makeRoot();
         $page->save();
         $page->createDefaultRevisions();
         $page->save();
         $pageRev = $page->getWorkingPageRevision();
         $pageRev->setTemplate('Root.html');
         $pageRev->save();
         $pa = new PageAccess();
         $pa->setPage($page);
         $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();
     }
     // Create template root
     $templateRoot = Curry_Core::$config->curry->template->root;
     if (!file_exists($templateRoot)) {
         @mkdir($templateRoot, 0777, true);
     }
     switch ($values['template']) {
         case 'empty':
         case 'curry':
             $source = Curry_Util::path(Curry_Core::$config->curry->wwwPath, 'shared', 'backend', 'common', 'templates', 'project-empty.html');
             $templateFile = Curry_Util::path($templateRoot, 'Root.html');
             if (!file_exists($templateFile)) {
                 @copy($source, $templateFile);
             }
             break;
         case 'twitter-bootstrap':
         case 'html5boilerplate':
     }
     if (file_exists(Curry_Core::$config->curry->configPath)) {
         $config = new Zend_Config(require Curry_Core::$config->curry->configPath, true);
         $config->curry->name = $values['name'];
         $config->curry->adminEmail = $values['email'];
         if ($values['base_url']) {
             $config->curry->baseUrl = $values['base_url'];
         } else {
             unset($config->curry->baseUrl);
         }
         $config->curry->developmentMode = (bool) $values['development_mode'];
         $config->curry->secret = sha1(uniqid(mt_rand(), true) . microtime());
         $writer = new Zend_Config_Writer_Array();
         $writer->write(Curry_Core::$config->curry->configPath, $config);
     }
     return true;
 }
Example #7
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;
 }
 public function createPage($iParentId, $sPageName)
 {
     $oParentPage = PageQuery::create()->findPk($iParentId);
     if ($oParentPage == null) {
         $oParentPage = PagePeer::getRootPage();
     }
     $sPageTitle = $sPageName;
     $sPageName = StringUtil::normalizeToASCII($sPageName);
     if (!$sPageName) {
         // If all we have are special chars, leave the page name as is and only normalize minimally
         $sPageName = $sPageTitle;
     }
     $sPageName = StringUtil::normalizePath($sPageName);
     if (PagePeer::pageIsNotUnique($sPageName, $oParentPage)) {
         $oFlash = Flash::getFlash();
         $oFlash->addMessage('page.name_unique_required');
         $oFlash->finishReporting();
         throw new ValidationException($oFlash);
     }
     $oPage = new Page();
     $oPage->setName($sPageName);
     $oPageString = new PageString();
     $oPageString->setLanguageId(AdminManager::getContentLanguage());
     $oPageString->setIsInactive(false);
     $oPageString->setLinkText(null);
     $oPageString->setPageTitle($sPageTitle);
     $oPage->addPageString($oPageString);
     $oPage->setPageType('default');
     $oPage->setTemplateName($oParentPage->getTemplateName());
     $oPage->setIsInactive(true);
     $oPage->insertAsLastChildOf($oParentPage);
     return $oPage->save();
 }