Making WordPress.org

Changeset 3420


Ignore:
Timestamp:
06/17/2016 08:27:41 PM (10 years ago)
Author:
obenland
Message:

Plugin Directory: Introduce a reviews shortcode.

Displays a list of reviews about a plugin.
WIP, still need to properly grab an entire review, not just the rating.

See #1719.

Location:
sites/trunk/wordpress.org/public_html/wp-content
Files:
1 added
3 edited

Legend:

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

    r3409 r3420  
    247247                add_shortcode( 'wporg-plugin-upload',       array( __NAMESPACE__ . '\Shortcodes\Upload',      'display' ) );
    248248                add_shortcode( 'wporg-plugins-screenshots', array( __NAMESPACE__ . '\Shortcodes\Screenshots', 'display' ) );
     249                add_shortcode( 'wporg-plugins-reviews',     array( __NAMESPACE__ . '\Shortcodes\Reviews',     'display' ) );
    249250        }
    250251
     
    676677                        'screenshots' => '[wporg-plugins-screenshots]',
    677678                        'developers'  => '[wporg-plugins-developers]',
     679                        'reviews'     => '[wporg-plugins-reviews]',
    678680                );
    679681
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-tools.php

    r2836 r3420  
    2727
    2828                return $tonesque->color();
     29        }
     30
     31        /**
     32         * Returns the two latest reviews of a specific plugin.
     33         *
     34         * @global \wpdb $wpdb WordPress database abstraction object.
     35         *
     36         * @todo Populate with review title/content.
     37         *
     38         * @param string $plugin_slug The plugin slug.
     39         * @return array|false
     40         */
     41        public static function get_plugin_reviews( $plugin_slug ) {
     42                if ( false === ( $reviews = wp_cache_get( "{$plugin_slug}_reviews", 'wporg-plugins' ) ) ) {
     43                        global $wpdb;
     44
     45                        $reviews = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ratings WHERE object_type = 'plugin' AND object_slug = %s ORDER BY review_id DESC LIMIT 2", $plugin_slug ) );
     46                        wp_cache_set( "{$plugin_slug}_reviews", $reviews, 'wporg-plugins', HOUR_IN_SECONDS );
     47                }
     48
     49                return $reviews;
    2950        }
    3051
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/plugin-single.php

    r3412 r3420  
    4545                <?php
    4646                        $plugin_sections = Template::get_plugin_sections();
     47
    4748                        foreach ( array( 'description', 'screenshots', 'faq', 'reviews', 'changelog', 'developers' ) as $section_slug ) :
    48                                 if ( ! array_key_exists( $section_slug, $content ) || in_array( $section_slug, array( 'installation', 'other_notes' ) ) ) :
     49                                $section_content = trim( apply_filters( 'the_content', $content[ $section_slug ], $section_slug ) );
     50
     51                                if ( ! array_key_exists( $section_slug, $content ) || in_array( $section_slug, array( 'installation', 'other_notes' ) ) || empty( $section_content ) ) :
    4952                                        continue;
    5053                                endif;
     54
    5155                                $section = wp_list_filter( $plugin_sections, array( 'slug' => $section_slug ) );
    5256                                $section = array_pop( $section );
     
    5559                        <div id="<?php echo esc_attr( $section_slug ); ?>" class="read-more" aria-expanded="false">
    5660                                <h2><?php echo $section['title']; ?></h2>
    57                                 <?php echo apply_filters( 'the_content', $content[ $section_slug ], $section_slug ); ?>
     61                                <?php echo $section_content; ?>
    5862                        </div>
    5963                        <button type="button" class="button-link section-toggle" aria-controls="<?php echo esc_attr( $section_slug ); ?>"><?php _e( 'Read more', 'wporg-plugins' ); ?></button>
Note: See TracChangeset for help on using the changeset viewer.