Example #1
0
 /**
  * Get "copy code" for page.
  *
  * @param Page $page
  * @return array
  */
 public static function getPageCode(Page $page)
 {
     $pages = array();
     foreach ($page->getChildren() as $child) {
         $pages[] = self::getPageCode($child);
     }
     return array("id" => $page->getPageId(), "uid" => $page->getUid(), "name" => $page->getName(), "url" => $page->getUrl(), "visible" => $page->getVisible(), "enabled" => $page->getEnabled(), "include_in_index" => $page->getIncludeInIndex(), "redirect_method" => $page->getRedirectMethod(), "redirect_page" => $page->getRedirectPage() ? $page->getRedirectPage()->getUrl() : null, "redirect_url" => $page->getRedirectUrl(), "model_route" => $page->getModelRoute(), "meta" => self::getMetadataCode($page), "image" => $page->getImage(), "langcode" => $page->getLangcode(), "generator" => $page->getGenerator(), "encoding" => $page->getEncoding(), "revision" => $page->getActivePageRevision() ? self::getPageRevisionCode($page->getActivePageRevision()) : null, "modified" => $page->getLastModified(), "pages" => $pages);
 }
Example #2
0
 /**
  * Get page properties form.
  *
  * @param Page $page
  * @return Curry_Form
  */
 public static function getPagePropertiesForm(Page $page)
 {
     $form = new Curry_Form(array('action' => url('', array("module", "view", "page_id")), 'method' => 'post', 'elements' => array('pid_properties' => array('hidden'), 'name' => array('text', array('label' => 'Name', 'required' => true, 'value' => $page->getName(), 'description' => 'The name of the page is shown in menus. It\'s also used to generate the default title and URL for the page.')), 'url' => array('text', array('label' => 'URL', 'value' => $page->getUrl(), 'description' => 'The URL of the page. Subpages will be based on this URL.')), 'enabled' => array('checkbox', array('label' => 'Active', 'value' => $page->getEnabled(), 'description' => 'Only active pages can be accessed.')), 'visible' => array('checkbox', array('label' => 'Show in menu', 'value' => $page->getVisible(), 'description' => 'Enable this if you want the page to show up in menus.')), 'index' => array('checkbox', array('label' => 'Include in search index', 'value' => $page->getIncludeInIndex(), 'description' => 'Disable this if you dont want the page to be included in search results.')))));
     $redirectValue = null;
     if ($page->getRedirectUrl()) {
         $redirectValue = "external";
     } else {
         if ($page->getRedirectPageId()) {
             $redirectValue = $page->getRedirectPageId();
         } else {
             $redirectValue = "";
         }
     }
     // first-subpage
     $form->addSubForm(new Curry_Form_SubForm(array('legend' => 'Redirect', 'class' => $page->getRedirectMethod() ? '' : 'advanced', 'elements' => array('method' => array('select', array('label' => 'Method', 'multiOptions' => array('' => '[ None ]', PagePeer::REDIRECT_METHOD_CLONE => 'Clone', PagePeer::REDIRECT_METHOD_PERMANENT => 'Permanent redirect (301)', PagePeer::REDIRECT_METHOD_TEMPORARY => 'Temporary redirect (302)'), 'value' => $page->getRedirectMethod(), 'onchange' => '$("#redirect-page_id").attr("disabled", this.value == "").change();')), 'page_id' => array('select', array('label' => 'Page', 'multiOptions' => array("" => '[ First subpage ]', 'external' => '[ External ]') + PagePeer::getSelect(), 'value' => $redirectValue, 'onchange' => '$("#redirect-url").attr("disabled", $(this).attr("disabled") || this.value != "external");', 'disabled' => !$page->getRedirectMethod() ? 'disabled' : null)), 'url' => array('text', array('label' => 'External URL', 'value' => $page->getRedirectUrl() ? $page->getRedirectUrl() : 'http://', 'disabled' => !$page->getRedirectMethod() || $redirectValue != 'external' ? 'disabled' : null))))), 'redirect');
     // Base page
     $advanced = Curry_Backend_Page::getPagePermission($page, PageAccessPeer::PERM_MODULES);
     $pageRevision = $page->getPageRevision();
     list($basePageElement, $basePreviewElement) = self::getBasePageSelect($page, $pageRevision->getBasePageId(), $advanced);
     // Template
     $templates = Curry_Backend_Template::getTemplateSelect();
     if ($pageRevision->getInheritRevision()) {
         $template = $pageRevision->getInheritRevision()->getInheritedProperty('Template', 'Undefined', false);
         $templates = array('' => '[ Inherited: ' . $template . ' ]') + $templates;
     } else {
         $templates = array('' => '[ None ]') + $templates;
     }
     $form->addSubForm(new Curry_Form_SubForm(array('legend' => 'Base page', 'class' => 'advanced', 'elements' => array('base_page_id' => $basePageElement, 'base_page_preview' => $basePreviewElement))), 'base_page');
     $form->addSubForm(new Curry_Form_SubForm(array('legend' => 'Advanced', 'class' => 'advanced', 'elements' => array('image' => array('previewImage', array('label' => 'Image', 'value' => $page->getImage(), 'description' => 'Select an image to represent the page. This will show up when selecting base page.')), 'template' => array('select', array('label' => 'Page template', 'multiOptions' => $templates, 'value' => (string) $pageRevision->getTemplate(), 'description' => 'Override page template inherited from base page.')), 'langcode' => array('select', array('label' => 'Language', 'value' => $page->getLangcode(), 'multiOptions' => array('' => 'None (Inherit from parent)') + LanguageQuery::create()->find()->toKeyValue('Langcode', 'Name'), 'description' => 'Language of page. Inherited from closest parent if not set.')), 'model_route' => array('text', array('label' => 'Model route', 'value' => $page->getModelRoute(), 'description' => 'The model class used for routing.')), 'cache_lifetime' => array('text', array('label' => 'Cache lifetime', 'value' => $page->getCacheLifetime(), 'description' => 'Full page caching, specified in seconds (0 to disable, -1 for infinity).')), 'generator' => array('text', array('label' => 'Generator', 'value' => $page->getGenerator(), 'placeholder' => \Curry\App::getInstance()['defaultGeneratorClass']))))), 'advanced');
     $form->addElement('submit', 'Save');
     return $form;
 }