/**
     * display the widget
     * 
     * 
     * @param array $args
     * @param $instance
     * 
     * @uses katb_get_options() user options from katb_functions.php
     * @uses katb_widget_get_testimonials() from this file
     * @uses katb_widget_schema_company_aggregate() from this file
     * @uses katb_widget_display_testimonial () from this file
     * 
     */
    public function widget($args, $instance)
    {
        //get user options
        global $katb_options;
        $katb_options = katb_get_options();
        $company_name = sanitize_text_field($katb_options['katb_schema_company_name']);
        $company_website = esc_url($katb_options['katb_schema_company_url']);
        $use_aggregate_group_name = intval($katb_options['katb_use_group_name_for_aggregate']);
        $custom_aggregate_name = sanitize_text_field($katb_options['katb_custom_aggregate_review_name']);
        $use_schema = intval($katb_options['katb_use_schema']);
        $katb_tdata_array = array();
        extract($args);
        echo $before_widget;
        $title = apply_filters('widget_title', $instance['katb_display_widget_title']);
        $group = sanitize_text_field($instance['katb_display_widget_group']);
        $number = sanitize_text_field($instance['katb_display_widget_number']);
        $by = sanitize_text_field($instance['katb_display_widget_by']);
        $rotate = sanitize_text_field($instance['katb_display_widget_rotate']);
        $ids = sanitize_text_field($instance['katb_display_widget_ids']);
        $layout_override = sanitize_text_field($instance['katb_display_widget_layout_override']);
        $schema_override = sanitize_text_field($instance['katb_display_widget_schema_override']);
        if ($rotate == 'yes') {
            $rotate = 1;
        }
        //schema override - change if yes or no do nothing if default
        if ($schema_override == 'yes') {
            $use_schema = 1;
        } elseif ($schema_override == 'no') {
            $use_schema = 0;
        }
        //display the title
        if (!empty($title)) {
            echo $before_title . $title . $after_title;
        }
        //get the testimonials
        $katb_tdata_array = katb_widget_get_testimonials($group, $number, $by, $ids);
        $katb_widget_tdata = $katb_tdata_array[0];
        $katb_widget_tnumber = $katb_tdata_array[1];
        $katb_widget_error = "";
        if ($katb_widget_tnumber < 2 && $rotate == 1) {
            $katb_widget_error = esc_html__('You must have 2 approved testimonials to use a rotated display!', 'testimonial-basics');
        } elseif ($katb_widget_tnumber == 0) {
            $katb_widget_error = esc_html__('There are no approved testimonials to display!', 'testimonial-basics');
        }
        // Database queried
        //Lets display the selected testimonial(s)
        if ($katb_widget_error != '') {
            ?>
			
			<div class="katb_display_widget_error"><?php 
            echo esc_attr($katb_widget_error);
            ?>
</div>
			
		<?php 
        } else {
            if ($use_schema == 1) {
                katb_widget_schema_company_aggregate($company_name, $company_website, $group, $use_aggregate_group_name, $custom_aggregate_name);
            }
            katb_widget_display_testimonial($use_schema, $katb_widget_tdata, $katb_widget_tnumber, $rotate, $group, $layout_override);
            if ($use_schema == 1) {
                ?>
				</div>
			<?php 
            }
        }
        ?>
		
		<br style="clear:both;" />
		
		<?php 
        echo $after_widget;
    }
/**
 * Plugin register_setting() sanitize callback
 * 
 * Validate and whitelist user-input data before updating Theme 
 * Options in the database. Only whitelisted options are passed
 * back to the database, and user-input data for all whitelisted
 * options are sanitized.
 * 
 * @link	http://codex.wordpress.org/Data_Validation	Codex Reference: Data Validation
 * 
 * @param	array	$input	Raw user-input data submitted via the Theme Settings page
 * 
 * @uses katb_get_options(); found in /includes/katb_functions.php
 * @uses katb_get_settings_by_tab() found in this file
 * @uses katb_get_option_parameters() found in this file
 * @uses katb_get_option_defaults() found in this file
 * @uses katb_get_settings_page_tabs() found in this file
 * 
 * @return $valid_input	Sanitized user-input data passed to the database
 */
