/** * Setup the Admin menu in WordPress * * @access public * @return void */ function sc_chat_admin_menu() { $opts = sc_chat_get_options(); /** * Menu for Admins */ if (current_user_can('manage_options')) { add_menu_page('', __('Chat Console', 'sc_chat'), 'administrator', 'sc_opt_pg_a', 'sc_chat_console_template', SC_CHAT_PLUGIN_URL . '/assets/img/sc-icon-16.png', '49.9874'); // Chat logs if (scchatvlk($opts['purchase_key'])) { add_submenu_page('sc_opt_pg_a', __('Chat Logs', 'sc_chat'), __('Logs', 'sc_chat'), 'administrator', 'sc_chat_m_chat_logs', 'sc_chat_render_chat_logs'); } // Options add_submenu_page('sc_opt_pg_a', __('Chat Options', 'sc_chat'), __('Options', 'sc_chat'), 'administrator', 'sc_chat_m_chat_opts', 'sc_chat_render_chat_opts'); } else { /** * Menu for Operators */ add_menu_page('', 'Chat Console', 'sc_chat_op', 'sc_opt_pg', 'sc_chat_console_template', SC_CHAT_PLUGIN_URL . '/assets/img/sc-icon-16.png', '49.9874'); // Chat logs add_submenu_page('sc_opt_pg', __('Chat Logs', 'sc_chat'), __('Logs', 'sc_chat'), 'sc_chat_op', 'sc_chat_m_chat_logs', 'sc_chat_render_chat_logs'); } // Call register options function add_action('admin_init', 'sc_chat_register_options'); }
/** * Sanitize and validate form input. Accepts an array, return a sanitized array. * * @access public * @return array */ function sc_chat_options_validate($input) { // Get default values $output = $defaults = sc_chat_get_options(); switch ($_POST['active_tab']) { // General settings case 'general': // checkbox $output['hide_chat_when_offline'] = @$input['hide_chat_when_offline'] == 1 ? 1 : 0; $output['display_chatbox'] = @$input['display_chatbox'] == 1 ? 1 : 0; $output['always_show_homepage'] = @$input['always_show_homepage'] == 1 ? 1 : 0; $output['disable_in_mobile'] = @$input['disable_in_mobile'] == 1 ? 1 : 0; $output['get_notifications'] = @$input['get_notifications'] == 1 ? 1 : 0; // text $output['offline_msg_email'] = trim($input['offline_msg_email']); $output['purchase_key'] = trim($input['purchase_key']); // int $output['allowed_visitors'] = intval($input['allowed_visitors']); // select $output['op_role'] = $input['op_role']; // Update operator role sc_chat_update_op_role($input['op_role']); // Validate license key scchatvlk(trim($input['purchase_key']), true); break; // Customize skin // Customize skin case 'customize_skin': // custom CSS $output['custom_css'] = trim($input['custom_css']); // int $output['delay'] = intval($input['delay']); $output['offset'] = intval($input['offset']); $output['default_radius'] = intval($input['default_radius']); $output['skin_box_width'] = intval($input['skin_box_width']); $output['skin_box_height'] = intval($input['skin_box_height']); // checkbox $output['use_css_anim'] = @$input['use_css_anim'] == 1 ? 1 : 0; $output['load_skin_css'] = @$input['load_skin_css'] == 1 ? 1 : 0; $output['compress_css'] = @$input['compress_css'] == 1 ? 1 : 0; $output['compress_js'] = @$input['compress_js'] == 1 ? 1 : 0; $output['sound_package'] = @$input['sound_package'] == 'none' ? 'none' : 'basic'; // select $output['ask_name_field'] = $input['ask_name_field']; $output['ask_phone_field'] = $input['ask_phone_field']; $output['position'] = $input['position']; // Color inputs $output['skin_chatbox_bg'] = $input['skin_chatbox_bg']; $output['skin_chatbox_fg'] = $input['skin_chatbox_fg']; $output['skin_header_bg'] = $input['skin_header_bg']; $output['skin_header_fg'] = $input['skin_header_fg']; $output['skin_submit_btn_bg'] = $input['skin_submit_btn_bg']; $output['skin_submit_btn_fg'] = $input['skin_submit_btn_fg']; // radio $output['skin_type'] = $input['skin_type']; break; // Messages // Messages case 'messages': // text $output['before_chat_header'] = trim($input['before_chat_header']); $output['in_chat_header'] = trim($input['in_chat_header']); $output['prechat_welcome_msg'] = trim($input['prechat_welcome_msg']); $output['welcome_msg'] = trim($input['welcome_msg']); $output['chat_btn'] = trim($input['chat_btn']); $output['input_box_msg'] = trim($input['input_box_msg']); $output['offline_header'] = trim($input['offline_header']); $output['offline_body'] = trim($input['offline_body']); $output['end_chat_field'] = trim($input['end_chat_field']); $output['name_field'] = trim($input['name_field']); $output['email_field'] = trim($input['email_field']); $output['phone_field'] = trim($input['phone_field']); $output['req_text'] = trim($input['req_text']); $output['chat_btn'] = trim($input['chat_btn']); $output['input_box_placeholder'] = trim($input['input_box_placeholder']); $output['input_box_msg'] = trim($input['input_box_msg']); $output['question_field'] = trim($input['question_field']); $output['send_btn'] = trim($input['send_btn']); break; } return apply_filters('sc_chat_options_validate', $output, $input, $defaults); }