コード例 #1
0
ファイル: Blog_Form.php プロジェクト: HaldunA/phpwebsite
 /**
  * @param boolean limited   If true, use anonymous submission form
  */
 public static function edit(Blog $blog, $version_id = NULL, $limited = false)
 {
     javascriptMod('blog', 'image_url');
     if ($limited) {
         throw new \Exception('');
     }
     $form = new PHPWS_Form('edit-blog');
     $form->addHidden('module', 'blog');
     $form->addHidden('action', 'admin');
     $form->addHidden('command', 'post_entry');
     if ($blog->id) {
         $form->addHidden('blog_id', $blog->id);
         $form->addSubmit('submit', dgettext('blog', 'Update entry'));
     } else {
         $form->addSubmit('submit', dgettext('blog', 'Add entry'));
     }
     $link_choices['none'] = dgettext('blog', 'No link and ignore image link setting');
     $link_choices['default'] = dgettext('blog', 'No link but allow image link setting');
     $link_choices['readmore'] = dgettext('blog', 'Link to read more');
     $link_choices['parent'] = dgettext('blog', 'Link resized image to parent');
     $link_choices['url'] = dgettext('blog', 'Link the url below');
     $form->addText('title', $blog->title);
     $form->setSize('title', 40);
     $form->setLabel('title', dgettext('blog', 'Title'));
     $form->setRequired('title');
     $form->addTextArea('summary', $blog->getSummaryAndEntry(false));
     if (!$limited) {
         $form->useEditor('summary');
     }
     $form->setRows('summary', '10');
     $form->setCols('summary', '60');
     $form->setLabel('summary', dgettext('blog', 'Content'));
     javascript('datetimepicker', null, false, true, true);
     $form->addText('publish_date', $blog->getPublishDate('%Y/%m/%d %H:%M'));
     $form->setLabel('publish_date', dgettext('blog', 'Publish date/time'));
     $form->setSize('publish_date', 20);
     $form->setClass('publish_date', 'datetimepicker');
     $form->addText('expire_date', $blog->getExpireDate());
     $form->setLabel('expire_date', dgettext('blog', 'Expire date/time'));
     $form->setSize('expire_date', 20);
     $form->setClass('expire_date', 'datetimepicker');
     $template = $form->getTemplate();
     $jscal['date_name'] = 'expire_date';
     $template['EXAMPLE'] = 'YYYY/MM/DD HH:MM';
     if ($blog->_error) {
         $template['MESSAGE'] = implode('<br />', $blog->_error);
     }
     $template['REMINDER'] = dgettext('blog', 'Add a horizontal rule to separate content into summary and body');
     return PHPWS_Template::process($template, 'blog', 'edit.tpl');
 }
コード例 #2
0
ファイル: Block_Admin.php プロジェクト: HaldunA/phpwebsite
 public static function edit(Block_Item $block, $js = FALSE)
 {
     javascript('jquery');
     javascript('ckeditor');
     $form = new PHPWS_Form('block-form');
     $form->addHidden('module', 'block');
     $form->addCheck('hide_title', 1);
     $form->setMatch('hide_title', $block->hide_title);
     $form->setLabel('hide_title', dgettext('block', 'Hide title'));
     $form->addCheck('hide_narrow', 1);
     $form->setMatch('hide_narrow', $block->hide_narrow);
     $form->setLabel('hide_narrow', dgettext('block', 'Hide when width &lt; 768px'));
     $form->addTextArea('block_content', $block->getContent(false));
     $form->setRows('block_content', '10');
     $form->setWidth('block_content', '80%');
     $form->setLabel('block_content', dgettext('block', 'Entry'));
     if ($js) {
         if (isset($_REQUEST['key_id']) && is_numeric($_REQUEST['key_id'])) {
             $key_id = (int) $_REQUEST['key_id'];
         } else {
             $key_id = 0;
         }
         $form->addHidden('key_id', $key_id);
         $form->addHidden('action', 'postJSBlock');
         $pdb = Database::newDB();
         $pdb->addTable('block_pinned');
         $all_pinned = $pdb->select();
         if (!empty($all_pinned)) {
             $pinned = new \Variable\Arr($all_pinned);
             $pinned->indexByColumn('block_id', true, 'key_id');
             $pinned_keys = $pinned->get();
         } else {
             $pinned_keys = null;
         }
         $db = Database::newDB();
         $blocks = $db->addTable('block');
         $blocks->addField('id');
         $blocks->addOrderBy($blocks->addField('title'));
         $db->loadSelectStatement();
         while ($b = $db->fetch()) {
             /**
              * Checking here to see if this block is already set for the current
              * key OR is this block is set to show everywhere. If either,
              * then don't add to select list.
              */
             if (!empty($pinned_keys)) {
                 if (isset($pinned_keys[$b['id']])) {
                     if (in_array($key_id, $pinned_keys[$b['id']]) || in_array('-1', $pinned_keys[$b['id']])) {
                         continue;
                     }
                 }
             }
             $block_options[$b['id']] = $b['title'];
         }
         if (!empty($block_options)) {
             $form->addSelect('block_list', $block_options);
             $form->addSubmit('pick_block', 'Add this block to the page');
         }
     } else {
         $form->useEditor('block_content');
         $form->addHidden('action', 'postBlock');
         if (empty($block->id)) {
             $form->addSubmit('submit', dgettext('block', 'Save New Block'));
         } else {
             $form->addHidden('block_id', $block->getId());
             $form->addSubmit('submit', dgettext('block', 'Update Current Block'));
         }
     }
     $form->addText('title', $block->getTitle());
     $form->setLabel('title', dgettext('block', 'Title'));
     $form->setSize('title', 50);
     $template = $form->getTemplate();
     if ($js) {
         if (!empty($block_options)) {
             $template['ALTERNATIVE'] = t('or create new block below');
         }
         $content = PHPWS_Template::process($template, 'block', 'js_edit.tpl');
     } else {
         $content = PHPWS_Template::process($template, 'block', 'edit.tpl');
     }
     return $content;
 }