function katb_validate_options($input)
{
    // This is the "whitelist": current settings
    $valid_input = katb_get_options();
    // Get the array of Theme settings, by Settings Page tab
    $settingsbytab = katb_get_settings_by_tab();
    // Get the array of option parameters
    $option_parameters = katb_get_option_parameters();
    // Get the array of option defaults
    $option_defaults = katb_get_option_defaults();
    // Get list of tabs
    $tabs = katb_get_settings_page_tabs();
    //array for possible errors
    $katb_input_error = array();
    // Determine what type of submit was input
    $submittype = 'submit';
    foreach ($tabs as $tab) {
        $resetname = 'reset-' . $tab['name'];
        if (!empty($input[$resetname])) {
            $submittype = 'reset';
        }
    }
    // Determine what tab was input
    $submittab = 'general';
    foreach ($tabs as $tab) {
        $submitname = 'submit-' . $tab['name'];
        $resetname = 'reset-' . $tab['name'];
        if (!empty($input[$submitname]) || !empty($input[$resetname])) {
            $submittab = $tab['name'];
        }
    }
    // Get settings by tab
    $tabsettings = $settingsbytab[$submittab];
    // Loop through each tab setting
    foreach ($tabsettings as $setting) {
        // If no option is selected, set the default
        $valid_input[$setting] = !isset($input[$setting]) ? $option_defaults[$setting] : $input[$setting];
        // If submit, validate/sanitize $input
        if ('submit' == $submittype) {
            // Get the setting details from the defaults array
            $optiondetails = $option_parameters[$setting];
            // Get the array of valid options, if applicable
            $valid_options = isset($optiondetails['valid_options']) ? $optiondetails['valid_options'] : false;
            // Validate checkbox fields
            if ('checkbox' == $optiondetails['type']) {
                // If input value is set and is true, return true; otherwise return false
                $valid_input[$setting] = isset($input[$setting]) && true == $input[$setting] ? true : false;
            } else {
                if ('radio' == $optiondetails['type']) {
                    // Only update setting if input value is in the list of valid options
                    $valid_input[$setting] = array_key_exists($input[$setting], $valid_options) ? $input[$setting] : $valid_input[$setting];
                } else {
                    if ('select' == $optiondetails['type']) {
                        // Only update setting if input value is in the list of valid options
                        $valid_input[$setting] = array_key_exists($input[$setting], $valid_options) ? $input[$setting] : $valid_input[$setting];
                    } else {
                        if ('text' == $optiondetails['type'] || 'textarea' == $optiondetails['type']) {
                            // Validate no-HTML content
                            if ('nohtml' == $optiondetails['class']) {
                                // Pass input data through the wp_filter_nohtml_kses filter
                                $valid_input[$setting] = wp_filter_nohtml_kses($input[$setting]);
                            } else {
                                if ('html' == $optiondetails['class']) {
                                    // Pass input data through the wp_filter_kses filter
                                    $valid_input[$setting] = wp_filter_post_kses($input[$setting]);
                                } else {
                                    if ('url' == $optiondetails['class'] || 'img' == $optiondetails['class']) {
                                        //eliminate invalid and dangerous characters
                                        $valid_input[$setting] = esc_url($valid_input[$setting]);
                                    } else {
                                        if ('email' == $optiondetails['class']) {
                                            if ($valid_input[$setting] !== '') {
                                                $valid_input[$setting] = sanitize_email($valid_input[$setting]);
                                                if ($valid_input[$setting] == '') {
                                                    add_settings_error($setting, 'katb_email_error', 'Please enter a valid e-mail - blank returned', 'error');
                                                }
                                            }
                                            if ($valid_input[$setting] !== '' && !is_email($valid_input[$setting])) {
                                                $valid_input[$setting] = '';
                                                add_settings_error($setting, 'katb_email_error', 'Please enter a valid e-mail - blank returned', 'error');
                                            }
                                        } else {
                                            if ('ka_color' == $optiondetails['class']) {
                                                $valid_input[$setting] = trim($valid_input[$setting]);
                                                // trim whitespace
                                                if ($valid_input[$setting] == "") {
                                                    $valid_input[$setting] = $option_defaults[$setting];
                                                }
                                                if (substr($valid_input[$setting], 0, 1) !== '#') {
                                                    $valid_input[$setting] = '#' . $valid_input[$setting];
                                                }
                                                if (!preg_match('/^#[a-f0-9]{6}$/i', $valid_input[$setting])) {
                                                    //hex color is valid
                                                    $valid_input[$setting] = $option_defaults[$setting];
                                                    add_settings_error($setting, 'katb_hex_color_error', 'Please enter a valid Hex Color Number-default returned.', 'error');
                                                }
                                            } else {
                                                if ('css' == $optiondetails['class']) {
                                                    $valid_input[$setting] = wp_filter_nohtml_kses($valid_input[$setting]);
                                                    // css validation
                                                } else {
                                                    // Catch all
                                                    //Pass input data through the wp_filter_kses filter
                                                    $valid_input[$setting] = wp_filter_kses($input[$setting]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } elseif ('reset' == $submittype) {
            // Set $setting to the default value
            $valid_input[$setting] = $option_defaults[$setting];
        }
    }
    return $valid_input;
}
    /** ------------------- Display Widget -------------------------------------------
     * The input form for the testimonial widget is loaded. The visitor inputs a testimonial
     * and clicks the submit button and the testimonial is submitted to the database 
     * and the admin user is notified by email that they have a testimonial to review
     * and approve. If admin user can specify if a captcha is used to help in validation.
     * 
     * @param array $arg array of global theme values
     * @param array $instance array of widget form values
     * 
     * @uses katb_get_options user options from /includes/katb_functions.php
     * @uses katb_allowed_html() for allowed tags from /includes/katb_functions.php
     * 
     *-------------------------------------------------------------------------------- */
    public function widget($args, $instance)
    {
        //Get user options
        $katb_options = katb_get_options();
        $include_widget_email_note = $katb_options['katb_include_widget_email_note'];
        $widget_email_note = $katb_options['katb_widget_email_note'];
        $author_label_widget = $katb_options['katb_widget_author_label'];
        $email_label_widget = $katb_options['katb_widget_email_label'];
        $website_label_widget = $katb_options['katb_widget_website_label'];
        $location_label_widget = $katb_options['katb_widget_location_label'];
        $rating_label_widget = $katb_options['katb_widget_rating_label'];
        $testimonial_label_widget = $katb_options['katb_widget_testimonial_label'];
        $widget_captcha_label = $katb_options['katb_widget_captcha_label'];
        $submit_label_widget = $katb_options['katb_widget_submit_label'];
        $reset_label_widget = $katb_options['katb_widget_reset_label'];
        $exclude_website = $katb_options['katb_exclude_website_input'];
        $require_website = $katb_options['katb_require_website_input'];
        $exclude_location = $katb_options['katb_exclude_location_input'];
        $require_location = $katb_options['katb_require_location_input'];
        $use_ratings = $katb_options['katb_use_ratings'];
        $use_css_ratings = $katb_options['katb_use_css_ratings'];
        $auto_approve = $katb_options['katb_auto_approve'];
        $use_widget_popup = $katb_options['katb_use_widget_popup_message'];
        $labels_above = $katb_options['katb_widget_labels_above'];
        $widget_required_label = $katb_options['katb_widget_required_label'];
        $katb_widget_rating = '0.0';
        //Get the widget title and display
        extract($args);
        echo $before_widget;
        $title = apply_filters('widget_title', $instance['katb_input_widget_title']);
        if (!empty($title)) {
            echo $before_title . esc_html($title) . $after_title;
        }
        //Set up database table name for use later
        global $wpdb, $tablename;
        $tablename = $wpdb->prefix . 'testimonial_basics';
        //Initialize Variables
        if ($labels_above != 1) {
            $katb_widget_author = $author_label_widget;
            $katb_widget_email = $email_label_widget;
            $katb_widget_website = $website_label_widget;
            $katb_widget_location = $location_label_widget;
            $katb_widget_testimonial = $testimonial_label_widget;
        } else {
            $katb_widget_author = '';
            $katb_widget_email = '';
            $katb_widget_website = '';
            $katb_widget_location = '';
            $katb_widget_testimonial = '';
        }
        $katb_allowed_html = katb_allowed_html();
        $katb_widget_input_group = esc_attr($instance['katb_input_widget_group']);
        if ($katb_widget_input_group == '') {
            $katb_widget_input_group = 'All';
        }
        $katb_widget_input_form_no = esc_attr($instance['katb_input_widget_form_no']);
        if ($katb_widget_input_form_no == '') {
            $katb_widget_input_form_no = '1';
        }
        $post_name = 'widget_submitted' . $katb_widget_input_form_no;
        $reset_name = 'widget_reset' . $katb_widget_input_form_no;
        //Process input form
        if (isset($_POST[$post_name]) && wp_verify_nonce($_POST['katb_widget_form_nonce'], 'katb_nonce_2')) {
            //Validate Input
            //initialize error string
            $katb_widget_html_error = '';
            $katb_widget_popup_error = '';
            //Set default variables
            $katb_widget_order = "";
            if ($auto_approve == 1) {
                $katb_widget_approved = 1;
            } else {
                $katb_widget_approved = 0;
            }
            $katb_widget_datetime = current_time('mysql');
            //validate author
            $katb_widget_author = sanitize_text_field($_POST['tb_author']);
            if ($katb_widget_author == $author_label_widget || $katb_widget_author == '') {
                $katb_widget_html_error .= '<br/> - ' . __('Author required', 'testimonial-basics');
                $katb_widget_popup_error .= '\\n - ' . __('Author required', 'testimonial-basics');
                if ($labels_above == 1) {
                    $katb_widget_author = '';
                } else {
                    $katb_widget_author = $author_label_widget;
                }
            }
            //validate email
            $katb_widget_email = sanitize_email($_POST['tb_email']);
            if (!is_email($katb_widget_email)) {
                $katb_widget_html_error .= '<br/> - ' . __('Valid email required ', 'testimonial-basics');
                $katb_widget_popup_error .= '\\n - ' . __('Valid email required ', 'testimonial-basics');
                if ($labels_above == 1) {
                    $katb_widget_email = '';
                } else {
                    $katb_widget_email = $email_label_widget;
                }
            }
            //validate website
            if ($exclude_website != 1) {
                $katb_widget_website = trim($_POST['tb_website']);
                if ($katb_widget_website != '' && $katb_widget_website != $website_label_widget) {
                    $katb_widget_website = esc_url($katb_widget_website);
                } else {
                    if ($require_website == 1) {
                        $katb_widget_html_error .= '<br/> - ' . __('Website required ', 'testimonial-basics');
                        $katb_widget_popup_error .= '\\n - ' . __('Website required ', 'testimonial-basics');
                    }
                    $katb_widget_website = $website_label_widget;
                }
            } else {
                $katb_widget_website = '';
            }
            //validate location
            if ($exclude_location != 1) {
                $katb_widget_location = trim($_POST['tb_location']);
                if ($katb_widget_location != '' && $katb_widget_location != $location_label_widget) {
                    $katb_widget_location = sanitize_text_field($katb_widget_location);
                } else {
                    if ($require_location == 1) {
                        $katb_widget_html_error .= '<br/> - ' . __('Location required ', 'testimonial-basics');
                        $katb_widget_popup_error .= '\\n - ' . __('Location required ', 'testimonial-basics');
                    }
                    $katb_widget_location = $location_label_widget;
                }
            } else {
                $katb_widget_website = '';
            }
            //validate rating
            if ($use_ratings == 1) {
                $katb_widget_rating = sanitize_text_field($_POST['tb_rating_widget']);
                if ($katb_widget_rating == '') {
                    $katb_widget_rating = '0.0';
                }
                if ($katb_widget_rating == '1') {
                    $katb_widget_rating = '1.0';
                }
                if ($katb_widget_rating == '2') {
                    $katb_widget_rating = '2.0';
                }
                if ($katb_widget_rating == '3') {
                    $katb_widget_rating = '3.0';
                }
                if ($katb_widget_rating == '4') {
                    $katb_widget_rating = '4.0';
                }
                if ($katb_widget_rating == '5') {
                    $katb_widget_rating = '5.0';
                }
                if ($katb_widget_rating == '0') {
                    $katb_widget_rating = '0.0';
                }
            }
            //validate testimonial
            $katb_widget_testimonial = wp_kses($_POST['tb_testimonial'], $katb_allowed_html);
            //$katb_widget_testimonial = wp_kses_post( $_POST['tb_testimonial'] );
            if ($katb_widget_testimonial == $testimonial_label_widget || $katb_widget_testimonial == "") {
                $katb_widget_html_error .= '<br/> - ' . __('Testimonial required', 'testimonial-basics');
                $katb_widget_popup_error .= '\\n - ' . __('Testimonial required', 'testimonial-basics');
                if ($labels_above != 1) {
                    $katb_widget_testimonial = $testimonial_label_widget;
                } else {
                    $katb_widget_testimonial = '';
                }
            }
            //Captcha Validation
            if ($katb_options['katb_use_captcha'] == TRUE || $katb_options['katb_use_captcha'] == 1) {
                $katb_captcha_entered = sanitize_text_field($_POST['verify']);
                if ($_SESSION['katb_pass_phrase'] !== sha1($katb_captcha_entered)) {
                    $katb_widget_html_error .= '<br/> - ' . __('Captcha invalid', 'testimonial-basics');
                    $katb_widget_popup_error .= '\\n - ' . __('Captcha invalid', 'testimonial-basics');
                }
            }
            //Validation complete
            if ($katb_widget_html_error == '' && $katb_widget_popup_error == '') {
                if ($katb_widget_website == $website_label_widget) {
                    $katb_widget_website = '';
                }
                if ($katb_widget_location == $location_label_widget) {
                    $katb_widget_location = '';
                }
                //OK $error is empty so let's update the database
                $values = array('tb_date' => $katb_widget_datetime, 'tb_order' => $katb_widget_order, 'tb_approved' => $katb_widget_approved, 'tb_group' => $katb_widget_input_group, 'tb_name' => $katb_widget_author, 'tb_email' => $katb_widget_email, 'tb_location' => $katb_widget_location, 'tb_url' => $katb_widget_website, 'tb_pic_url' => '', 'tb_rating' => $katb_widget_rating, 'tb_testimonial' => $katb_widget_testimonial);
                $formats_values = array('%s', '%d', '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s');
                $wpdb->insert($tablename, $values, $formats_values);
                //send email
                if (isset($katb_options['katb_contact_email']) && $katb_options['katb_contact_email'] != '') {
                    $emailTo = $katb_options['katb_contact_email'];
                } else {
                    $emailTo = get_option('admin_email');
                }
                $subject = __('You have received a testimonial!', 'testimonial-basics');
                $body = __('Name: ', 'testimonial-basics') . ' ' . stripcslashes($katb_widget_author) . "<br/><br/>" . __('Email: ', 'testimonial-basics') . ' ' . stripcslashes($katb_widget_email) . "<br/><br/>" . __('Comments: ', 'testimonial-basics') . "<br/><br/>" . stripcslashes($katb_widget_testimonial) . "<br/><br/>" . __('Log in to approve or view it:', 'testimonial-basics') . '<a href="' . site_url("/wp-login.php") . '" title="your site login">Log In</a>';
                $headers = 'From: ' . stripcslashes($katb_widget_author) . ' <' . stripcslashes($katb_widget_email) . '>';
                add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
                wp_mail($emailTo, $subject, $body, $headers);
                $_SESSION['katb_widget_submitted'] = SHA1('true');
                //Initialize Variables
                if ($labels_above != 1) {
                    $katb_widget_author = $author_label_widget;
                    $katb_widget_email = $email_label_widget;
                    $katb_widget_website = $website_label_widget;
                    $katb_widget_location = $location_label_widget;
                    $katb_widget_testimonial = $testimonial_label_widget;
                } else {
                    $katb_widget_author = '';
                    $katb_widget_email = '';
                    $katb_widget_website = '';
                    $katb_widget_location = '';
                    $katb_widget_testimonial = '';
                }
                $katb_widget_rating = '0.0';
            } else {
                if ($use_widget_popup == 1) {
                    $widget_error_message = __('There were errors so the testimonial was not added: ', 'testimonial-basics') . '\\n' . $katb_widget_popup_error;
                    ?>
<script>alert('<?php 
                    echo $widget_error_message;
                    ?>
')</script>
				<?php 
                } else {
                    echo '<div class="katb_widget_error">' . __('Error', 'testimonial-basics') . $katb_widget_html_error . '</div>';
                }
                if ($katb_widget_website == '') {
                    $katb_widget_website = $website_label_widget;
                }
                if ($katb_widget_location == '') {
                    $katb_widget_location = $location_label_widget;
                }
            }
        }
        /* ---------- Reset button is clicked ---------------- */
        if (isset($_POST[$reset_name])) {
            $katb_widget_author = $author_label_widget;
            $katb_widget_email = $email_label_widget;
            $katb_widget_website = $website_label_widget;
            $katb_widget_location = $location_label_widget;
            $katb_widget_testimonial = $testimonial_label_widget;
            $katb_widget_rating = '0.0';
        }
        ?>
		<div class="katb_widget_form">
			
			<?php 
        if ($include_widget_email_note == 1) {
            ?>
				<p><?php 
            echo esc_attr(stripslashes($widget_email_note));
            ?>
</p>
			<?php 
        }
        ?>
			
			<form method="POST">
				
				<?php 
        wp_nonce_field("katb_nonce_2", "katb_widget_form_nonce");
        ?>
				
				<?php 
        if ($labels_above == 1) {
            echo '<label class="katb_widget_input_label">' . esc_attr($author_label_widget) . '</label>';
        }
        ?>
				<input  class="katb_input" type="text" name="tb_author" value="<?php 
        echo esc_attr($katb_widget_author);
        ?>
" />
			
				<?php 
        if ($labels_above == 1) {
            echo '<label class="katb_widget_input_label">' . esc_attr($email_label_widget) . '</label>';
        }
        ?>
				<input  class="katb_input" type="text" name="tb_email" value="<?php 
        echo esc_attr($katb_widget_email);
        ?>
" />
			
				<?php 
        if ($exclude_website != 1) {
            ?>
					<?php 
            if ($labels_above == 1) {
                echo '<label class="katb_widget_input_label">' . esc_attr($website_label_widget) . '</label>';
            }
            ?>
					<input  class="katb_input" type="text" name="tb_website" value="<?php 
            echo esc_attr($katb_widget_website);
            ?>
" />
				<?php 
        }
        if ($exclude_location != 1) {
            ?>
					<?php 
            if ($labels_above == 1) {
                echo '<label class="katb_widget_input_label">' . esc_attr($location_label_widget) . '</label>';
            }
            ?>
					<input  class="katb_input" type="text" name="tb_location" value="<?php 
            echo esc_attr($katb_widget_location);
            ?>
" />
				<?php 
        }
        if ($use_ratings == 1) {
            if ($use_css_ratings != 1) {
                ?>
					
						<label class="katb_widget_input_label"><?php 
                echo esc_attr($rating_label_widget);
                ?>
</label>
						<input type="range" min="0" max="5" value="<?php 
                echo $katb_widget_rating;
                ?>
" step="0.5" name="tb_rating_widget" id="katb_widget_rateit_input_<?php 
                echo $katb_widget_input_form_no;
                ?>
" class="katb_widget_rating_input">
						<div class="rateit katb_widget_input_rating" data-rateit-backingfld="#katb_widget_rateit_input_<?php 
                echo $katb_widget_input_form_no;
                ?>
"></div>
					
					<?php 
            } else {
                ?>
						
						<label class="katb_widget_input_label"><?php 
                echo esc_attr($rating_label_widget);
                ?>
</label>
						
						<select name="tb_rating_widget" class="katb_css_rating_select_widget">
							<option <?php 
                selected($katb_widget_rating);
                ?>
 value="<?php 
                echo $katb_widget_rating;
                ?>
"><?php 
                echo $katb_widget_rating;
                ?>
</option>
							<option value="0.0" <?php 
                selected(esc_attr($katb_widget_rating), "0.0");
                ?>
>0.0</option>
							<option value="0.5" <?php 
                selected(esc_attr($katb_widget_rating), "0.5");
                ?>
>0.5</option>
							<option value="1.0" <?php 
                selected(esc_attr($katb_widget_rating), "1.0");
                ?>
>1.0</option>
							<option value="1.5" <?php 
                selected(esc_attr($katb_widget_rating), "1.5");
                ?>
>1.5</option>
							<option value="2.0" <?php 
                selected(esc_attr($katb_widget_rating), "2.0");
                ?>
>2.0</option>
							<option value="2.5" <?php 
                selected(esc_attr($katb_widget_rating), "2.5");
                ?>
>2.5</option>
							<option value="3.0" <?php 
                selected(esc_attr($katb_widget_rating), "3.0");
                ?>
>3.0</option>
							<option value="3.5" <?php 
                selected(esc_attr($katb_widget_rating), "3.5");
                ?>
>3.5</option>
							<option value="4.0" <?php 
                selected(esc_attr($katb_widget_rating), "4.0");
                ?>
>4.0</option>
							<option value="4.5" <?php 
                selected(esc_attr($katb_widget_rating), "4.5");
                ?>
>4.5</option>
							<option value="5.0" <?php 
                selected(esc_attr($katb_widget_rating), "5.0");
                ?>
>5.0</option>
						</select>
					
					<?php 
            }
        }
        ?>
				
				<?php 
        if ($labels_above == 1) {
            echo '<br/><label class="katb_widget_input_label">' . esc_attr($testimonial_label_widget) . '</label>';
        }
        ?>
				<textarea name="tb_testimonial" rows="5" ><?php 
        echo esc_attr($katb_widget_testimonial);
        ?>
</textarea>
				

				<?php 
        if ($katb_options['katb_show_html_widget'] == TRUE || $katb_options['katb_show_html_widget'] == 1) {
            echo '<p>HTML: <code>a p br i em strong q h1-h6</code></p>';
        }
        if ($katb_options['katb_use_captcha'] == TRUE || $katb_options['katb_use_captcha'] == 1) {
            ?>
					
					<div class="katb_widget_captcha">
						<?php 
            if ($katb_options['katb_use_color_captcha_2'] == TRUE || $katb_options['katb_use_color_captcha_2'] == 1) {
                echo katb_color_captcha_2();
            } elseif ($katb_options['katb_use_color_captcha'] == TRUE || $katb_options['katb_use_color_captcha'] == 1) {
                ?>
							<img src="<?php 
                echo site_url();
                ?>
/wp-content/plugins/testimonial-basics/includes/katb_captcha_color.php" alt="Verification Captcha" />
						<?php 
            } else {
                ?>
							<img src="<?php 
                echo site_url();
                ?>
/wp-content/plugins/testimonial-basics/includes/katb_captcha_bw.php" alt="Verification Captcha" />
						<?php 
            }
            ?>
						<input class="katb_captcha_widget_input" type="text" id="verify" name="verify" value="<?php 
            echo $widget_captcha_label;
            ?>
" onclick="this.select();" /><br/>
					</div>
					
				<?php 
        }
        ?>
				
				<input class="katb_widget_submit" type="submit" name="<?php 
        echo $post_name;
        ?>
" value="<?php 
        echo esc_attr($submit_label_widget);
        ?>
" />
				
				<input class="katb_widget_reset" type="submit" name="<?php 
        echo $reset_name;
        ?>
" value="<?php 
        echo esc_attr($reset_label_widget);
        ?>
" />
			
			</form>
			
			<?php 
        if ($widget_required_label != '') {
            echo '<div class="katb_clear_fix"></div><p>' . esc_attr($widget_required_label) . '</p>';
        }
        ?>
			
			<div class="katb_clear_fix"></div>
			
			<?php 
        if ($katb_options['katb_show_widget_gravatar_link'] == 1) {
            ?>
				<span class="katb_use_gravatar_wrap">
					<span class="use_gravatar"><?php 
            _e('Add a Photo? ', 'testimonial-basics');
            ?>
</span>
					<a href="https://en.gravatar.com/" title="Gravatar Site" target="_blank" >
						<img class="gravatar_logo" src="<?php 
            echo plugins_url();
            ?>
/testimonial-basics/includes/Gravatar80x16.jpg" alt="Gravatar Website" title="Gravatar Website" />
					</a>
				</span>
				
			<?php 
        }
        ?>
			
		</div>
		
		<?php 
        echo '<br style="clear:both;" />';
        echo $after_widget;
        if (isset($_SESSION['katb_widget_submitted']) && $_SESSION['katb_widget_submitted'] == SHA1('true')) {
            //Optional supmitted popup message
            if ($use_widget_popup == 1) {
                ?>
				<script type="text/javascript"><?php 
                echo 'alert("' . __("Testimonial Submitted - Thank You!", "testimonial-basics") . '")';
                ?>
</script>
			<?php 
            } else {
                echo '<div class="katb_widget_sent">' . __('Testimonial Submitted - Thank You!', 'testimonial-basics') . '</div>';
            }
            $_SESSION['katb_widget_submitted'] = SHA1('false');
        }
    }
Ejemplo n.º 4
0
/** ------------- Enqueue Scripts ---------------------------------------
 *
 * Loads the excerpt, rotator, and ratings script if required
 * 
 * @uses katb_get_options() from katb_functions.php
 * 
 * ----------------------------------------------------------------------- */
function katb_load_scripts()
{
    $katb_options = katb_get_options();
    if ($katb_options['katb_widget_use_excerpts'] == 1 || $katb_options['katb_use_excerpts'] == 1) {
        wp_enqueue_script('testimonial_basics_excerpt_js', plugins_url() . '/testimonial-basics/js/katb_excerpt_doc_ready.js', array('jquery'), '1.0.0', true);
    }
    if ($katb_options['katb_enable_rotator'] != 0) {
        wp_enqueue_script('testimonial_basics_rotator_js', plugins_url() . '/testimonial-basics/js/katb_rotator_doc_ready.js', array('jquery'), '1.0.0', true);
        wp_enqueue_script('jquery-effects-slide');
    }
    if ($katb_options['katb_use_ratings'] == 1 && $katb_options['katb_use_css_ratings'] != 1) {
        wp_enqueue_script('testimonial_basics_rateit_js', plugins_url() . '/testimonial-basics/js/rateit/jquery.rateit.min.js', array('jquery'), '1.0.0', true);
    }
}
Ejemplo n.º 5
0
/**
 * This function provides the meta for the left box of the side meta layout
 * for the testimonial
 * 
 * @param string $i is the testimonial count in the loop
 * @param array $katb_tdata is the testimonial data
 * @param boolean $use_schema
 * 
 * @uses katb_get_options() user options from katb_functions.php
 * 
 * @return $meta_side html string 
 */
function katb_meta_side($i, $katb_tdata, $use_schema)
{
    //get user options
    $katb_options = katb_get_options();
    $meta_side = '';
    $meta_side .= '<div class="katb_meta_side">';
    //author
    if ($use_schema != 1) {
        $meta_side .= '<span class="katb_author">' . sanitize_text_field(stripcslashes($katb_tdata[$i]['tb_name'])) . '</span>';
    } else {
        $meta_side .= '<div itemprop="author" itemscope itemtype="http://schema.org/Person">';
        $meta_side .= '<span class="katb_author" itemprop="name">' . sanitize_text_field(stripcslashes($katb_tdata[$i]['tb_name'])) . '</span></div>';
    }
    //location
    if ($katb_options['katb_show_location'] == 1 && $katb_tdata[$i]['tb_location'] != '') {
        $meta_side .= '<br/><span class="katb_location">' . sanitize_text_field(stripcslashes($katb_tdata[$i]['tb_location'])) . '</span>';
    }
    //website
    if ($katb_options['katb_show_website'] == 1 && $katb_tdata[$i]['tb_url'] != '') {
        $meta_side .= '<br/><span class="katb_website"><a href="' . esc_url($katb_tdata[$i]['tb_url']) . '" title="' . esc_url($katb_tdata[$i]['tb_url']) . '" target="_blank" >Website</a></span>';
    }
    //date
    if ($katb_options['katb_show_date'] == 1) {
        $katb_date = sanitize_text_field($katb_tdata[$i]['tb_date']);
        if ($use_schema != 1) {
            $meta_side .= '<br/><span class="katb_date">' . mysql2date(get_option('date_format'), $katb_date) . '</span>';
        } else {
            $meta_side .= '<span class="katb_date">';
            $meta_side .= '<meta itemprop="datePublished" content="' . mysql2date('Y-m-d', $katb_date) . '">';
            $meta_side .= '&nbsp;&nbsp;' . mysql2date('Y-m-d', $katb_date) . '</span>';
        }
    }
    $meta_side .= '</div>';
    return $meta_side;
}
Ejemplo n.º 6
0
/**
 * Enqueues front-end CSS for themeslug Theme
 * modified from Twenty Fifteen 1.0
 * @see wp_add_inline_style() to use this function to append the 
 * custom styles to style.css
 * 
 * bring your options into this function to set up your conditional css
 * 
 */
function katb_custom_css()
{
    $katb_options = katb_get_options();
    $katb_css = '';
    $katb_css .= '/* ==== Testimonial Basics Custom Styles  ==== */';
    //Content Custom Styles
    if ($katb_options['katb_use_italic_style'] == 1) {
        $katb_css .= '.katb_test_text,.katb_test_text_basic {font-style: italic;}';
    }
    $katb_css .= '.katb_test_box,.katb_test_box_basic,';
    $katb_css .= '.katb_test_box_side_meta,.katb_test_box_basic_side_meta,';
    $katb_css .= '.katb_test_box_side_meta,.katb_test_box_basic_side_meta,';
    $katb_css .= '.katb_schema_summary_box_basic,.katb_schema_summary_box_basic_side_meta,';
    $katb_css .= '.katb_schema_summary_box,.katb_schema_summary_box_side_meta,';
    $katb_css .= '.katb_paginate';
    $katb_css .= '{ font-size: ' . esc_html($katb_options['katb_content_font_size']) . '; }';
    if ($katb_options['katb_content_font'] != 'default font') {
        $katb_css .= '.katb_test_wrap *,.katb_test_wrap_basic *,';
        $katb_css .= '.katb_test_wrap_side_meta *,.katb_test_wrap_basic_side_meta *,';
        $katb_css .= '.katb_popup_wrap.katb_content *,.katb_paginate *,';
        $katb_css .= '.katb_schema_summary_wrap *,.katb_schema_summary_wrap *';
        $katb_css .= '{ font-family: ' . sanitize_text_field($katb_options['katb_content_font']) . ';}';
    } else {
        $katb_css .= '.katb_test_wrap *,.katb_test_wrap_basic *,';
        $katb_css .= '.katb_test_wrap_side_meta *,.katb_test_wrap_basic_side_meta *,';
        $katb_css .= '.katb_popup_wrap.katb_content *,';
        $katb_css .= '.katb_schema_summary_wrap *,.katb_paginate *';
        $katb_css .= '{ font-family: inherit; }';
    }
    $katb_css .= '.katb_test_wrap,.katb_schema_summary_wrap,';
    $katb_css .= '.katb_test_wrap_side_meta .katb_left_box,';
    $katb_css .= '.katb_schema_summary_box_side_meta .katb_schema_company_wrap_side_meta';
    $katb_css .= '{ background-color: ' . esc_html($katb_options['katb_background_wrap_color']) . ';';
    $katb_css .= 'color: ' . esc_html($katb_options['katb_testimonial_box_font_color']) . ';}';
    $katb_css .= '.katb_test_box,.katb_schema_summary_box,';
    $katb_css .= '.katb_test_wrap_side_meta .katb_right_box,';
    $katb_css .= '.katb_schema_summary_box_side_meta .katb_aggregate_wrap_side_meta,';
    $katb_css .= '.katb_test_text *';
    $katb_css .= '{background-color: ' . esc_html($katb_options['katb_testimonial_box_color']) . ';';
    $katb_css .= 'color: ' . esc_html($katb_options['katb_testimonial_box_font_color']) . '!important; }';
    $katb_css .= '.katb_test_text h1,.katb_test_text h2,';
    $katb_css .= '.katb_test_text h3,.katb_test_text h4,.katb_test_text h5,.katb_test_text h6 {';
    $katb_css .= 'color: ' . esc_html($katb_options['katb_testimonial_box_font_color']) . '!important; }';
    $katb_css .= '/*author,location, and date custom colors */';
    $katb_css .= '.katb_test_box .katb_author,.katb_test_box_side_meta .katb_author,';
    $katb_css .= '.katb_test_box .katb_date,.katb_test_box_side_meta .katb_date,';
    $katb_css .= '.katb_test_box .katb_location,.katb_test_box_side_meta .katb_location';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_author_location_color']) . '!important; }';
    $katb_css .= '.katb_test_box a,.katb_schema_summary_box a,.katb_test_box_side_meta a,';
    $katb_css .= '.katb_schema_summary_box_side_meta a';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_website_link_color']) . '!important;}';
    $katb_css .= '.katb_test_box a:hover,.katb_schema_summary_box a:hover ,.katb_test_box_side_meta a:hover,';
    $katb_css .= '.katb_schema_summary_box_side_meta a:hover';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_website_link_hover_color']) . '!important; }';
    $katb_css .= '.katb_paginate input {';
    $katb_css .= 'background-color: ' . esc_html($katb_options['katb_testimonial_box_color']) . '!important;';
    $katb_css .= 'color: ' . esc_html($katb_options['katb_testimonial_box_font_color']) . '!important;';
    $katb_css .= 'font-size: ' . esc_html($katb_options['katb_content_font_size']) . '!important; }';
    $katb_css .= '.katb_input_style ';
    $katb_css .= '{font-size: ' . esc_html($katb_options['katb_content_input_font_size']) . '!important; }';
    // Widget Display Custom Styles
    if ($katb_options['katb_widget_use_italic_style'] == 1) {
        $katb_css .= '.katb_widget_text,.katb_widget_text_basic {font-style: italic;}';
    }
    $katb_css .= '.katb_widget_box,.katb_widget_box_basic,';
    $katb_css .= '.katb_widget_rotator_box,.katb_widget_rotator_box_basic';
    $katb_css .= '{ font-size: ' . esc_html($katb_options['katb_widget_font_size']) . ' }';
    if ($katb_options['katb_widget_font'] != 'default font') {
        $katb_css .= '.katb_widget_wrap *,.katb_widget_wrap_basic *,';
        $katb_css .= '.katb_widget_rotator_wrap *,.katb_widget_rotator_wrap_basic *,';
        $katb_css .= '.katb_popup_wrap.katb_widget *';
        $katb_css .= '{ font-family: ' . sanitize_text_field($katb_options['katb_widget_font']) . '; }';
    } else {
        $katb_css .= '.katb_widget_wrap *,.katb_widget_wrap_basic *,';
        $katb_css .= '.katb_widget_rotator_wrap *,.katb_widget_rotator_wrap_basic *,';
        $katb_css .= '.katb_popup_wrap.katb_widget *';
        $katb_css .= '{ font-family: inherit; }';
    }
    $katb_css .= '.katb_widget_rotator_wrap,.katb_widget_box {';
    $katb_css .= 'background-color: ' . esc_html($katb_options['katb_widget_background_color']) . '; }';
    $katb_css .= '.katb_widget_rotator_wrap .katb_widget_title_bar,';
    $katb_css .= '.katb_widget_wrap .katb_widget_title_bar,';
    $katb_css .= '.katb_widget_text * ';
    $katb_css .= '{	color: ' . esc_html($katb_options['katb_widget_font_color']) . '!important;}';
    $katb_css .= '.katb_widget_box .katb_widget_meta_bottom,.katb_widget_box .katb_widget_meta_top,';
    $katb_css .= '.katb_widget_box .katb_widget_meta_above_or_below,.katb_widget_rotator_box .katb_widget_meta_bottom,';
    $katb_css .= '.katb_widget_rotator_box .katb_widget_meta_top,.katb_widget_rotator_box .katb_widget_meta_above_or_below ';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_widget_author_location_color']) . ';}';
    $katb_css .= '.katb_widget_box a,.katb_widget_rotator_box a ';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_widget_website_link_color']) . '!important;}';
    $katb_css .= '.katb_widget_box a:hover,.katb_widget_rotator_box a:hover ';
    $katb_css .= '{color: ' . esc_html($katb_options['katb_widget_website_link_hover_color']) . '!important;}';
    $katb_css .= '.katb_widget_box .katb_image_meta_bottom,';
    $katb_css .= '.katb_widget_rotator_box .katb_image_meta_bottom,';
    $katb_css .= '.katb_widget_box .katb_centered_image_meta_bottom,';
    $katb_css .= '.katb_widget_rotator_box .katb_centered_image_meta_bottom';
    $katb_css .= '{ border-top: 1px solid ' . esc_html($katb_options['katb_widget_divider_color']) . '; }';
    $katb_css .= '.katb_widget_box .katb_image_meta_top,';
    $katb_css .= '.katb_widget_rotator_box .katb_image_meta_top,';
    $katb_css .= '.katb_widget_box .katb_centered_image_meta_top,';
    $katb_css .= '.katb_widget_rotator_box .katb_centered_image_meta_top';
    $katb_css .= '{border-bottom: 1px solid ' . esc_html($katb_options['katb_widget_divider_color']) . '; }';
    //* Widget Input Form
    $katb_css .= '.katb_widget_form {';
    $katb_css .= 'font-size: ' . esc_html($katb_options['katb_widget_input_font_size']) . '!important; }';
    //Other Custom Styles
    if ($katb_options['katb_use_css_ratings'] == 1) {
        $shadow_color = katb_hex_to_rgba(esc_html($katb_options['katb_star_shadow_color']));
        $katb_css .= '.katb_css_rating i { ';
        $katb_css .= 'color: ' . esc_html($katb_options['katb_star_color']) . '!important;';
        $katb_css .= 'text-shadow: 2px 2px 2px rgba( ' . $shadow_color[0] . ',' . $shadow_color[1] . ',' . $shadow_color[2] . ',0.5 )!important;}';
    }
    $katb_css .= wp_filter_nohtml_kses($katb_options['katb_custom_css']);
    return $katb_css;
}