/** * Install the plugin on activation * * @access public * @return void */ function sc_chat_activate() { global $wpdb; // Get options $opts = sc_chat_get_options(); // Create chat lines $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "chat_lines` (\r\n\t\t `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n\t\t `author` varchar(32) DEFAULT NULL,\r\n\t\t `gravatar` varchar(32) DEFAULT NULL,\r\n\t\t `receiver_ID` varchar(32) NOT NULL DEFAULT 'OP',\r\n\t\t `chat_line` varchar(700) NOT NULL,\r\n\t\t `chat_date` int(10) NOT NULL,\r\n\t\t PRIMARY KEY (`ID`),\r\n\t\t KEY `chat_date` (`chat_date`)\r\n\t\t) DEFAULT CHARSET=utf8;"); // Create chat logs table $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "chat_logs` (\r\n\t\t `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n\t\t `visitor_ID` int(10) unsigned NOT NULL,\r\n\t\t `chat_date` int(10) NOT NULL,\r\n\t\t `sender` varchar(32) DEFAULT NULL,\r\n\t\t `sender_email` varchar(64) DEFAULT NULL,\r\n\t\t `chat_line` varchar(700) NOT NULL,\r\n\t\t PRIMARY KEY (`ID`),\r\n\t\t KEY `chat_date` (`chat_date`)\r\n\t\t) DEFAULT CHARSET=utf8;"); // Create chat online table $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "chat_online` (\r\n\t\t `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n\t\t `visitor_ID` int(10) unsigned DEFAULT NULL,\r\n\t\t `name` varchar(32) DEFAULT NULL,\r\n\t\t `email` varchar(64) DEFAULT NULL,\r\n\t\t `gravatar` varchar(32) DEFAULT NULL,\r\n\t\t `last_activity` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\r\n\t\t `ip_address` int(11) unsigned DEFAULT NULL,\r\n\t\t `user_agent` varchar(120) DEFAULT NULL,\r\n\t\t `type` tinyint(1) NOT NULL DEFAULT '1',\r\n\t\t `status` tinyint(1) NOT NULL DEFAULT '1',\r\n\t\t PRIMARY KEY (`ID`),\r\n\t\t UNIQUE KEY `name` (`name`),\r\n\t\t KEY `last_activity` (`last_activity`),\r\n\t\t KEY `status` (`status`)\r\n\t\t) DEFAULT CHARSET=utf8;"); // Create chat visitors table $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $wpdb->prefix . "chat_visitors` (\r\n\t\t `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,\r\n\t\t `name` varchar(32) DEFAULT NULL,\r\n\t\t `email` varchar(64) DEFAULT NULL,\r\n\t\t `gravatar` varchar(32) DEFAULT NULL,\r\n\t\t `ip_address` int(11) unsigned DEFAULT NULL,\r\n\t\t `user_agent` varchar(120) DEFAULT NULL,\r\n\t\t PRIMARY KEY (`ID`),\r\n\t\t UNIQUE KEY `gravatar` (`gravatar`)\r\n\t\t) DEFAULT CHARSET=utf8;"); /** * Update administration role */ $admin_role = get_role('administrator'); $admin_role->add_cap('chat_with_users'); /** * Update operator role */ sc_chat_update_op_role('editor'); }
/** * 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); }