/**
  * Save the permissions
  *
  * @access	public
  * @return	void		Outputs to screen
  **/
 public function permDoEdit()
 {
     /* INI */
     $perms = array();
     $this->request['f'] = intval($this->request['f']);
     /* Security Check */
     $this->registry->adminFunctions->checkSecurityKey();
     /* Save the permissions */
     require_once IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php';
     $permissions = new classPublicPermissions(ipsRegistry::instance());
     $permissions->savePermMatrix($this->request['perms'], $this->request['f'], 'forum');
     /* Log */
     $this->registry->adminFunctions->saveAdminLog(sprintf($this->lang->words['for_permeditedin'], $this->request['name']));
     $this->recacheForums();
     /* Previous Forum */
     if ($this->request['doprevious'] and $this->request['doprevious'] and $this->request['previd'] > 0) {
         $this->registry->output->global_message = $this->lang->words['for_permedited'];
         $this->request['f'] = $this->request['previd'];
         $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']);
     } else {
         if ($this->request['donext'] and $this->request['donext'] and $this->request['nextid'] > 0) {
             $this->registry->output->global_message = $this->lang->words['for_permedited'];
             $this->request['f'] = $this->request['nextid'];
             $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']);
         } else {
             if ($this->request['reload'] and $this->request['reload']) {
                 $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']);
             } else {
                 $this->registry->output->doneScreen($this->lang->words['for_permedited2'], $this->lang->words['for_control'], $this->html->form_code, 'redirect');
             }
         }
     }
 }
 /**
  * Handles the calednar new/edit form
  *
  * @access	public
  * @param	string	$type	Either new or edit	 
  * @return	void
  */
 public function calendarSave($type = 'new')
 {
     /* INIT */
     $cal_id = intval($this->request['cal_id']);
     $cal_title = trim(IPSText::stripslashes(IPSText::htmlspecialchars($_POST['cal_title'])));
     $cal_moderate = intval($this->request['cal_moderate']);
     $cal_event_limit = intval($this->request['cal_event_limit']);
     $cal_bday_limit = intval($this->request['cal_bday_limit']);
     $cal_rss_export = intval($this->request['cal_rss_export']);
     $cal_rss_export_days = intval($this->request['cal_rss_export_days']);
     $cal_rss_export_max = intval($this->request['cal_rss_export_max']);
     $cal_rss_update = intval($this->request['cal_rss_update']);
     $cal_perms = array('perm_read' => '', 'perm_post' => '', 'perm_nomod' => '');
     /* Error Checks */
     if ($type == 'edit') {
         if (!$cal_id or !$cal_title) {
             $this->registry->output->global_message = $this->lang->words['c_noid'];
             $this->calendarsList();
             return;
         }
     } else {
         if (!$cal_title) {
             $this->registry->output->global_message = $this->lang->words['c_completeform'];
             $this->calendarForm($type);
             return;
         }
     }
     /* DB Array */
     $array = array('cal_title' => $cal_title, 'cal_moderate' => $cal_moderate, 'cal_event_limit' => $cal_event_limit, 'cal_bday_limit' => $cal_bday_limit, 'cal_rss_export' => $cal_rss_export, 'cal_rss_export_days' => $cal_rss_export_days, 'cal_rss_export_max' => $cal_rss_export_max, 'cal_rss_update' => $cal_rss_update);
     /* Create Calendar */
     if ($type == 'new') {
         $this->DB->insert('cal_calendars', $array);
         $cal_id = $this->DB->getInsertId();
         $this->registry->output->global_message = $this->lang->words['c_added'];
     } else {
         $this->DB->update('cal_calendars', $array, 'cal_id=' . $cal_id);
         $this->registry->output->global_message = $this->lang->words['c_edited'];
     }
     /* Permissions */
     require_once IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php';
     $permissions = new classPublicPermissions(ipsRegistry::instance());
     $permissions->savePermMatrix($this->request['perms'], $cal_id, 'calendar');
     /* Rebuild Caches and Bounce */
     $this->calendarsRebuildCache();
     $this->calendarRebuildCache(0);
     $this->calendarRSSCache($cal_id, 0);
     $this->cache->rebuildCache('rss_output_cache');
     $this->calendarsList();
 }