Skip to:
Content

BuddyPress.org

Ticket #3797: 3797.02.patch

File 3797.02.patch, 9.9 KB (added by boonebgorges, 10 years ago)
  • bp-activity/bp-activity-classes.php

    diff --git bp-activity/bp-activity-classes.php bp-activity/bp-activity-classes.php
    index 051f155..7c502f6 100644
    class BP_Activity_Activity { 
    100100        }
    101101
    102102        // Static Functions
    103         function get( $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false, $show_hidden = false, $exclude = false, $in = false, $spam = 'ham_only' ) {
     103       
     104        /**
     105         * Get activity items, as specified by parameters
     106         *
     107         * @param array $args See $defaults for explanation of arguments
     108         * @return array
     109         */
     110        function get( $args = array() ) {
    104111                global $wpdb, $bp;
    105112
     113                // Backward compatibility with old method of passing arguments
     114                if ( !is_array( $args ) || func_num_args() > 1 ) {
     115                        _deprecated_argument( __METHOD__, '1.6', sprintf( __( 'Arguments passed to %s should be in an associative array. See the inline documentation for more details.', 'buddypress' ), __METHOD__ ) );
     116               
     117                        $old_args_keys = array(
     118                                0 => 'max',
     119                                1 => 'page',
     120                                2 => 'per_page',
     121                                3 => 'sort',
     122                                4 => 'search_terms',
     123                                5 => 'filter',
     124                                6 => 'display_comments',
     125                                7 => 'show_hidden',
     126                                8 => 'exclude',
     127                                9 => 'in',
     128                                10 => 'spam'
     129                        );
     130                       
     131                        $args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
     132                }
     133               
     134                $defaults = array(
     135                        'page'             => 1,
     136                        'per_page'         => 25,
     137                        'max'              => false,
     138                        'sort'             => 'DESC',
     139                        'exclude'          => false,
     140                        'in'               => false,
     141                        'filter'           => false,
     142                        'search_terms'     => false,
     143                        'display_comments' => false,
     144                        'show_hidden'      => false,
     145                        'spam'             => 'ham_only',
     146                );
     147                $r = wp_parse_args( $args, $defaults );
     148                extract( $r );
     149
    106150                // Select conditions
    107151                $select_sql = "SELECT a.*, u.user_email, u.user_nicename, u.user_login, u.display_name";
    108152
    class BP_Activity_Activity { 
    250294         * @since 1.2
    251295         */
    252296        function get_specific( $activity_ids, $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $display_comments = false ) {
    253                 _deprecated_function( __FUNCTION__, '1.5', 'Use BP_Activity_Activity::get( ..., $in ) instead.' );
     297                _deprecated_function( __FUNCTION__, '1.5', 'Use BP_Activity_Activity::get() with the "in" parameter instead.' );
    254298                return BP_Activity_Activity::get( $max, $page, $per_page, $sort, false, false, $display_comments, false, false, $activity_ids );
    255299        }
    256300
  • bp-activity/bp-activity-functions.php

    diff --git bp-activity/bp-activity-functions.php bp-activity/bp-activity-functions.php
    index 95170d3..97bf01d 100644
    function bp_activity_get( $args = '' ) { 
    820820        // Attempt to return a cached copy of the first page of sitewide activity.
    821821        if ( 1 == (int) $page && empty( $max ) && empty( $search_terms ) && empty( $filter ) && empty( $exclude ) && empty( $in ) && 'DESC' == $sort && empty( $exclude ) && 'ham_only' == $spam ) {
    822822                if ( !$activity = wp_cache_get( 'bp_activity_sitewide_front', 'bp' ) ) {
    823                         $activity = BP_Activity_Activity::get( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden, false, false, $spam );
     823                        $args = array(
     824                                'page'             => $page,
     825                                'per_page'         => $per_page,
     826                                'max'              => $max,
     827                                'sort'             => $sort,
     828                                'search_terms'     => $search_terms,
     829                                'filter'           => $filter,
     830                                'display_comments' => $display_comments,
     831                                'show_hidden'      => $show_hidden,
     832                                'spam'             => $spam
     833                        );
     834                        $activity = BP_Activity_Activity::get( $args );
    824835                        wp_cache_set( 'bp_activity_sitewide_front', $activity, 'bp' );
    825836                }
    826837
    827838        } else {
    828                 $activity = BP_Activity_Activity::get( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden, $exclude, $in, $spam );
     839                $args = array(
     840                        'page'             => $page,
     841                        'per_page'         => $per_page,
     842                        'max'              => $max,
     843                        'sort'             => $sort,
     844                        'search_terms'     => $search_terms,
     845                        'filter'           => $filter,
     846                        'display_comments' => $display_comments,
     847                        'show_hidden'      => $show_hidden,
     848                        'exclude'          => $exclude,
     849                        'in'               => $in,
     850                        'spam'             => $spam
     851                );
     852                $activity = BP_Activity_Activity::get( $args );
    829853        }
    830854
    831855        return apply_filters_ref_array( 'bp_activity_get', array( &$activity, &$r ) );
    function bp_activity_get_specific( $args = '' ) { 
    858882        $r = wp_parse_args( $args, $defaults );
    859883        extract( $r, EXTR_SKIP );
    860884
     885        $get_args = array(
     886                'page'             => $page,
     887                'per_page'         => $per_page,
     888                'max'              => $max,
     889                'sort'             => $sort,
     890                'display_comments' => $display_comments,
     891                'show_hidden'      => $show_hidden,
     892                'in'               => $activity_ids,
     893                'spam'             => $spam
     894        );
    861895        return apply_filters( 'bp_activity_get_specific', BP_Activity_Activity::get( $max, $page, $per_page, $sort, false, false, $display_comments, $show_hidden, false, $activity_ids, $spam ) );
    862896}
    863897
  • bp-activity/bp-activity-template.php

    diff --git bp-activity/bp-activity-template.php bp-activity/bp-activity-template.php
    index 4844253..f0066e1 100644
    class BP_Activity_Template { 
    104104
    105105        var $full_name;
    106106
    107         function __construct( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden, $exclude = false, $in = false, $spam = 'ham_only', $page_arg = 'acpage' ) {
     107        /**
     108         * Constructor method
     109         *
     110         * See definition of $defaults below, as well as $defaults in bp_has_activities(), for
     111         * description of $args array
     112         *
     113         * @param array $args
     114         */
     115        function __construct( $args ) {
    108116                global $bp;
    109117
     118                // Backward compatibility with old method of passing arguments
     119                if ( !is_array( $args ) || func_num_args() > 1 ) {
     120                        _deprecated_argument( __METHOD__, '1.6', sprintf( __( 'Arguments passed to %s should be in an associative array. See the inline documentation for more details.', 'buddypress' ), __METHOD__ ) );
     121               
     122                        $old_args_keys = array(
     123                                0 => 'page',
     124                                1 => 'per_page',
     125                                2 => 'max',
     126                                3 => 'include',
     127                                4 => 'sort',
     128                                5 => 'filter',
     129                                6 => 'search_terms',
     130                                7 => 'display_comments',
     131                                8 => 'show_hidden',
     132                                9 => 'exclude',
     133                                10 => 'in',
     134                                11 => 'spam',
     135                                12 => 'page_arg'
     136                        );
     137                       
     138                        $args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
     139                }
     140               
     141                $defaults = array(
     142                        'page'             => 1,
     143                        'per_page'         => 20,
     144                        'page_arg'         => 'acpage',
     145                        'max'              => false,
     146                        'sort'             => false,
     147                        'include'          => false,
     148                        'exclude'          => false,
     149                        'in'               => false,
     150                        'filter'           => false,
     151                        'search_terms'     => false,
     152                        'display_comments' => 'threaded',
     153                        'show_hidden'      => false,
     154                        'spam'             => 'ham_only',
     155                );
     156                $r = wp_parse_args( $args, $defaults );
     157                extract( $r );
     158               
    110159                $this->pag_page = isset( $_REQUEST[$page_arg] ) ? intval( $_REQUEST[$page_arg] ) : $page;
    111160                $this->pag_num  = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
    112161
    function bp_has_activities( $args = '' ) { 
    389438        if ( !empty( $include ) && ( 'ham_only' == $spam ) )
    390439                $spam = 'all';
    391440
    392         $activities_template = new BP_Activity_Template( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden, $exclude, $in, $spam, $page_arg );
     441        $template_args = array(
     442                'page'             => $page,
     443                'per_page'         => $per_page,
     444                'page_arg'         => $page_arg,
     445                'max'              => $max,
     446                'sort'             => $sort,
     447                'include'          => $include,
     448                'exclude'          => $exclude,
     449                'in'               => $in,
     450                'filter'           => $filter,
     451                'search_terms'     => $search_terms,
     452                'display_comments' => $display_comments,
     453                'show_hidden'      => $show_hidden,
     454                'spam'             => $spam
     455        );
     456
     457        $activities_template = new BP_Activity_Template( $template_args );
    393458
    394         return apply_filters( 'bp_has_activities', $activities_template->has_activities(), $activities_template );
     459        return apply_filters( 'bp_has_activities', $activities_template->has_activities(), $activities_template, $template_args );
    395460}
    396461
    397462/**
  • bp-core/bp-core-functions.php

    diff --git bp-core/bp-core-functions.php bp-core/bp-core-functions.php
    index 4bb1188..82b4a8d 100644
    function bp_use_wp_admin_bar() { 
    953953        return apply_filters( 'bp_use_wp_admin_bar', $use_admin_bar );
    954954}
    955955
     956/**
     957 * A utility for parsing individual function arguments into an array.
     958 *
     959 * The purpose of this function is to help with backward compatibility in cases where
     960 *
     961 *   function foo( $bar = 1, $baz = false, $barry = array(), $blip = false ) { // ...
     962 *
     963 * is deprecated in favor of
     964 *
     965 *   function foo( $args = array() ) {
     966 *       $defaults = array(
     967 *           'bar'  => 1,
     968 *           'arg2' => false,
     969 *           'arg3' => array(),
     970 *           'arg4' => false,
     971 *       );
     972 *       $r = wp_parse_args( $args, $defaults ); // ...
     973 *
     974 * The first argument, $old_args_keys, is an array that matches the parameter positions (keys) to
     975 * the new $args keys (values):
     976 *
     977 *   $old_args_keys = array(
     978 *       0 => 'bar', // because $bar was the 0th parameter for foo()
     979 *       1 => 'baz', // because $baz was the 1st parameter for foo()
     980 *       2 => 'barry', // etc
     981 *       3 => 'blip'
     982 *   );
     983 *
     984 * For the second argument, $func_args, you should just pass func_get_args().
     985 *
     986 * @since BuddyPress (1.6)
     987 * @param array $old_args_keys
     988 * @param array $func_args
     989 * @return array $new_args
     990 */
     991function bp_core_parse_args_array( $old_args_keys, $func_args ) {
     992        $new_args = array();
     993
     994        foreach( $old_args_keys as $arg_num => $arg_key ) {
     995                if ( isset( $func_args[$arg_num] ) ) {
     996                        $new_args[$arg_key] = $func_args[$arg_num];
     997                }
     998        }
     999
     1000        return $new_args;
     1001}
     1002
    9561003/** Embeds ********************************************************************/
    9571004
    9581005/**