/** RATING HTML HELPER * This function is a helper function to set up the rating html * * @param boolean $use_schema user option * @param boolean $use_ratings user option * @param boolean $use_css_ratings user option * @param array $katb_widget_tdata testimonial data * @param integer $i where we are in the $katb_widget_tdata loop * * @return $html which is the html for the for title bar */ function katb_widget_insert_rating($use_schema, $use_ratings, $use_css_ratings, $katb_widget_tdata, $i) { $html = ''; $html2 = ''; $html3 = ''; $html_meta = ''; if ($use_ratings == 1) { $html2 .= '<div class="katb_widget_rating">'; //Display the rating if selected if ($use_ratings == 1) { $rating = $katb_widget_tdata[$i]['tb_rating']; if ($rating == '') { $rating = 0; } if ($rating > 0) { if ($use_css_ratings == 1) { $html .= '<span class="katb_css_rating">'; $html .= katb_css_rating($rating); $html .= '</span>'; } else { $html .= '<span class="rateit smallstars katb_widget_display_rating" data-rateit-starwidth="12" data-rateit-starheight="12" data-rateit-value="' . esc_attr($rating) . '" data-rateit-ispreset="true" data-rateit-readonly="true"></span>'; } //schema schema schema :) if ($use_schema == 1) { $html_meta .= '<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> '; $html_meta .= '<meta itemprop="worstRating" content="0" />'; $html_meta .= '<meta itemprop="ratingValue" content="' . esc_attr($rating) . '" />'; $html_meta .= '<meta itemprop="bestRating" content="5" />'; $html_meta .= '</div>'; } } } $html3 .= '</div>'; } $html_return = ''; if ($html == '') { if ($html_meta != '') { $html_return .= $html_meta; } } else { $html_return .= $html2 . $html . $html_meta . $html3; } return $html_return; }
/** * This function sets up the html string for the aggregate markup * * The database is queried for the group name to get the average rating, the * review count with ratings and the total review count. It then sets up the * return string based on whether or not the summary is to be dispayed or hidden with * meta tags * * @param boolean $display_aggregate * @param string $group_name * @param boolean $use_group_name_for_aggregate * @param string $custom_aggregate_name * * @return $agg_html string of html */ function katb_schema_aggregate_markup($display_aggregate, $group_name, $use_group_name_for_aggregate, $custom_aggregate_name, $layout) { //setup database table global $wpdb, $tablename; $tablename = $wpdb->prefix . 'testimonial_basics'; $katb_options = katb_get_options(); $use_css_ratings = $katb_options['katb_use_css_ratings']; if ($layout == "Side Meta") { $side_meta_class = "_side_meta"; } else { $side_meta_class = ''; } $agg_html = ''; //query database if ($group_name != 'all') { $aggregate_data = $wpdb->get_results(" SELECT `tb_rating` FROM `{$tablename}` WHERE `tb_approved` = '1' AND `tb_group` = '{$group_name}' ", ARRAY_A); $aggregate_total_approved = $wpdb->num_rows; } else { $aggregate_data = $wpdb->get_results(" SELECT `tb_rating` FROM `{$tablename}` WHERE `tb_approved` = '1' ", ARRAY_A); $aggregate_total_approved = $wpdb->num_rows; } $count = 0; $sum = 0; for ($j = 0; $j < $aggregate_total_approved; $j++) { //wp_die($aggregate_data[j]['tb_rating']); $rating = (double) $aggregate_data[$j]['tb_rating']; if ($rating != '' && $rating > 0) { $count = $count + 1; $sum = $sum + (double) $aggregate_data[$j]['tb_rating']; } } $total_votes = $count; if ($count == 0) { $avg_rating = 0; } else { $avg_rating = round($sum / $count, 1); } if ($avg_rating == 0) { $rounded_avg_rating = 0; } else { //round to nearest 0.5 out of 5 if ($avg_rating >= ceil($avg_rating) - 0.25) { $rounded_avg_rating = ceil($avg_rating); } elseif ($avg_rating >= ceil($avg_rating) - 0.75) { $rounded_avg_rating = ceil($avg_rating) - 0.5; } else { $rounded_avg_rating = floor($avg_rating); } } if ($count > 1 && $avg_rating > 0 && $rounded_avg_rating > 0) { if ($display_aggregate != 1) { $agg_html .= '<div class="katb_no_display" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">'; if ($use_group_name_for_aggregate == 1 && $group_name != 'all') { $agg_html .= '<meta content="' . stripcslashes(esc_attr($group_name)) . '" itemprop="itemreviewed" />'; } else { if ($use_group_name_for_aggregate != 1 && $custom_aggregate_name != '') { $agg_html .= '<meta content="' . stripcslashes(esc_attr($custom_aggregate_name)) . '" itemprop="itemreviewed" />'; } else { $agg_html .= '<meta content="' . esc_html__('All Reviews', 'testimonial-basics') . '" itemprop="itemreviewed" />'; } } $agg_html .= '<span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">'; $agg_html .= '<meta content="' . stripcslashes(esc_attr($avg_rating)) . '" itemprop="average" />'; $agg_html .= '<meta content="0" itemprop="worst" />'; $agg_html .= '<meta content="5" itemprop="best" />'; $agg_html .= '</span>'; $agg_html .= '<meta content="' . stripcslashes(esc_attr($total_votes)) . '" itemprop="votes" />'; $agg_html .= '<meta content="' . stripcslashes(esc_attr($aggregate_total_approved)) . '" itemprop="count" />'; $agg_html .= '</div>'; } else { $agg_html .= '<div class="katb_aggregate_wrap' . $side_meta_class . '" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">'; $agg_html .= '<span class="aggregate_review_label">' . esc_html__('Aggregate Review', 'testimonial-basics') . ' :</span> '; if ($use_group_name_for_aggregate == 1 && $group_name != 'all') { $agg_html .= '<span class="aggregate_itemreviewed" itemprop="itemreviewed">' . stripcslashes(esc_attr($group_name)) . '</span><br/>'; } else { if ($use_group_name_for_aggregate != 1 && $custom_aggregate_name != '') { $agg_html .= '<span class="aggregate_itemreviewed" itemprop="itemreviewed">' . stripcslashes(esc_attr($custom_aggregate_name)) . '</span><br/>'; } else { $agg_html .= '<span class="aggregate_itemreviewed" itemprop="itemreviewed">' . esc_html__('All Reviews', 'testimonial-basics') . '</span><br/>'; } } if ($use_css_ratings != 1) { $agg_html .= '<span class="rateit katb_display_rating" data-rateit-value="' . stripcslashes(esc_attr($rounded_avg_rating)) . '" data-rateit-ispreset="true" data-rateit-readonly="true"></span>'; } else { $agg_html .= '<span class="katb_css_rating katb_aggy">'; $agg_html .= katb_css_rating($rounded_avg_rating); $agg_html .= '</span>'; } $agg_html .= ' - '; $agg_html .= '<span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">'; $agg_html .= '<span class="average_number" itemprop="average">' . stripcslashes(esc_attr($avg_rating)) . '</span>'; $agg_html .= '<span class="out_of"> ' . esc_html__('out of', 'testimonial-basics') . ' </span>'; $agg_html .= '<span class="best" itemprop="best">5</span>'; $agg_html .= '</span>'; $agg_html .= ', '; if ($total_votes == 1) { $agg_html .= '<span class="total_votes" itemprop="votes">' . stripcslashes(esc_attr($total_votes)) . ' </span>'; $agg_html .= '<span class="votes_label">' . esc_html__('vote', 'testimonial-basics') . '</span>'; } else { if ($total_votes == 0) { $agg_html .= '<span class="votes_label">' . esc_html__('not rated', 'testimonial-basics') . '</span>'; } else { $agg_html .= '<span class="total_votes" itemprop="votes">' . stripcslashes(esc_attr($total_votes)) . ' </span>'; $agg_html .= '<span class="votes_label">' . esc_html__('votes', 'testimonial-basics') . '</span>'; } } $agg_html .= ', '; if ($aggregate_total_approved == 0) { $agg_html .= '<span class="reviews_label">' . esc_html__('no reviews yet', 'testimonial-basics') . '</span>'; } elseif ($aggregate_total_approved == 1) { $agg_html .= '<span class="total_reviews">' . stripcslashes(esc_attr($aggregate_total_approved)) . ' </span>'; $agg_html .= '<span class="reviews_label">' . esc_html__('review', 'testimonial-basics') . '</span>'; } else { $agg_html .= '<span class="total_reviews">' . stripcslashes(esc_attr($aggregate_total_approved)) . ' </span>'; $agg_html .= '<span class="reviews_label">' . esc_html__('reviews', 'testimonial-basics') . '</span>'; } $agg_html .= '</div>'; } } return $agg_html; }