Example #1
0
/**
 * 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');
}
Example #2
0
/**
 * 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);
}