diff --git a/src/mibew/install/dbinfo.php b/src/mibew/install/dbinfo.php index 0962b4df..c513d75a 100644 --- a/src/mibew/install/dbinfo.php +++ b/src/mibew/install/dbinfo.php @@ -294,7 +294,8 @@ function show_install_err($text) 'localeLinks' => get_locale_links("$mibewroot/install/index.php") ); $errors = array($text); - render_view('install_err'); + $page_style = new PageStyle('default'); + $page_style->render('install_err'); exit; } diff --git a/src/mibew/install/index.php b/src/mibew/install/index.php index b2317695..5e8f8829 100644 --- a/src/mibew/install/index.php +++ b/src/mibew/install/index.php @@ -33,7 +33,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/common/locale.php'); require_once(dirname(dirname(__FILE__)).'/libs/common/misc.php'); require_once(dirname(dirname(__FILE__)).'/libs/common/response.php'); require_once(dirname(dirname(__FILE__)).'/libs/common/string.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); // Include database structure require_once(dirname(__FILE__).'/dbinfo.php'); @@ -372,6 +374,7 @@ function check_status() check_status(); -render_view('install_index'); +$page_style = new PageStyle('default'); +$page_style->render('install_index'); ?> \ No newline at end of file diff --git a/src/mibew/libs/chat.php b/src/mibew/libs/chat.php index 851ed3a3..123b8105 100644 --- a/src/mibew/libs/chat.php +++ b/src/mibew/libs/chat.php @@ -427,7 +427,8 @@ function setup_chatview(Thread $thread) { = $style_config['mail']['window_params']; // Load core style options - $style_config = get_core_style_config(get_page_style()); + $page_style = new PageStyle(PageStyle::currentStyle()); + $style_config = $page_style->configurations(); $data['chat']['windowsParams']['history'] = $style_config['history']['window_params']; diff --git a/src/mibew/libs/classes/page_style.php b/src/mibew/libs/classes/page_style.php new file mode 100644 index 00000000..59924fd3 --- /dev/null +++ b/src/mibew/libs/classes/page_style.php @@ -0,0 +1,108 @@ +name(); + } + + /** + * Renders template file to HTML and send it to the output + * + * @param string $template_name Name of the template file without path but + * with extension + */ + public function render($template_name) { + // We need to import some variables to make them visible to required + // view. + global $page, $mibewroot, $version, $errors; + + // Prepare to output html + start_html_output(); + + // Build full view name. Remove '\' and '/' characters form the + // specified view name + $full_view_name = dirname(dirname(dirname(__FILE__))) . + '/' . $this->filesPath() . + '/views/' . + str_replace("/\\", '', $template_name) . '.php'; + + // Load and execute the view + require($full_view_name); + } + + /** + * Returns name of the style which is currently used in the system + * + * @return string Name of a style + */ + public static function currentStyle() { + // Load value from system settings + return Settings::get('page_style'); + } + + /** + * Sets style which is currently used in the system + * + * @param string $style_name Name of a style + */ + public static function setCurrentStyle($style_name) { + Settings::set('page_style', $style_name); + Settings::update(); + } + + /** + * Returns an array which contains names of available styles. + * + * @param array List of styles names + */ + public static function availableStyles() { + $styles_root = dirname(dirname(dirname(__FILE__))) . + '/styles/pages'; + + return self::getStyleList($styles_root); + } + + /** + * Returns array of default configurations for concrete style object. This + * method uses "Template method" design pattern. + * + * @return array Default configurations of the style + */ + protected function defaultConfigurations() { + return array( + 'chat' => array( + 'window_params' => '' + ), + 'mail' => array( + 'window_params' => '' + ), + 'screenshots' => array() + ); + } +} + +?> \ No newline at end of file diff --git a/src/mibew/libs/common/configurations.php b/src/mibew/libs/common/configurations.php index 49f2862f..965a1ad3 100644 --- a/src/mibew/libs/common/configurations.php +++ b/src/mibew/libs/common/configurations.php @@ -29,42 +29,4 @@ function read_config_file($file) { return parse_ini_file($file, true); } -/** - * Load configuration array for core style - * - * @return array Configuration array - */ -function get_core_style_config($style) { - // Get root dir of mibew messanger - $base_path = realpath(dirname(dirname(dirname(__FILE__)))); - - // Load config - $config = read_config_file($base_path.'/styles/pages/' . $style . '/config.ini'); - - // Set default values - $config = ($config === false) ? array() : $config; - $config += array( - 'history' => array( - 'window_params' => '' - ), - 'users' => array( - 'thread_tag' => 'div', - 'visitor_tag' => 'div' - ), - 'tracked' => array( - 'user_window_params' => '', - 'visitor_window_params' => '' - ), - 'invitation' => array( - 'window_params' => '' - ), - 'ban' => array( - 'window_params' => '' - ), - 'screenshots' => array() - ); - - return $config; -} - ?> \ No newline at end of file diff --git a/src/mibew/libs/view.php b/src/mibew/libs/view.php deleted file mode 100644 index f458b1cd..00000000 --- a/src/mibew/libs/view.php +++ /dev/null @@ -1,65 +0,0 @@ -" folders. - * - * $view_name param should include neither full view's path nor its extension. - * Just view name. For example, to render and output - * "styles/pages/default/agents.php" view one should use "agents" as - * the view name. - * - * @param string $view_name Name of the view to render. - * @param string $style_name Name of the style from which a view should - * be rendered. If this param is empty the value from configurations will - * be used. - */ -function render_view($view_name, $style_name = NULL) { - // Code of this function replaces code from the global scope. Thus we need - // to import some variables to make them visible to required views. - global $page, $mibewroot, $version, $errors; - - if (empty($style_name)) { - if (installation_in_progress()) { - // We currently instal Mibew. Thus we cannot use Database and - // Settings classes. Just use "default" style for installation pages. - $style_name = 'default'; - } else { - $style_name = get_page_style(); - } - } - - // Prepare to output html - start_html_output(); - - // Build full view name. Remove '\' and '/' characters form the specified - // view name - $full_view_name = dirname(dirname(__FILE__)) . - '/styles/pages/' . $style_name . '/views/' . - str_replace("/\\", '', $view_name) . '.php'; - - // Load and execute the view - require($full_view_name); -} - -?> \ No newline at end of file diff --git a/src/mibew/license.php b/src/mibew/license.php index 66d8b8f6..e9a0358a 100644 --- a/src/mibew/license.php +++ b/src/mibew/license.php @@ -16,8 +16,11 @@ */ require_once(dirname(__FILE__).'/libs/init.php'); -require_once(dirname(__FILE__).'/libs/view.php'); +require_once(dirname(__FILE__).'/libs/interfaces/style.php'); +require_once(dirname(__FILE__).'/libs/classes/style.php'); +require_once(dirname(__FILE__).'/libs/classes/page_style.php'); -render_view('license'); +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('license'); ?> \ No newline at end of file diff --git a/src/mibew/operator/agent.php b/src/mibew/operator/agent.php index 36ac34eb..9263df02 100644 --- a/src/mibew/operator/agent.php +++ b/src/mibew/operator/agent.php @@ -23,10 +23,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); require_once(dirname(dirname(__FILE__)).'/libs/expand.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/thread.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); @@ -48,6 +48,8 @@ $page = array(); // Initialize chat style which is currently used in system $chat_style = new ChatStyle(ChatStyle::currentStyle()); +$page_style = new PageStyle(PageStyle::currentStyle()); + if (!isset($_GET['token'])) { $remote_level = get_remote_level($_SERVER['HTTP_USER_AGENT']); @@ -81,7 +83,7 @@ if (!isset($_GET['token'])) { 'agent' => topage($thread->agentName), 'link' => $_SERVER['PHP_SELF'] . "?thread=$threadid&force=true" ); - render_view('confirm'); + $page_style->render('confirm'); exit; } } diff --git a/src/mibew/operator/avatar.php b/src/mibew/operator/avatar.php index 2db3bc16..3e3f10a8 100644 --- a/src/mibew/operator/avatar.php +++ b/src/mibew/operator/avatar.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator_settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -97,6 +99,8 @@ $page['canmodify'] = $canmodify ? "1" : ""; prepare_menu($operator); setup_operator_settings_tabs($opId, 1); -render_view('avatar'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('avatar'); ?> \ No newline at end of file diff --git a/src/mibew/operator/ban.php b/src/mibew/operator/ban.php index 70b4778d..eea55533 100644 --- a/src/mibew/operator/ban.php +++ b/src/mibew/operator/ban.php @@ -20,7 +20,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/thread.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -127,6 +129,8 @@ if (isset($_POST['address'])) { } prepare_menu($operator, false); -render_view('ban'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('ban'); ?> \ No newline at end of file diff --git a/src/mibew/operator/blocked.php b/src/mibew/operator/blocked.php index 06dbc7ba..6d07c8bc 100644 --- a/src/mibew/operator/blocked.php +++ b/src/mibew/operator/blocked.php @@ -19,7 +19,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -53,6 +55,8 @@ $blockedList = $db->query( setup_pagination($blockedList); prepare_menu($operator); -render_view('blocked_visitors'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('blocked_visitors'); ?> \ No newline at end of file diff --git a/src/mibew/operator/canned.php b/src/mibew/operator/canned.php index 7bca7b95..76bfdb0f 100644 --- a/src/mibew/operator/canned.php +++ b/src/mibew/operator/canned.php @@ -21,7 +21,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -95,6 +97,8 @@ $page['formlang'] = $lang; $page['formgroup'] = $groupid; prepare_menu($operator); -render_view('canned'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('canned'); ?> \ No newline at end of file diff --git a/src/mibew/operator/cannededit.php b/src/mibew/operator/cannededit.php index 03dabfd7..d7570cde 100644 --- a/src/mibew/operator/cannededit.php +++ b/src/mibew/operator/cannededit.php @@ -19,7 +19,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/canned.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -29,6 +31,8 @@ $stringid = verifyparam("key", "/^\d{0,9}$/", ""); $errors = array(); $page = array(); +$page_style = new PageStyle(PageStyle::currentStyle()); + if ($stringid) { $canned_message = load_canned_message($stringid); if (!$canned_message) { @@ -65,7 +69,7 @@ if (isset($_POST['message']) && isset($_POST['title'])) { } $page['saved'] = true; prepare_menu($operator, false); - render_view('cannededit'); + $page_style->render('cannededit'); exit; } } @@ -76,6 +80,6 @@ $page['formtitle'] = topage($title); $page['formmessage'] = topage($message); prepare_menu($operator, false); -render_view('cannededit'); +$page_style->render('cannededit'); ?> \ No newline at end of file diff --git a/src/mibew/operator/features.php b/src/mibew/operator/features.php index 018a4a4e..0aaeb15d 100644 --- a/src/mibew/operator/features.php +++ b/src/mibew/operator/features.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -65,6 +67,8 @@ foreach ($options as $opt) { prepare_menu($operator); setup_settings_tabs(1); -render_view('features'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('features'); ?> \ No newline at end of file diff --git a/src/mibew/operator/getcode.php b/src/mibew/operator/getcode.php index 8235d405..1d0f86e4 100644 --- a/src/mibew/operator/getcode.php +++ b/src/mibew/operator/getcode.php @@ -20,10 +20,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/getcode.php'); require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -99,6 +99,8 @@ $page['enabletracking'] = Settings::get('enabletracking'); $page['operator_code'] = $operator_code; prepare_menu($operator); -render_view('gen_button'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('gen_button'); ?> \ No newline at end of file diff --git a/src/mibew/operator/group.php b/src/mibew/operator/group.php index 9c746f96..b3aaebf7 100644 --- a/src/mibew/operator/group.php +++ b/src/mibew/operator/group.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -248,6 +250,8 @@ $page['availableParentGroups'] = get_available_parent_groups($groupid); prepare_menu($operator); setup_group_settings_tabs($groupid, 0); -render_view('group'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('group'); ?> \ No newline at end of file diff --git a/src/mibew/operator/groupmembers.php b/src/mibew/operator/groupmembers.php index 5a99c353..e1d99aac 100644 --- a/src/mibew/operator/groupmembers.php +++ b/src/mibew/operator/groupmembers.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -91,6 +93,8 @@ $page['stored'] = isset($_GET['stored']); prepare_menu($operator); setup_group_settings_tabs($groupid, 1); -render_view('groupmembers'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('groupmembers'); ?> \ No newline at end of file diff --git a/src/mibew/operator/groups.php b/src/mibew/operator/groups.php index e0081cc5..35e29d11 100644 --- a/src/mibew/operator/groups.php +++ b/src/mibew/operator/groups.php @@ -17,7 +17,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -73,6 +75,8 @@ $page['availableDirections'] = array( ); prepare_menu($operator); -render_view('groups'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('groups'); ?> \ No newline at end of file diff --git a/src/mibew/operator/history.php b/src/mibew/operator/history.php index 0b4f23f7..e9eb2c75 100644 --- a/src/mibew/operator/history.php +++ b/src/mibew/operator/history.php @@ -21,7 +21,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/userinfo.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); require_once(dirname(dirname(__FILE__)).'/libs/cron.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -99,6 +101,8 @@ $page['formtype'] = $searchType; $page['forminsystemmessages'] = $searchInSystemMessages; prepare_menu($operator); -render_view('thread_search'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('thread_search'); ?> \ No newline at end of file diff --git a/src/mibew/operator/index.php b/src/mibew/operator/index.php index 049f2fa4..610d406b 100644 --- a/src/mibew/operator/index.php +++ b/src/mibew/operator/index.php @@ -17,7 +17,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -37,6 +39,8 @@ $page = array( ); prepare_menu($operator); -render_view('menu'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('menu'); ?> \ No newline at end of file diff --git a/src/mibew/operator/invitationthemes.php b/src/mibew/operator/invitationthemes.php index c76c509d..43464fee 100644 --- a/src/mibew/operator/invitationthemes.php +++ b/src/mibew/operator/invitationthemes.php @@ -22,7 +22,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/expand.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); @@ -40,6 +42,8 @@ $page['operatorName'] = (empty($operator['vclocalname'])?$operator['vccommonname prepare_menu($operator); setup_settings_tabs(5); -render_view('invitation_themes'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('invitation_themes'); ?> \ No newline at end of file diff --git a/src/mibew/operator/login.php b/src/mibew/operator/login.php index 375bd830..000aa3ee 100644 --- a/src/mibew/operator/login.php +++ b/src/mibew/operator/login.php @@ -17,7 +17,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $errors = array(); $page = array('formisRemember' => true, 'version' => $version); @@ -55,6 +57,7 @@ if (isset($_POST['login']) && isset($_POST['password'])) { $page['localeLinks'] = get_locale_links("$mibewroot/operator/login.php"); -render_view('login'); +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('login'); ?> \ No newline at end of file diff --git a/src/mibew/operator/operator.php b/src/mibew/operator/operator.php index c4fc58db..ef3141c6 100644 --- a/src/mibew/operator/operator.php +++ b/src/mibew/operator/operator.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator_settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -154,6 +156,8 @@ $page['needChangePassword'] = check_password_hash($operator['vclogin'], '', $ope prepare_menu($operator); setup_operator_settings_tabs($opId, 0); -render_view('agent'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('agent'); ?> \ No newline at end of file diff --git a/src/mibew/operator/operators.php b/src/mibew/operator/operators.php index 269bc4e6..875c88c7 100644 --- a/src/mibew/operator/operators.php +++ b/src/mibew/operator/operators.php @@ -17,7 +17,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -112,6 +114,8 @@ $page['availableDirections'] = array( setlocale(LC_TIME, getstring("time.locale")); prepare_menu($operator); -render_view('agents'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('agents'); ?> \ No newline at end of file diff --git a/src/mibew/operator/opgroups.php b/src/mibew/operator/opgroups.php index 34438522..8ab2462c 100644 --- a/src/mibew/operator/opgroups.php +++ b/src/mibew/operator/opgroups.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator_settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -87,6 +89,8 @@ $page['stored'] = isset($_GET['stored']); prepare_menu($operator); setup_operator_settings_tabs($opId, 2); -render_view('operator_groups'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('operator_groups'); ?> \ No newline at end of file diff --git a/src/mibew/operator/page_themes.php b/src/mibew/operator/page_themes.php index 5a0ae425..d48739b0 100644 --- a/src/mibew/operator/page_themes.php +++ b/src/mibew/operator/page_themes.php @@ -19,11 +19,13 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); -$stylelist = get_style_list(dirname(dirname(__FILE__)).'/styles/pages'); +$stylelist = PageStyle::availableStyles(); $preview = verifyparam("preview", "/^\w+$/", "default"); if (!in_array($preview, $stylelist)) { @@ -31,13 +33,14 @@ if (!in_array($preview, $stylelist)) { $preview = $stylelist[$style_names[0]]; } -$style_config = get_core_style_config($preview); +$preview_style = new PageStyle($preview); +$style_config = $preview_style->configurations(); $screenshots = array(); foreach($style_config['screenshots'] as $name => $desc) { $screenshots[] = array( 'name' => $name, - 'file' => $mibewroot . '/styles/pages/' . $preview + 'file' => $mibewroot . '/' . $preview_style->filesPath() . '/screenshots/' . $name . '.png', 'description' => $desc ); @@ -49,6 +52,8 @@ $page['screenshotsList'] = $screenshots; prepare_menu($operator); setup_settings_tabs(3); -render_view('page_themes'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('page_themes'); ?> \ No newline at end of file diff --git a/src/mibew/operator/performance.php b/src/mibew/operator/performance.php index dd475c33..7ea31936 100644 --- a/src/mibew/operator/performance.php +++ b/src/mibew/operator/performance.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -123,6 +125,8 @@ $page['stored'] = isset($_GET['stored']); prepare_menu($operator); setup_settings_tabs(2); -render_view('performance'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('performance'); ?> \ No newline at end of file diff --git a/src/mibew/operator/permissions.php b/src/mibew/operator/permissions.php index c69ec557..68ae4689 100644 --- a/src/mibew/operator/permissions.php +++ b/src/mibew/operator/permissions.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator_settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); csrfchecktoken(); @@ -76,6 +78,8 @@ $page['stored'] = isset($_GET['stored']); prepare_menu($operator); setup_operator_settings_tabs($opId, 3); -render_view('permissions'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('permissions'); ?> \ No newline at end of file diff --git a/src/mibew/operator/resetpwd.php b/src/mibew/operator/resetpwd.php index c2c7b178..6e69b771 100644 --- a/src/mibew/operator/resetpwd.php +++ b/src/mibew/operator/resetpwd.php @@ -18,11 +18,15 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $errors = array(); $page = array('version' => $version, 'showform' => true); +$page_style = new PageStyle(PageStyle::currentStyle()); + $opId = verifyparam("id", "/^\d{1,9}$/"); $token = verifyparam("token", "/^[\dabcdef]+$/"); @@ -57,7 +61,7 @@ if (count($errors) == 0 && isset($_POST['password'])) { ); $page['loginname'] = $operator['vclogin']; - render_view('resetpwd'); + $page_style->render('resetpwd'); exit; } } @@ -66,6 +70,6 @@ $page['id'] = $opId; $page['token'] = $token; $page['isdone'] = false; -render_view('resetpwd'); +$page_style->render('resetpwd'); ?> \ No newline at end of file diff --git a/src/mibew/operator/restore.php b/src/mibew/operator/restore.php index b7e3ae3c..7be2ca05 100644 --- a/src/mibew/operator/restore.php +++ b/src/mibew/operator/restore.php @@ -19,12 +19,16 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); require_once(dirname(dirname(__FILE__)).'/libs/notify.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $errors = array(); $page = array('version' => $version); $loginoremail = ""; +$page_style = new PageStyle(PageStyle::currentStyle()); + if (isset($_POST['loginoremail'])) { $loginoremail = getparam("loginoremail"); @@ -56,7 +60,7 @@ if (isset($_POST['loginoremail'])) { mibew_mail($email, $email, getstring("restore.mailsubj"), getstring2("restore.mailtext", array(get_operator_name($torestore), $href))); $page['isdone'] = true; - render_view('restore'); + $page_style->render('restore'); exit; } } @@ -66,6 +70,6 @@ $page['formloginoremail'] = topage($loginoremail); $page['localeLinks'] = get_locale_links("$mibewroot/operator/restore.php"); $page['isdone'] = false; -render_view('restore'); +$page_style->render('restore'); ?> \ No newline at end of file diff --git a/src/mibew/operator/settings.php b/src/mibew/operator/settings.php index 523c1671..a3a47827 100644 --- a/src/mibew/operator/settings.php +++ b/src/mibew/operator/settings.php @@ -20,10 +20,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); require_once(dirname(dirname(__FILE__)).'/libs/styles.php'); require_once(dirname(dirname(__FILE__)).'/libs/cron.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -33,7 +33,7 @@ $page = array('agentId' => ''); $errors = array(); $stylelist = ChatStyle::availableStyles(); -$page_style_list = get_style_list(dirname(dirname(__FILE__)).'/styles/pages'); +$page_style_list = PageStyle::availableStyles(); $options = array( 'email', @@ -141,6 +141,8 @@ if (Settings::get('enabletracking')) { prepare_menu($operator); setup_settings_tabs(0); -render_view('settings'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('settings'); ?> \ No newline at end of file diff --git a/src/mibew/operator/statistics.php b/src/mibew/operator/statistics.php index 577f99e1..adca77c5 100644 --- a/src/mibew/operator/statistics.php +++ b/src/mibew/operator/statistics.php @@ -20,7 +20,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/statistics.php'); require_once(dirname(dirname(__FILE__)).'/libs/cron.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -174,6 +176,8 @@ $page['showresults'] = count($errors) == 0; prepare_menu($operator); setup_statistics_tabs($activetab); -render_view('statistics'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('statistics'); ?> \ No newline at end of file diff --git a/src/mibew/operator/themes.php b/src/mibew/operator/themes.php index 20211536..19f92ead 100644 --- a/src/mibew/operator/themes.php +++ b/src/mibew/operator/themes.php @@ -22,10 +22,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); require_once(dirname(dirname(__FILE__)).'/libs/expand.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); @@ -57,6 +57,8 @@ $page['screenshotsList'] = $screenshots; prepare_menu($operator); setup_settings_tabs(4); -render_view('themes'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('themes'); ?> \ No newline at end of file diff --git a/src/mibew/operator/threadprocessor.php b/src/mibew/operator/threadprocessor.php index d31df484..08d7cd09 100644 --- a/src/mibew/operator/threadprocessor.php +++ b/src/mibew/operator/threadprocessor.php @@ -19,7 +19,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/userinfo.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); @@ -58,6 +60,8 @@ if (isset($_GET['threadid'])) { } prepare_menu($operator, false); -render_view('thread_log'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('thread_log'); ?> \ No newline at end of file diff --git a/src/mibew/operator/tracked.php b/src/mibew/operator/tracked.php index 841182c7..d99e5915 100644 --- a/src/mibew/operator/tracked.php +++ b/src/mibew/operator/tracked.php @@ -19,7 +19,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/track.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); @@ -58,6 +60,7 @@ foreach ($path as $k => $v) { 'link' => htmlspecialchars($v) ); } -render_view('tracked'); +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('tracked'); ?> \ No newline at end of file diff --git a/src/mibew/operator/translate.php b/src/mibew/operator/translate.php index c91751e9..520c80a0 100644 --- a/src/mibew/operator/translate.php +++ b/src/mibew/operator/translate.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); function compare_localization_by_l1($a, $b) { @@ -143,6 +145,8 @@ $page = array( 'title2' => isset($lang2["localeid"]) ? $lang2["localeid"] : $target ); +$page_style = new PageStyle(PageStyle::currentStyle()); + if ($stringid) { $translation = isset($lang2[$stringid]) ? $lang2[$stringid] : ""; if (isset($_POST['translation'])) { @@ -157,7 +161,7 @@ if ($stringid) { $page['saved'] = true; prepare_menu($operator, false); - render_view('translate'); + $page_style->render('translate'); exit; } } @@ -168,7 +172,7 @@ if ($stringid) { $page['formoriginal'] = isset($lang1[$stringid]) ? $lang1[$stringid] : ""; $page['formtranslation'] = $translation; prepare_menu($operator, false); - render_view('translate'); + $page_style->render('translate'); exit; } @@ -229,6 +233,6 @@ $page['showOptions'] = array( $page['formshow'] = $show; prepare_menu($operator); -render_view('translatelist'); +$page_style->render('translatelist'); ?> \ No newline at end of file diff --git a/src/mibew/operator/updates.php b/src/mibew/operator/updates.php index 13bc5723..8d9933c0 100644 --- a/src/mibew/operator/updates.php +++ b/src/mibew/operator/updates.php @@ -18,7 +18,9 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/settings.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -42,6 +44,8 @@ foreach ($default_extensions as $ext) { } prepare_menu($operator); -render_view('updates'); + +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('updates'); ?> \ No newline at end of file diff --git a/src/mibew/operator/userhistory.php b/src/mibew/operator/userhistory.php index 409d7c49..b5d949c7 100644 --- a/src/mibew/operator/userhistory.php +++ b/src/mibew/operator/userhistory.php @@ -20,7 +20,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/chat.php'); require_once(dirname(dirname(__FILE__)).'/libs/userinfo.php'); require_once(dirname(dirname(__FILE__)).'/libs/pagination.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); +require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); + $operator = check_login(); @@ -64,6 +67,7 @@ foreach ($page['pagination.items'] as $key => $item) { $page['pagination.items'][$key] = Thread::createFromDbInfo($item); } -render_view('userhistory'); +$page_style = new PageStyle(PageStyle::currentStyle()); +$page_style->render('userhistory'); ?> \ No newline at end of file diff --git a/src/mibew/operator/users.php b/src/mibew/operator/users.php index 3b377b14..2c63b2c7 100644 --- a/src/mibew/operator/users.php +++ b/src/mibew/operator/users.php @@ -18,10 +18,10 @@ require_once(dirname(dirname(__FILE__)).'/libs/init.php'); require_once(dirname(dirname(__FILE__)).'/libs/operator.php'); require_once(dirname(dirname(__FILE__)).'/libs/groups.php'); -require_once(dirname(dirname(__FILE__)).'/libs/view.php'); require_once(dirname(dirname(__FILE__)).'/libs/interfaces/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/style.php'); require_once(dirname(dirname(__FILE__)).'/libs/classes/chat_style.php'); +require_once(dirname(dirname(__FILE__)).'/libs/classes/page_style.php'); $operator = check_login(); force_password($operator); @@ -48,8 +48,9 @@ $chat_style = new ChatStyle(ChatStyle::currentStyle()); $style_config = $chat_style->configurations(); $page['chatStyles.chatWindowParams'] = $style_config['chat']['window_params']; -// Load core style options -$style_config = get_core_style_config(get_page_style()); +// Load page style options +$page_style = new PageStyle(PageStyle::currentStyle()); +$style_config = $page_style->configurations(); $page['coreStyles.threadTag'] = $style_config['users']['thread_tag']; $page['coreStyles.visitorTag'] = $style_config['users']['visitor_tag']; $page['coreStyles.trackedUserWindowParams'] = $style_config['tracked']['user_window_params']; @@ -61,6 +62,6 @@ $page['coreStyles.banWindowParams'] = $style_config['ban']['window_params']; $page = array_merge($page, get_plugins_data('users')); prepare_menu($operator); -render_view('pending_users'); +$page_style->render('pending_users'); ?> \ No newline at end of file