/** * Функция инициализации Ajax функций для главной страницы * @return null */ public function init() { $act = $_GET['act']; switch ($act) { case "feedback": $this->feedback($_POST); ok(); break; case "modsettings": modsettings::o()->make_demo($_POST); break; case "calendar_content": $year = (int) $_POST["year"]; $month = (int) $_POST["month"]; $this->calendar_content($month, $year); break; case "search_pre": $text = $_POST["text"]; $this->search_pre($text); break; case "move_unread": $time = (int) $_POST["time"]; $after = (bool) $_POST['after']; $this->move_unread($time, $after); break; case "get_msgs": $this->get_msgs(); break; case "children_cat": $id = (int) $_POST["id"]; $type = $_POST['type']; $num = longval($_POST['num']) + 1; $this->children_cat($id, $num, $type); break; case "check_pattern": $id = (int) $_GET["id"]; $this->check_pattern($id); break; case "build_pattern": $id = (int) $_GET["id"]; $this->build_pattern($id); break; default: break; } }
/** * Удаление кеша * @param string $plugin имя плагина * @return null */ public function uncache($plugin = null) { cache::o()->remove('plugins'); if ($plugin) { modsettings::o()->change_type('plugins')->uncache($plugin); } }
/** * Удаление блока * @param int $id ID блока * @return null */ public function delete($id) { $id = intval($id); db::o()->p($id)->delete('blocks', 'WHERE id=? LIMIT 1'); modsettings::o()->change_type('blocks')->uncache($id); log_add('deleted_block', 'admin', $id); }
/** * Сохранение настроек плагина * @param array $data массив данных * @return null * @throws EngineException */ protected function save($data) { $admin_file = globals::g('admin_file'); $id = $data['id']; $settings = serialize(modsettings::o()->save($id, $data)); db::o()->p($id)->update(array('settings' => $settings), 'plugins', 'WHERE file=? LIMIT 1'); plugins::o()->manager->uncache(); furl::o()->location($admin_file); }
/** * Получение объекта класса * @return modsettings $this */ public static function o() { if (!self::$o) { self::$o = new self(); } return self::$o; }
/** * @note Простой селектор(simple_selector) * params: * string name имя поля * array values массив значений * bool keyed ключи в качестве значения опций? * mixed current текущее значение * int size размер поля(если больше 1 множественная выборка) * bool null пустое значение? * string lang_prefix языковой префикс для значений */ tpl::o()->register_function("simple_selector", array($input, 'simple_selector')); /** * @note Создание настроек для модуля(modsettings_create) */ tpl::o()->register_function("modsettings_create", array(modsettings::o(), 'create')); unset($bbcodes); unset($input); unset($display); unset($blocks); unset($message); /// Конец /// Обнаруживаем IE if (preg_match("/MSIE\\s*([0-9]+)/siu", $_SERVER['HTTP_USER_AGENT'], $matches)) { lang::o()->get("ie_error"); // Выгоняем IE ниже 8 версии if ($matches[1] < 8) { tpl::o()->display('ie_error.tpl'); die; } tpl::o()->assign('MSIE', $matches[1]);
/** * Получение настроек блока * @param string $file файл * @return array массив настроек */ public function get_settings($file) { if (!$this->state) { return; } if ($this->settings[$file]) { return $this->settings[$file]; } if (!validword($file)) { return; } $r = db::o()->p($file)->query('SELECT id,settings FROM blocks WHERE file=? LIMIT 1'); list($id, $settings) = db::o()->fetch_row($r); if (!$id) { return; } $settings = unserialize($settings); $object = plugins::o()->get_module($file, true); if (!$object || !isset($object->settings)) { return; } modsettings::o()->change_type('blocks')->parse($id, $object, $settings); $this->settings[$file] = $object->settings; return $this->settings[$file]; }