コード例 #3
0
ファイル: Admin.php プロジェクト: par-orillonsoft/phpwebsite
 /**
  * Creates the edit form for an event
  */
 public static function event_form(Calendar_Event $event, $suggest = false)
 {
     Layout::addStyle('calendar');
     javascript('datetimepicker');
     // the form id is linked to the check_date javascript
     $form = new PHPWS_Form('event_form');
     if (isset($_REQUEST['js'])) {
         $form->addHidden('js', 1);
     }
     $form->addHidden('module', 'calendar');
     if ($suggest) {
         $form->addHidden('uop', 'post_suggestion');
     } else {
         $form->addHidden('aop', 'post_event');
     }
     $form->addHidden('event_id', $event->id);
     $form->addHidden('sch_id', $event->_schedule->id);
     $form->addText('summary', $event->summary);
     $form->setLabel('summary', dgettext('calendar', 'Summary'));
     $form->setSize('summary', 60);
     $form->addText('location', $event->location);
     $form->setLabel('location', dgettext('calendar', 'Location'));
     $form->setSize('location', 60);
     $form->addText('loc_link', $event->loc_link);
     $form->setLabel('loc_link', dgettext('calendar', 'Location link'));
     $form->setSize('loc_link', 60);
     $form->addTextArea('description', $event->description);
     if ($suggest) {
         $form->setRows('description', 8);
         $form->setCols('description', 55);
     } else {
         $form->useEditor('description');
     }
     $form->setLabel('description', dgettext('calendar', 'Description'));
     $form->addText('start_date', $event->getStartTime('%Y/%m/%d'));
     $form->setLabel('start_date', dgettext('calendar', 'Start time'));
     $form->setExtra('start_date', 'onblur="check_start_date()"');
     $form->addText('end_date', $event->getEndTime('%Y/%m/%d'));
     $form->setLabel('end_date', dgettext('calendar', 'End time'));
     $form->setExtra('end_date', 'onblur="check_end_date()" onfocus="check_start_date()"');
     $event->timeForm('start_time', $event->start_time, $form);
     $event->timeForm('end_time', $event->end_time, $form);
     $form->setExtra('start_time_hour', 'onchange="check_start_date()"');
     $form->setExtra('end_time_hour', 'onchange="check_end_date()"');
     $form->addCheck('all_day', 1);
     $form->setMatch('all_day', $event->all_day);
     $form->setLabel('all_day', dgettext('calendar', 'All day event'));
     $form->setExtra('all_day', 'onchange="alter_date(this)"');
     if (!$suggest) {
         $form->addCheck('show_busy', 1);
         $form->setMatch('show_busy', $event->show_busy);
         $form->setLabel('show_busy', dgettext('calendar', 'Show busy'));
     }
     if ($suggest) {
         $form->addSubmit('save', dgettext('calendar', 'Suggest event'));
     } else {
         // Suggested events are not allowed repeats
         /**
          * Repeat form elements
          */
         $form->addCheck('repeat_event', 1);
         $form->setLabel('repeat_event', dgettext('calendar', 'Make a repeating event'));
         $form->addText('end_repeat_date', $event->getEndRepeat('%Y/%m/%d'));
         $form->setLabel('end_repeat_date', dgettext('calendar', 'Repeat event until:'));
         $modes = array('daily', 'weekly', 'monthly', 'yearly', 'every');
         $modes_label = array(dgettext('calendar', 'Daily'), dgettext('calendar', 'Weekly'), dgettext('calendar', 'Monthly'), dgettext('calendar', 'Yearly'), dgettext('calendar', 'Every'));
         $form->addRadio('repeat_mode', $modes);
         $form->setLabel('repeat_mode', $modes_label);
         $weekdays = array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7);
         $weekday_labels = array(1 => strftime('%A', mktime(0, 0, 0, 1, 5, 1970)), 2 => strftime('%A', mktime(0, 0, 0, 1, 6, 1970)), 3 => strftime('%A', mktime(0, 0, 0, 1, 7, 1970)), 4 => strftime('%A', mktime(0, 0, 0, 1, 8, 1970)), 5 => strftime('%A', mktime(0, 0, 0, 1, 9, 1970)), 6 => strftime('%A', mktime(0, 0, 0, 1, 10, 1970)), 7 => strftime('%A', mktime(0, 0, 0, 1, 11, 1970)));
         $form->addCheck('weekday_repeat', $weekdays);
         $form->setLabel('weekday_repeat', $weekday_labels);
         $monthly = array('begin' => dgettext('calendar', 'Beginning of each month'), 'end' => dgettext('calendar', 'End of each month'), 'start' => dgettext('calendar', 'Every month on start date'));
         $form->addSelect('monthly_repeat', $monthly);
         $every_repeat_week = array(1 => dgettext('calendar', '1st'), 2 => dgettext('calendar', '2nd'), 3 => dgettext('calendar', '3rd'), 4 => dgettext('calendar', '4th'), 5 => dgettext('calendar', 'Last'));
         $frequency = array('every_month' => dgettext('calendar', 'Every month'), 1 => strftime('%B', mktime(0, 0, 0, 1, 1, 1970)), 2 => strftime('%B', mktime(0, 0, 0, 2, 1, 1970)), 3 => strftime('%B', mktime(0, 0, 0, 3, 1, 1970)), 4 => strftime('%B', mktime(0, 0, 0, 4, 1, 1970)), 5 => strftime('%B', mktime(0, 0, 0, 5, 1, 1970)), 6 => strftime('%B', mktime(0, 0, 0, 6, 1, 1970)), 7 => strftime('%B', mktime(0, 0, 0, 7, 1, 1970)), 8 => strftime('%B', mktime(0, 0, 0, 8, 1, 1970)), 9 => strftime('%B', mktime(0, 0, 0, 9, 1, 1970)), 10 => strftime('%B', mktime(0, 0, 0, 10, 1, 1970)), 11 => strftime('%B', mktime(0, 0, 0, 11, 1, 1970)), 12 => strftime('%B', mktime(0, 0, 0, 12, 1, 1970)));
         $form->addSelect('every_repeat_number', $every_repeat_week);
         $form->addSelect('every_repeat_weekday', $weekday_labels);
         $form->addSelect('every_repeat_frequency', $frequency);
         /* set repeat form matches */
         if (!empty($event->repeat_type)) {
             $repeat_info = explode(':', $event->repeat_type);
             $repeat_mode_match = $repeat_info[0];
             if (isset($repeat_info[1])) {
                 $repeat_vars = explode(';', $repeat_info[1]);
             } else {
                 $repeat_vars = null;
             }
             $form->setMatch('repeat_mode', $repeat_mode_match);
             switch ($repeat_mode_match) {
                 case 'weekly':
                     $form->setMatch('weekday_repeat', $repeat_vars);
                     break;
                 case 'monthly':
                     $form->setMatch('monthly_repeat', $repeat_vars[0]);
                     break;
                 case 'every':
                     $form->setMatch('every_repeat_number', $repeat_vars[0]);
                     $form->setMatch('every_repeat_weekday', $repeat_vars[1]);
                     $form->setMatch('every_repeat_frequency', $repeat_vars[2]);
                     break;
             }
             $form->setMatch('repeat_event', 1);
         }
         if ($event->pid) {
             $form->addHidden('pid', $event->pid);
             // This is a repeat copy, if saved it removes it from the copy list
             $form->addSubmit('save', dgettext('calendar', 'Save and remove repeat'));
             $form->setExtra('save', sprintf('onclick="return confirm(\'%s\')"', dgettext('calendar', 'Remove event from repeat list?')));
         } elseif ($event->id && $event->repeat_type) {
             // This is event is a source repeating event
             // Save this
             // Not sure if coding this portion. commenting for now
             // $form->addSubmit('save_source', dgettext('calendar', 'Save this event only'));
             $form->addSubmit('save_copy', dgettext('calendar', 'Save and apply to repeats'));
             $form->setExtra('save_copy', sprintf('onclick="return confirm(\'%s\')"', dgettext('calendar', 'Apply changes to repeats?')));
         } else {
             // this is a non-repeating event
             $form->addSubmit('save', dgettext('calendar', 'Save event'));
         }
     }
     $tpl = $form->getTemplate();
     if (!$suggest) {
         $tpl['EVENT_TAB'] = dgettext('calendar', 'Event');
         $tpl['REPEAT_TAB'] = dgettext('calendar', 'Repeat');
     }
     if (isset($event->_error)) {
         $tpl['ERROR'] = implode('<br />', $event->_error);
     }
     if ($event->pid) {
         $linkvar['aop'] = 'edit_event';
         $linkvar['sch_id'] = $event->_schedule->id;
         $linkvar['event_id'] = $event->pid;
         if (javascriptEnabled()) {
             $linkvar['js'] = 1;
         }
         $source_link = PHPWS_Text::moduleLink(dgettext('calendar', 'Click here if you would prefer to edit the source event.'), 'calendar', $linkvar);
         $tpl['REPEAT_WARNING'] = dgettext('calendar', 'This is a repeat of another event.') . '<br />' . $source_link;
     }
     $tpl['SYNC'] = sprintf('<input type="button" style="display : none" id="sync-dates" onclick="sync_dates(); return false;" name="sync-dates" value="%s" />', dgettext('calendar', 'Sync dates'));
     if (javascriptEnabled()) {
         Layout::addJSHeader('<script src="' . PHPWS_SOURCE_HTTP . 'mod/calendar/javascript/edit_event/head.js"></script>');
         Layout::addJSHeader('<script src="' . PHPWS_SOURCE_HTTP . 'mod/calendar/javascript/check_date/head.js"></script>');
     }
     return PHPWS_Template::process($tpl, 'calendar', 'admin/forms/edit_event.tpl');
 }
