static function form($object = null)
 {
     $form = new form();
     if (!isset($object->id)) {
         $object->name = '';
         $object->active = 1;
         $object->public = 1;
         $object->subtheme = '';
         $object->page_title = SITE_TITLE;
         $object->keywords = SITE_KEYWORDS;
         $object->description = SITE_DESCRIPTION;
         if (!isset($object->parent)) {
             $object->parent = 0;
         }
         // NOT IMPLEMENTED YET
         //$object->subtheme='';
     } else {
         $form->meta('id', $object->id);
     }
     $form->meta('parent', $object->parent);
     $form->register('name', gt('Name'), new textcontrol($object->name));
     if (!isset($object->id) && $object->parent != 0) {
         // Add the 'Add' drop down if not a top level
         global $db;
         $sections = $db->selectObjects('section_template', 'parent=' . $object->parent);
         if (count($sections)) {
             $sections = expSorter::sort(array('array' => $sections, 'sortby' => 'rank', 'order' => 'ASC'));
             $dd = array(gt('At the Top'));
             foreach ($sections as $s) {
                 $dd[] = sprintf(gt('After') . " %s", $s->name);
             }
             $form->register('rank', gt('Position'), new dropdowncontrol(count($dd) - 1, $dd));
         } else {
             $form->meta('rank', 0);
         }
     } else {
         $form->meta('rank', 0);
     }
     if (is_readable(THEME_ABSOLUTE . 'subthemes')) {
         // grab sub themes
         $form->register('subtheme', gt('Theme Variation'), new dropdowncontrol($object->subtheme, expTheme::getSubThemes()));
     }
     $form->register('active', gt('Active'), new checkboxcontrol($object->active));
     $form->register('public', gt('Public'), new checkboxcontrol($object->public));
     // Register the Page Meta Data controls.
     $form->register('page_title', gt('Page Title'), new textcontrol($object->page_title));
     $form->register('keywords', gt('keywords'), new texteditorcontrol($object->keywords, 5, 25));
     $form->register('description', gt('Page Description'), new texteditorcontrol($object->keywords, 5, 25));
     $form->register('submit', '', new buttongroupcontrol(gt('Save'), '', gt('Cancel')));
     return $form;
 }
Exemple #2
0
 /**
  * Content Page Form method
  *
  * This method returns a Form object to be used when allowing the user
  * to create a new normal Content Page or edit an existing one.
  *
  * @param Object $object The section object to build the form from.
  *
  * @return Form A form object that can be used to create a new section, or
  *    edit an existing one.
  */
 static function form($object = null)
 {
     // Initialize the forms subsystem for use.
     // Grab the basic form that all page types share
     // This has the name and positional dropdowns registered.
     // This call also initializes the section object, if it is not an existing section.
     $form = section::_commonForm($object);
     // Register the 'Active?' and 'Public?' checkboxes.
     $form->register('active', gt('Active'), new checkboxcontrol($object->active));
     $form->register('public', gt('Public'), new checkboxcontrol($object->public));
     // Register the sub themes dropdown.
     $form->register('subtheme', gt('Theme Variation'), new dropdowncontrol($object->subtheme, expTheme::getSubThemes()));
     // Register the 'Secured?' checkboxes for SSL pages
     if (ENABLE_SSL) {
         $form->register('secured', "Secured?", new checkboxcontrol($object->secured));
     }
     $form->register(null, '', new htmlcontrol('<h2>SEO Information</h2>'));
     // Register the Page Meta Data controls.
     $form->register('page_title', gt('Page Title'), new textcontrol($object->page_title));
     $form->register('keywords', gt('Keywords'), new texteditorcontrol($object->keywords, 5));
     $form->register('description', gt('Page Description'), new texteditorcontrol($object->description, 5));
     // Add a Submit / Cancel button.
     $form->register('submit', '', new buttongroupcontrol(gt('Save'), '', gt('Cancel')));
     // Return the form to the calling scope (usually an action in the navigation module).
     return $form;
 }