Making WordPress.org


Ignore:
Timestamp:
04/26/2016 07:33:28 AM (9 years ago)
Author:
dd32
Message:

Plugin Directory: Add a Review Widget to the theme, and all the other required things for Widgets.
This adds a namespace to the theme and begins to reduce the duplication of template functionality between wp-admin and the theme.

See #1584.
Fixes #1575.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php

    r2994 r3009  
    1010
    1111    /**
    12      * @param \WP_Post|int $post Optional.
    13      * @return int
    14      */
    15     static function get_active_installs_count( $post = null ) {
     12     * Returns a string representing the number of active installs for an item.
     13     *
     14     * @param bool $full whether to include "actuve installs" suffix. Default: true.
     15     * @return string "1+ million" or "1+ milllion active installs" depending on $full.
     16     */
     17    static function active_installs( $full = true, $post = null ) {
    1618        $post = get_post( $post );
    1719
    18         return (int) get_post_meta( $post->ID, 'active_installs', true );
    19     }
     20        $count = get_post_meta( $post->ID, 'active_installs', true );
     21   
     22        if ( $count <= 10 ) {
     23            $text = __( 'Less than 10', 'wporg-plugins' );
     24        } elseif ( $count >= 1000000 ) {
     25            $text = __( '1+ million', 'wporg-plugins' );
     26        } else {
     27            $text = number_format_i18n( $count ) . '+';
     28        }
     29        return $full ? sprintf( __( '%s active installs', 'wporg-plugins' ), $text ) : $text;
     30    }
     31
    2032
    2133    /**
     
    276288        ) );
    277289    }
     290
     291    /**
     292     * A helper method to create dashicon stars.
     293     *
     294     * @type int|array {
     295     *    If numeric arg passed, assumed to be 'rating'.
     296     *
     297     *    @type int    $rating   The rating to display.
     298     *    @type string $template The HTML template to use for each star.
     299     *                           %1$s is the class, %2$s is the rating.
     300     * }
     301     * @return string The Rating HTML.
     302     */
     303    static function dashicons_stars( $args = array() ) {
     304        $defaults = array(
     305            'rating' => 0,
     306            'template' => '<span class="%1$s"></span>'
     307        );
     308        $r = wp_parse_args( ( is_numeric( $args ) ? array( 'rating' => $args ) : $args ), $defaults );
     309
     310        $rating = round( $r['rating'] / 0.5 ) * 0.5;
     311        $template = $r['template'];
     312        $title_template = __( '%s out of 5 stars', 'wporg-plugins' );
     313        $title = sprintf( $title_template, $rating );
     314
     315        $output = '<div class="wporg-ratings" title="' . esc_attr( $title ) . '" data-title-template="' . esc_attr( $title_template ) . '" data-rating="' . esc_attr( $rating ) . '" style="color:#ffb900;">';
     316        $counter = round( $rating * 2 );
     317        for  ( $i = 1; $i <= 5; $i++ ) {
     318            switch ($counter) {
     319            case 0:
     320                $output .= sprintf( $template, 'dashicons dashicons-star-empty', $i );
     321                break;
     322            case 1:
     323                $output .= sprintf( $template, 'dashicons dashicons-star-half', $i );
     324                $counter--;
     325                break;
     326            default:
     327                $output .= sprintf( $template, 'dashicons dashicons-star-filled', $i );
     328                $counter -= 2;
     329                break;
     330            }
     331        }
     332        $output .= '</div>';
     333        return $output;
     334    }
     335   
    278336}
Note: See TracChangeset for help on using the changeset viewer.