コード例 #4
0
ファイル: Schedule.php プロジェクト: HaldunA/phpwebsite
 /**
  * Edit form for a schedule
  */
 public function form()
 {
     $key = $this->getKey();
     $form = new PHPWS_Form('schedule_form');
     if (isset($_REQUEST['js'])) {
         $form->addHidden('js', 1);
     }
     $form->addHidden('module', 'calendar');
     $form->addHidden('aop', 'post_schedule');
     $form->addHidden('sch_id', $this->id);
     $form->addText('title', $this->title);
     $form->setLabel('title', dgettext('calendar', 'Title'));
     $form->setSize('title', 40);
     $form->addTextArea('summary', $this->summary);
     $form->setLabel('summary', dgettext('calendar', 'Summary'));
     $form->useEditor('summary');
     if (PHPWS_Settings::get('calendar', 'personal_schedules')) {
         if (Current_User::allow('calendar', 'edit_public')) {
             $form->addRadio('public', array(0, 1));
             $form->setLabel('public', array(dgettext('calendar', 'Private'), dgettext('calendar', 'Public')));
             $form->setMatch('public', (int) $this->public);
         } else {
             $form->addTplTag('PUBLIC', dgettext('calendar', 'Private'));
             $form->addHidden('public', 0);
         }
     } else {
         $form->addTplTag('PUBLIC', dgettext('calendar', 'Public'));
         $form->addHidden('public', 1);
     }
     $upcoming[0] = dgettext('calendar', 'Do not show upcoming events');
     $upcoming[1] = dgettext('calendar', 'Show upcoming week');
     $upcoming[2] = dgettext('calendar', 'Show next two weeks');
     $upcoming[3] = dgettext('calendar', 'Show upcoming month');
     $form->addSelect('show_upcoming', $upcoming);
     $form->setLabel('show_upcoming', dgettext('calendar', 'Show upcoming events'));
     $form->setMatch('show_upcoming', $this->show_upcoming);
     $form->addSubmit(dgettext('calendar', 'Save'));
     $template = $form->getTemplate();
     if (isset($_REQUEST['js'])) {
         $template['CLOSE'] = javascript('close_window', array('value' => dgettext('calendar', 'Cancel')));
     }
     $template['PUBLIC_LABEL'] = dgettext('calendar', 'Availability');
     return PHPWS_Template::process($template, 'calendar', 'admin/forms/edit_schedule.tpl');
 }