/** * MYSQL save/update panels */ private function set_paneldb() { global $aidlink, $locale, $defender; if (isset($_POST['panel_save'])) { $this->data['panel_id'] = isset($_POST['panel_id']) ? form_sanitizer($_POST['panel_id'], '0', 'panel_id') : 0; $this->data['panel_name'] = isset($_POST['panel_name']) ? form_sanitizer($_POST['panel_name'], '', 'panel_name') : ''; $this->data['panel_side'] = isset($_POST['panel_side']) ? form_sanitizer($_POST['panel_side'], 1, 'panel_side') : 1; $this->data['panel_access'] = isset($_POST['panel_access']) ? form_sanitizer($_POST['panel_access'], '0', 'panel_access') : 0; // panel name is unique $result = dbcount("(panel_id)", DB_PANELS, "panel_name='" . $this->data['panel_name'] . "' AND panel_id !='" . $this->data['panel_id'] . "'"); if ($result) { $defender->stop(); addNotice('danger', $locale['471']); } $this->data['panel_filename'] = isset($_POST['panel_filename']) ? form_sanitizer($_POST['panel_filename'], '', 'panel_filename') : ''; // panel content formatting if ($this->data['panel_filename'] == 'none') { $this->data['panel_type'] = "php"; $this->data['panel_content'] = isset($_POST['panel_content']) ? addslashes($_POST['panel_content']) : ''; if (!$this->data['panel_content']) { $this->data['panel_content'] = "opentable(\"name\");\n" . "echo \"Content\";\n" . "closetable();"; if ($this->data['panel_side'] == 1 || $this->data['panel_side'] == 4) { $this->data['panel_content'] = "openside(\"name\");\n" . "echo \"Content\";\n" . "closeside();"; } } } else { $this->data['panel_content'] = ''; $this->data['panel_type'] = "file"; } // need to add fourth option. only show in front page. $this->data['panel_restriction'] = isset($_POST['panel_restriction']) ? form_sanitizer($_POST['panel_restriction'], '', 'panel_restriction') : 0; // 3, show on all, 2 = show on home page. 1 = exclude , 0 = include // post 0 to include all , 1 to exclude all, show all. if ($this->data['panel_restriction'] == '3') { // show on all $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0; $this->data['panel_url_list'] = ''; } elseif ($this->data['panel_restriction'] == '2') { // show on homepage only $this->data['panel_display'] = 0; $this->data['panel_url_list'] = ''; if ($this->data['panel_side'] == 1 || $this->data['panel_side'] == 4) { $this->data['panel_url_list'] = fusion_get_settings('opening_page'); // because 1 and 4 directly overide panel_display. } } else { // require panel_url_list in this case $this->data['panel_url_list'] = isset($_POST['panel_url_list']) ? form_sanitizer($_POST['panel_url_list'], '', 'panel_url_list') : ''; if ($this->data['panel_url_list']) { $this->data['panel_url_list'] = str_replace(",", "\r\n", $this->data['panel_url_list']); if ($this->data['panel_restriction'] == 1) { // exclude mode $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0; } else { // include mode $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0; } } else { $defender->stop(); addNotice('danger', $locale['475']); } } $panel_languages = isset($_POST['panel_languages']) ? \defender::sanitize_array($_POST['panel_languages']) : array(); if (!empty($panel_languages)) { $this->data['panel_languages'] = implode('.', $panel_languages); } // panel order .. add to last or sort - no need since we already have drag and drop... but if they dont have jquery this would be a good idea. if ($this->data['panel_id'] && self::verify_panel($this->data['panel_id'])) { dbquery_insert(DB_PANELS, $this->data, 'update'); addNotice('info', $locale['482']); if (!defined('FUSION_NULL')) { redirect(FUSION_SELF . $aidlink . "&section=listpanel&status=su"); } } else { // add panel order automatically $result = dbquery("SELECT panel_order FROM " . DB_PANELS . " WHERE panel_side='" . intval($this->data['panel_side']) . "' ORDER BY panel_order DESC LIMIT 1"); if (dbrows($result) != 0) { $data = dbarray($result); $this->data['panel_order'] = $data['panel_order'] + 1; } else { $this->data['panel_order'] = 1; } dbquery_insert(DB_PANELS, $this->data, 'save'); addNotice('success', $locale['485']); if (!defined('FUSION_NULL')) { redirect(FUSION_SELF . $aidlink . "&section=listpanel&status=sn"); } } } }