Changeset 5287
- Timestamp:
- 04/07/2017 09:19:44 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-bbp-user-badges/inc/class-plugin.php
r5156 r5287 348 348 */ 349 349 public function is_user_author( $user_login, $type, $slug ) { 350 global $wpdb; 351 352 $authors = wp_cache_get( $slug, $type . '_authors' ); 353 354 if ( false === $authors ) { 355 if ( 'plugin' === $type ) { 356 // Get users who have commit access. 357 $authors = $wpdb->get_col( $wpdb->prepare( 358 "SELECT user FROM " . PLUGINS_TABLE_PREFIX . "svn_access WHERE `path` = %s", 359 '/' . $slug 360 ) ); 361 } 362 else { 363 // TODO: Change this if themes support having more than one author. 364 $author_id = $wpdb->get_var( $wpdb->prepare( 365 "SELECT post_author FROM " . self::$themes_table_prefix . "posts WHERE post_name = %s LIMIT 1", 366 $slug 367 ) ); 368 if ( $author_id ) { 369 $author = get_user_by( 'id', $author_id ); 370 $authors = array( $author->user_login ); 371 } 372 } 373 374 wp_cache_add( $slug, $authors, $type . '_authors', HOUR_IN_SECONDS ); 375 } 350 if ( 'plugin' === $type ) { 351 $compat = class_exists( '\WordPressdotorg\Forums\Plugin' ) ? \WordPressdotorg\Forums\Plugin::get_instance()->plugins : ''; 352 } else { 353 $compat = class_exists( '\WordPressdotorg\Forums\Theme' ) ? \WordPressdotorg\Forums\Theme::get_instance()->themes : ''; 354 } 355 $authors = $compat ? $compat->get_authors( $slug ) : array(); 376 356 377 357 return $authors && in_array( $user_login, $authors ); … … 390 370 */ 391 371 public function is_user_contributor( $user_login, $type, $slug ) { 392 global $wpdb; 393 394 $contributors = wp_cache_get( $slug, $type . '_contributors' ); 395 396 if ( false === $contributors ) { 397 if ( 'plugin' === $type ) { 398 // TODO: Change this when the Plugin Directory switches over to WordPress. 399 $contributors = $wpdb->get_var( $wpdb->prepare( 400 'SELECT meta_value FROM ' . PLUGINS_TABLE_PREFIX . 'meta m LEFT JOIN ' . PLUGINS_TABLE_PREFIX . 'topics t ON m.object_id = t.topic_id WHERE t.topic_slug = %s AND m.object_type = %s AND m.meta_key = %s', 401 $slug, 402 'bb_topic', 403 'contributors' 404 ) ); 405 406 if ( $contributors ) { 407 $contributors = unserialize( $contributors ); 408 } 409 } 410 else { 411 // Themes have no additional contributors at the moment. 412 // TODO: Change this if themes support specifying contributors. 413 $contributors = array(); 414 } 415 416 wp_cache_add( $slug, $contributors, $type . '_contributors', HOUR_IN_SECONDS ); 417 } 372 if ( 'plugin' === $type ) { 373 $compat = class_exists( '\WordPressdotorg\Forums\Plugin' ) ? \WordPressdotorg\Forums\Plugin::get_instance()->plugins : ''; 374 } else { 375 $compat = class_exists( '\WordPressdotorg\Forums\Theme' ) ? \WordPressdotorg\Forums\Theme::get_instance()->themes : ''; 376 } 377 $contributors = $compat ? $compat->get_contributors( $slug ) : array(); 418 378 419 379 return $contributors && in_array( $user_login, $contributors );
Note: See TracChangeset
for help on using the changeset viewer.