public function widget($args, $instance) { extract($instance); echo $args['before_widget']; if (isset($title) && !empty($title)) { echo $args['before_title'] . $title . $args['after_title']; } // Templates if (isset($template) && !is_array($template)) { $template = $template == 'all' ? array_keys($this->templates) : array($template); } elseif (!isset($template)) { $template = array_keys($this->templates); } // Sort $sort = $this->widget_field($instance, 'to_display', true); //Limit $limit = $this->widget_field($instance, 'to_display_count', true); // Get Ratings $ratings = self::query_ratings($template, $sort, $limit); $options = $this->widget_field($instance, 'options', true); echo '<ul class="rwp-widget-ratings">'; foreach ($ratings as $i => $rating) { //RWP_Reviewer::pretty_print( $rating ); $rank_num = ''; if ($sort != 'latest') { $rank_num = '<span class="rwp-ranking-number">' . ($i + 1) . '</span>'; } $has_rank = !empty($rank_num) ? 'rwp-has-ranking' : ''; echo '<li class="' . $has_rank . '">'; echo $rank_num; echo '<div class="rwp-wdj-content">'; // Post if (in_array('rating_option_post_title', $options)) { echo '<span class="rwp-w-post-title">' . get_the_title($rating['rating_post_id']) . '</span>'; } // Post echo '<div class="rwp-cell">'; // Avatar $has_avatar = ''; if (in_array('rating_option_avatar', $options)) { $avatar = $rating['rating_user_id'] == 0 && isset($rating['rating_user_email']) && !empty($rating['rating_user_email']) ? $rating['rating_user_email'] : $rating['rating_user_id']; echo get_avatar($avatar, 30); $has_avatar = 'rwp-has-avatar'; } // Avatar echo '<div class="rwp-cell-content ' . $has_avatar . '">'; // Username if (in_array('rating_option_name', $options)) { $name = $rating['rating_user_id'] > 0 ? get_user_by('id', $rating['rating_user_id'])->display_name : $rating['rating_user_name']; echo '<span class="rwp-w-name">' . $name . '</span>'; } // Username // Date echo '<span class="rwp-w-date"> ' . date_i18n(get_option('date_format') . ', ' . get_option('time_format'), $rating['rating_date']) . '</span>'; // Score if (in_array('rating_option_score', $options)) { $mode = $this->preferences['preferences_rating_mode']; $template = isset($rating['rating_template']) ? $this->templates[$rating['rating_template']] : array(); switch ($mode) { case 'five_stars': case 'full_five_stars': echo RWP_Reviewer::get_stars($rating['rating_score'], $template); break; default: echo '<div class="rwp-criterion">'; echo '<div class="rwp-criterion-bar-base">'; echo RWP_Reviewer::get_score_bar($rating['rating_score'], $template); echo '</div><!-- /criterion-bar -->'; echo '<span class="rwp-criterion-score">' . round(RWP_Reviewer::get_avg($rating['rating_score']), 1) . '</span>'; echo '</div><!-- /criterion -->'; break; } } // Score echo '</div><!-- /cell-content -->'; echo '</div><!-- /cell -->'; // Title if (in_array('rating_option_title', $options) && !empty($rating['rating_title'])) { echo '<span class="rwp-w-title">' . $rating['rating_title'] . '</span>'; } // Title // Comment if (in_array('rating_option_comment', $options) && !empty($rating['rating_comment'])) { $comment = $rating['rating_comment']; if (strlen($comment) > $this->comment_limit) { $comment = substr($comment, 0, $this->comment_limit) . '...'; } echo '<p class="rwp-w-comment">' . $comment . '</p>'; } // Comment // Show Link if (in_array('rating_option_link', $options)) { $url = add_query_arg('rwpurid', $rating['rating_id'], get_permalink($rating['rating_post_id'])); echo '<a href="' . esc_url($url) . '">' . $this->widget_field($instance, 'show', true) . '</a>'; } // link echo '</div> <!-- /content -->'; echo '</li>'; } echo '</ul>'; echo $args['after_widget']; }