Submit
Path:
~
/
home
/
getwphos
/
www
/
bubrupamjcb.com
/
wp-content
/
plugins
/
absolute-reviews
/
includes
/
File Content:
helpers-absolute-reviews.php
<?php /** * Helpers Absolute Reviews * * @package ABR * @subpackage ABR/includes */ if ( ! function_exists( 'abr_style' ) ) { /** * Processing path of style. * * @param string $path URL to the stylesheet. */ function abr_style( $path ) { // Check RTL. if ( is_rtl() ) { return $path; } // Check Dev. $dev = ABR_PATH . 'public/css/absolute-reviews-public-dev.css'; if ( file_exists( $dev ) ) { return str_replace( '.css', '-dev.css', $path ); } return $path; } } if ( ! function_exists( 'abr_powerkit_module_enabled' ) ) { /** * Helper function to check the status of powerkit modules * * @param array $name Name of module. */ function abr_powerkit_module_enabled( $name ) { if ( function_exists( 'powerkit_module_enabled' ) && powerkit_module_enabled( $name ) ) { return true; } } } if ( ! function_exists( 'abr_post_views_enabled' ) ) { /** * Check post views module. * * @return string Type. */ function abr_post_views_enabled() { // Post Views Counter. if ( class_exists( 'Post_Views_Counter' ) ) { return 'post_views'; } // Powerkit Post Views. if ( abr_powerkit_module_enabled( 'post_views' ) ) { return 'pk_post_views'; } } } if ( ! function_exists( 'abr_get_available_image_sizes' ) ) { /** * Get the available image sizes */ function abr_get_available_image_sizes() { $wais = & $GLOBALS['_wp_additional_image_sizes']; $sizes = array(); $image_sizes = get_intermediate_image_sizes(); if ( is_array( $image_sizes ) && $image_sizes ) { foreach ( $image_sizes as $size ) { if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ), true ) ) { $sizes[ $size ] = array( 'width' => get_option( "{$size}_size_w" ), 'height' => get_option( "{$size}_size_h" ), 'crop' => (bool) get_option( "{$size}_crop" ), ); } elseif ( isset( $wais[ $size ] ) ) { $sizes[ $size ] = array( 'width' => $wais[ $size ]['width'], 'height' => $wais[ $size ]['height'], 'crop' => $wais[ $size ]['crop'], ); } // Size registered, but has 0 width and height. if ( 0 === (int) $sizes[ $size ]['width'] && 0 === (int) $sizes[ $size ]['height'] ) { unset( $sizes[ $size ] ); } } } return $sizes; } } if ( ! function_exists( 'abr_get_image_size' ) ) { /** * Gets the data of a specific image size. * * @param string $size Name of the size. */ function abr_get_image_size( $size ) { if ( ! is_string( $size ) ) { return; } $sizes = abr_get_available_image_sizes(); return isset( $sizes[ $size ] ) ? $sizes[ $size ] : false; } } if ( ! function_exists( 'abr_get_list_available_image_sizes' ) ) { /** * Get the list available image sizes */ function abr_get_list_available_image_sizes() { $intermediate_image_sizes = get_intermediate_image_sizes(); $image_sizes = array(); foreach ( $intermediate_image_sizes as $size ) { $image_sizes[ $size ] = $size; $data = abr_get_image_size( $size ); if ( isset( $data['width'] ) || isset( $data['height'] ) ) { $width = '~'; $height = '~'; if ( isset( $data['width'] ) && $data['width'] ) { $width = $data['width'] . 'px'; } if ( isset( $data['height'] ) && $data['height'] ) { $height = $data['height'] . 'px'; } $image_sizes[ $size ] .= sprintf( ' [%s, %s]', $width, $height ); } } $image_sizes = apply_filters( 'abr_list_available_image_sizes', $image_sizes ); return $image_sizes; } } if ( ! function_exists( 'abr_get_post_metadata' ) ) { /** * Retrieves a post meta field for the given post ID. * * @param int $post_id Post ID. * @param string $key Optional. The meta key to retrieve. By default, returns * data for all keys. Default empty. * @param bool $single Optional. If true, returns only the first value for the specified meta key. * This parameter has no effect if $key is not specified. Default false. * @param mixed $default Default value. * @return mixed Will be an array if $single is false. Will be value of the meta * field if $single is true. */ function abr_get_post_metadata( $post_id, $key = '', $single = false, $default = null ) { if ( ! metadata_exists( 'post', $post_id, $key ) && $default ) { return $default; } return get_metadata( 'post', $post_id, $key, $single ); } } if ( ! function_exists( 'abr_default_post_types' ) ) { /** * Return default post types. */ function abr_default_post_types() { $types = array( 'post' => 'post', ); return apply_filters( 'abr_default_post_types', $types ); } } if ( ! function_exists( 'abr_default_indicators' ) ) { /** * Return default indicators. */ function abr_default_indicators() { $indicators = array( 0 => array( 'name' => 'None', ), 1 => array( 'name' => 'Awfully', ), 2 => array( 'name' => 'Very bad', ), 3 => array( 'name' => 'Bad', ), 4 => array( 'name' => 'Passably', ), 5 => array( 'name' => 'Neutral', ), 6 => array( 'name' => 'Normal', ), 7 => array( 'name' => 'Good', ), 8 => array( 'name' => 'Very good', ), 9 => array( 'name' => 'Amazing', ), 10 => array( 'name' => 'The best', ), ); return apply_filters( 'abr_default_indicators', $indicators ); } } if ( ! function_exists( 'abr_list_indicators' ) ) { /** * Return list indicators. */ function abr_list_indicators() { $indicators = abr_default_indicators(); // Disable all indicators. if ( get_option( 'abr_review_disable_indicators', false ) ) { $indicators = array(); } // Set custom name for indicators. foreach ( $indicators as $index => $value ) { $indicators[ $index ]['name'] = get_option( "abr_review_indicator_label_{$index}", $indicators[ $index ]['name'] ); } return $indicators; } } if ( ! function_exists( 'abr_the_review' ) ) { /** * Post Review * * @param int $post_id Post ID. */ function abr_the_review( $post_id = null ) { if ( ! $post_id ) { $post_id = get_the_ID(); } if ( ! $post_id ) { return; } $post_type = get_post_type( $post_id ); // Get types of option. $option_types = get_option( 'abr_review_post_types', abr_default_post_types() ); if ( ! in_array( $post_type, $option_types, true ) ) { return; } // Check display. if ( ! abr_get_post_metadata( $post_id, '_abr_review_settings', true ) ) { return; } // Params. $params = array( 'type' => abr_get_post_metadata( $post_id, '_abr_review_type', true, 'percentage' ), 'items' => abr_get_post_metadata( $post_id, '_abr_review_items', true, array() ), 'heading' => abr_get_post_metadata( $post_id, '_abr_review_heading', true ), 'desc' => abr_get_post_metadata( $post_id, '_abr_review_desc', true ), 'main_scale' => abr_get_post_metadata( $post_id, '_abr_review_main_scale', true, true ), 'total_score_number' => abr_get_post_metadata( $post_id, '_abr_review_total_score_number', true ), 'pros_heading' => abr_get_post_metadata( $post_id, '_abr_review_pros_heading', true ), 'pros_items' => abr_get_post_metadata( $post_id, '_abr_review_pros_items', true, array() ), 'cons_heading' => abr_get_post_metadata( $post_id, '_abr_review_cons_heading', true ), 'cons_items' => abr_get_post_metadata( $post_id, '_abr_review_cons_items', true, array() ), 'legend' => abr_get_post_metadata( $post_id, '_abr_review_legend', true ), 'schema_heading' => abr_get_post_metadata( $post_id, '_abr_review_schema_heading', true ), 'schema_desc' => abr_get_post_metadata( $post_id, '_abr_review_schema_desc', true ), 'schema_author' => abr_get_post_metadata( $post_id, '_abr_review_schema_author', true ), 'schema_author_custom' => abr_get_post_metadata( $post_id, '_abr_review_schema_author_custom', true ), ); abr_review_display_block( $params ); } } if ( ! function_exists( 'abr_get_review' ) ) { /** * Get review of post * * @param bool $format Do you format the result?. * @param int $post_id Post ID. */ function abr_get_review( $format = false, $post_id = null ) { if ( ! $post_id ) { $post_id = get_the_ID(); } if ( ! $post_id ) { return 0; } if ( ! abr_get_post_metadata( $post_id, '_abr_review_settings', true ) ) { return 0; } $review_type = abr_get_post_metadata( $post_id, '_abr_review_type', true, 'percentage' ); $total_score = (float) abr_get_post_metadata( $post_id, '_abr_review_total_score_number', true ); // Vars. switch ( $review_type ) { case 'percentage': $max = 100; break; case 'point-5': $max = 5; break; case 'point-10': $max = 10; break; case 'star': $max = 5; break; } // Formating value. if ( $total_score && $format ) { if ( 'percentage' === $review_type ) { $total_score = sprintf( '%s%%', $total_score ); } else { $total_score = sprintf( '%s/%s', $total_score, $max ); } } return $total_score; } } if ( ! function_exists( 'abr_review_get_val_index' ) ) { /** * Get value index for post review * * @param string $type The type of review. * @param float $value The value. */ function abr_review_get_val_index( $type, $value ) { $val_index = $value; if ( 'star' === $type ) { $val_index = round( $value * 2 - 1 ); } if ( 'point-5' === $type ) { $val_index = round( $value * 2 - 1 ); } if ( 'percentage' === $type ) { $val_index = round( $value / 10 ); } return $val_index; } } if ( ! function_exists( 'abr_review_get_type' ) ) { /** * Get type review of post * * @param int $post_id Post ID. * @param mixed $default Return default. */ function abr_review_get_type( $post_id = null, $default = false ) { if ( ! $post_id ) { $post_id = get_the_ID(); } if ( ! $post_id ) { return $default; } return abr_get_post_metadata( $post_id, '_abr_review_type', true, $default ); } } if ( ! function_exists( 'abr_review_star_rating' ) ) { /** * Output a HTML element with a star rating for a given rating. * * @param array $args { * Optional. Array of star ratings arguments. * * @type int|float $rating The rating to display, expressed in either a 0.5 rating increment, * or percentage. Default 0. * @type string $type Format that the $rating is in. Valid values are 'rating' (default), * or, 'percent'. Default 'rating'. * @type int $number The number of ratings that makes up this rating. Default 0. * @type bool $echo Whether to echo the generated markup. False to return the markup instead * of echoing it. Default true. * } */ function abr_review_star_rating( $args = array() ) { $defaults = array( 'rating' => 0, 'type' => 'rating', 'number' => 0, 'echo' => true, ); $r = wp_parse_args( $args, $defaults ); // Non-English decimal places when the $rating is coming from a string. $rating = (float) str_replace( ',', '.', $r['rating'] ); // Convert Percentage to star rating, 0..5 in .5 increments. if ( 'percent' === $r['type'] ) { $rating = round( $rating / 10, 0 ) / 2; } // Calculate the number of each type of star needed. $full_stars = floor( $rating ); $half_stars = ceil( $rating - $full_stars ); $empty_stars = 5 - $full_stars - $half_stars; if ( $r['number'] ) { /* translators: 1: the rating, 2: the number of ratings */ $format = _n( '%1$s rating based on %2$s rating', '%1$s rating based on %2$s ratings', $r['number'] ); $title = sprintf( $format, number_format_i18n( $rating, 1 ), number_format_i18n( $r['number'] ) ); } else { /* translators: %s: the rating */ $title = sprintf( __( '%s rating' ), number_format_i18n( $rating, 1 ) ); } $output = '<div class="abr-star-rating">'; $output .= '<span class="screen-reader-text">' . $title . '</span>'; $output .= str_repeat( '<div class="abr-star abr-star-full" aria-hidden="true"></div>', $full_stars ); $output .= str_repeat( '<div class="abr-star abr-star-half" aria-hidden="true"></div>', $half_stars ); $output .= str_repeat( '<div class="abr-star abr-star-empty" aria-hidden="true"></div>', $empty_stars ); $output .= '</div>'; if ( $r['echo'] ) { echo (string) $output; // XSS. } return $output; } } if ( ! function_exists( 'abr_review_display_rating' ) ) { /** * Display review rating info * * @param string $type The type of review. * @param float $max The max value. * @param float $value The value. * @param string $name The name. * @param bool $label Display label. */ function abr_review_display_rating( $type, $max, $value, $name = null, $label = true ) { switch ( $type ) { case 'star': $value = ( $value <= $max ) ? round( $value, 1 ) : $max; break; case 'point-5': case 'point-10': case 'percentage': $value = ( $value <= $max ) ? round( $value ) : $max; break; } // Get indicators. $indicators = abr_list_indicators(); // Set value index. $val_index = abr_review_get_val_index( $type, $value ); ?> <div class="abr-review-data"> <?php if ( $name ) { ?> <div class="abr-review-name"> <?php echo esc_html( $name ); ?> </div> <?php } ?> <?php if ( 'star' === $type ) : ?> <div class="abr-review-stars"> <?php abr_review_star_rating( array( 'rating' => $value, 'type' => 'rating', 'number' => 0, ) ); ?> </div> <?php elseif ( 'point-5' === $type || 'point-10' === $type ) : ?> <div class="abr-review-line"> <?php $max_slice = 'point-5' === $type ? 5 : 10; for ( $index = 1; $index <= $max_slice; $index++ ) { if ( $index <= $value ) { $class = 'abr-review-slice-active'; } else { $class = 'abr-review-slice-no-active'; } ?> <span class="abr-review-slice <?php echo esc_attr( $class ); ?>"></span> <?php } ?> </div> <?php elseif ( 'percentage' === $type ) : ?> <div class="abr-review-progress"> <div class="abr-review-progressbar abr-review-progressbar-<?php echo esc_attr( $val_index ); ?>"></div> </div> <?php endif; ?> <?php if ( $label ) { ?> <div class="abr-review-label"> <span class="abr-review-text"> <?php echo wp_kses_post( sprintf( '<span class="total">%s</span><span class="sep">/</span><span class="max">%s</span>', $value, $max ) ); ?> </span> <?php if ( $indicators && $indicators[ $val_index ]['name'] ) { ?> <span class="abr-badge abr-badge-primary abr-review-badge-<?php echo esc_attr( $val_index ); ?>"> <?php echo esc_html( $indicators[ $val_index ]['name'] ); ?> </span> <?php } ?> </div> <?php } ?> </div> <?php } } if ( ! function_exists( 'abr_review_display_block' ) ) { /** * Display review rating * * @param array $params The params of review. */ function abr_review_display_block( $params ) { $params = array_merge( array( 'variant' => 'default', 'type' => 'percentage', 'items' => array(), 'heading' => '', 'desc' => '', 'main_scale' => true, 'total_label' => esc_html__( 'Total Score', 'absolute-reviews' ), 'total_score_number' => '', 'pros_heading' => '', 'pros_items' => array(), 'cons_heading' => '', 'cons_items' => array(), 'legend' => '', 'schema_heading' => '', 'schema_desc' => '', 'schema_author' => '', 'schema_author_custom' => '', ), $params ); // Vars. switch ( $params['type'] ) { case 'percentage': $max = 100; break; case 'point-5': $max = 5; break; case 'point-10': $max = 10; break; case 'star': $max = 5; break; } // Get indicators. $indicators = abr_list_indicators(); ?> <div class="abr-post-review abr-review-<?php echo esc_attr( $params['variant'] ); ?> abr-review-<?php echo esc_attr( $params['type'] ); ?>" itemprop="reviews" itemscope itemtype="http://schema.org/Review"> <div class="abr-review-author" itemprop="author" itemscope itemtype="http://schema.org/Person"> <span itemprop="name"> <?php echo esc_html( 'custom' === $params['schema_author'] ? $params['schema_author_custom'] : $params['schema_author'] ); ?> </span> </div> <!-- Info --> <?php if ( $params['heading'] || $params['desc'] ) { ?> <div class="abr-review-info"> <div class="abr-review-heading" itemprop="itemReviewed" itemscope itemtype="http://schema.org/Product"> <?php // Review title. if ( $params['heading'] ) { ?> <h3 class="abr-title abr-review-title"><?php echo esc_html( $params['heading'] ); ?></h3> <?php } if ( $params['heading'] || $params['schema_heading'] ) { $heading = $params['schema_heading'] ? $params['schema_heading'] : $params['heading']; ?> <span class="abr-review-scheme-hidden" itemprop="name"><?php echo esc_html( $heading ); ?></span> <?php } ?> <div class="abr-review-scheme-hidden" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span itemprop="ratingValue"><?php echo esc_html( $params['total_score_number'] ); ?></span> <span itemprop="bestRating"><?php echo esc_html( $max ); ?></span> <span itemprop="worstRating"><?php echo esc_html( 0 ); ?></span> <span itemprop="reviewCount"><?php echo esc_html( 1 ); ?></span> </div> </div> <?php // Review desc. if ( $params['desc'] ) { ?> <div class="abr-review-description" itemprop="reviewBody"><?php echo wp_kses( $params['desc'], 'post' ); ?></div> <?php } if ( $params['desc'] || $params['schema_desc'] ) { $desc = $params['schema_desc'] ? $params['schema_desc'] : $params['desc']; ?> <div class="abr-review-scheme-hidden" itemprop="reviewBody"><?php echo wp_kses( $desc, 'post' ); ?></div> <?php } ?> </div> <?php } ?> <!-- Review Total --> <div class="abr-review-total"> <?php $total_score = (float) $params['total_score_number']; if ( $total_score ) { if ( ! $params['main_scale'] && $params['items'] ) { ?> <div class="abr-review-list"> <ul> <?php if ( isset( $params['items']['name'] ) && $params['items']['name'] ) { foreach ( $params['items']['name'] as $key => $item_name ) { $item_desc = (string) $params['items']['desc'][ $key ]; $item_value = (float) $params['items']['val'][ $key ]; if ( ! $item_name ) { continue; } ?> <li class="abr-review-item"> <?php abr_review_display_rating( $params['type'], $max, $item_value, $item_name ); ?> <div class="abr-review-desc"> <?php echo esc_html( $item_desc ); ?> </div> </li> <?php } } ?> </ul> </div> <?php } if ( $params['main_scale'] ) { abr_review_display_rating( $params['type'], $max, $total_score, null, false ); } ?> <div class="abr-review-score <?php echo esc_html( ! $params['total_label'] ? 'abr-review-score-row' : '' ); ?>" itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> <div class="abr-review-text"> <?php echo wp_kses( sprintf( '<span class="total" itemprop="ratingValue">%s</span><span class="sep">/</span><span class="max" itemprop="bestRating">%s</span>', $total_score, $max ), array( 'span' => array( 'class' => true, 'itemprop' => true, ), ) ); ?> </div> <?php if ( $params['total_label'] || $params['legend'] ) { ?> <div class="abr-review-subtext"> <?php if ( $params['total_label'] ) { ?> <span class="abr-data-label"><?php echo esc_html( $params['total_label'] ); ?></span> <?php } ?> <?php if ( $params['legend'] ) { ?> <span class="abr-data-info">i<span><?php echo wp_kses_post( $params['legend'] ); ?></span></span> <?php } ?> </div> <?php } ?> </div> <?php } ?> </div> <!-- Review Indicator --> <?php if ( 'block' === $params['variant'] ) { // Set value index. $val_index = abr_review_get_val_index( $params['type'], $total_score ); if ( $indicators && $indicators[ $val_index ]['name'] ) { ?> <div class="abr-review-indicator"> <span class="abr-badge abr-badge-primary abr-review-badge-<?php echo esc_attr( $val_index ); ?>"> <?php echo esc_html( $indicators[ $val_index ]['name'] ); ?> </span> </div> <?php } } ?> <!-- Items List --> <?php if ( $params['items'] && $params['main_scale'] ) { ?> <div class="abr-review-list"> <ul> <?php if ( isset( $params['items']['name'] ) && $params['items']['name'] ) { foreach ( $params['items']['name'] as $key => $item_name ) { $item_desc = (string) $params['items']['desc'][ $key ]; $item_value = (float) $params['items']['val'][ $key ]; if ( ! $item_name ) { continue; } ?> <li class="abr-review-item"> <?php abr_review_display_rating( $params['type'], $max, $item_value, $item_name ); ?> <div class="abr-review-desc"> <?php echo esc_html( $item_desc ); ?> </div> </li> <?php } } ?> </ul> </div> <?php } ?> <!-- Items Pros / Cons --> <?php if ( $params['pros_items'] || $params['cons_items'] ) { ?> <div class="abr-review-details"> <?php if ( $params['pros_items'] ) { $params['pros_heading'] = $params['pros_heading'] ? $params['pros_heading'] : esc_html__( 'The Good', 'absolute-reviews' ); ?> <div class="abr-review-items abr-review-pros"> <div class="abr-review-title"> <h3 class="abr-title"><?php echo esc_html( $params['pros_heading'] ); ?></h3> </div> <ul> <?php if ( isset( $params['pros_items']['name'] ) && $params['pros_items']['name'] ) { foreach ( $params['pros_items']['name'] as $key => $name ) { ?> <li><?php echo esc_attr( $params['pros_items']['name'][ $key ] ); ?></li> <?php } } ?> </ul> </div> <?php } ?> <?php if ( $params['cons_items'] ) { $params['cons_heading'] = $params['cons_heading'] ? $params['cons_heading'] : esc_html__( 'The Bad', 'absolute-reviews' ); ?> <div class="abr-review-items abr-review-cons"> <div class="abr-review-title"> <h3 class="abr-title"><?php echo esc_html( $params['cons_heading'] ); ?></h3> </div> <ul> <?php if ( isset( $params['cons_items']['name'] ) && $params['cons_items']['name'] ) { foreach ( $params['cons_items']['name'] as $key => $name ) { ?> <li class="abr-item"><?php echo esc_attr( $params['cons_items']['name'][ $key ] ); ?></li> <?php } } ?> </ul> </div> <?php } ?> </div> <?php } ?> </div> <?php } } if ( ! function_exists( 'abr_reviews_posts_widget_handler' ) ) { /** * Widget template handler * * @param string $name Specific template. * @param array $posts Array of posts. * @param array $params Array of params. * @param array $instance Widget instance. */ function abr_reviews_posts_widget_handler( $name, $posts, $params, $instance ) { $templates = apply_filters( 'abr_reviews_posts_templates', array() ); if ( isset( $templates[ $name ] ) && function_exists( $templates[ $name ]['func'] ) ) { call_user_func( $templates[ $name ]['func'], $posts, $params, $instance ); } else { call_user_func( 'abr_reviews_posts_template', $posts, $params, $instance ); } } } /** * Convert Block Post Meta * * @param array $settings Settings of block. * @param string $prefix The prefix. */ function abr_block_convert_post_meta( $settings, $prefix ) { $meta = array(); $list = array( 'category' => 'showMetaCategory', 'author' => 'showMetaAuthor', 'date' => 'showMetaDate', 'comments' => 'showMetaComments', 'views' => 'showMetaViews', 'reading_time' => 'showMetaReadingTime', ); $list = apply_filters( 'abr_convert_post_meta', $list, $settings, $prefix ); foreach ( $list as $key => $alt ) { if ( isset( $settings[ $prefix . '_' . $alt ] ) && $settings[ $prefix . '_' . $alt ] ) { $meta[] = $key; } } return $meta; }
Submit
FILE
FOLDER
Name
Size
Permission
Action
class-absolute-reviews-i18n.php
756 bytes
0644
class-absolute-reviews-loader.php
4283 bytes
0644
class-absolute-reviews.php
6513 bytes
0644
helpers-absolute-reviews.php
25221 bytes
0644
index.php
26 bytes
0644
N4ST4R_ID | Naxtarrr