WordPress.org

Making WordPress.org


Ignore:
Timestamp:
06/22/2016 01:33:53 PM (5 years ago)
Author:
dd32
Message:

Plugin Directory: Add plugin favoriting to the user interface.
Someone will need to style this properly.

Fixes #1577

File:
1 edited

Legend:

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

    r3511 r3545  
    462462        return ent2ncr( htmlspecialchars_decode( htmlentities( $string, ENT_NOQUOTES, 'UTF-8' ), ENT_NOQUOTES ) );
    463463    }
     464
     465    /**
     466     * Generates a link to toggle a plugin favorites state.
     467     *
     468     * @param string $plugin_slug The plugin slug.
     469     * @param mixed  $user        The user to alter the favorite status for.
     470     * @return string URL to toggle status.
     471     */
     472    public static function get_favourite_link( $plugin_slug, $user = 0 ) {
     473        $post = Plugin_Directory::get_plugin_post( $plugin_slug );
     474        if ( ! $post ) {
     475            return false;
     476        }
     477
     478        $favorited = Tools::favorited_plugin( $post, $user );
     479
     480        return add_query_arg(
     481            array(
     482                '_wpnonce' => wp_create_nonce( 'wp_rest' ),
     483                ( $favorited ? 'unfavorite' : 'favorite' ) => '1'
     484            ),
     485            home_url( 'wp-json/plugins/v1/plugin/' . $post->post_name . '/favorite' )
     486        );
     487    }
    464488}
Note: See TracChangeset for help on using the changeset viewer.