Skip to:
Content

bbPress.org

Changeset 3840


Ignore:
Timestamp:
04/15/2012 01:49:07 AM (12 years ago)
Author:
johnjamesjacoby
Message:

Introduce bbp_parse_args() and pass filter keys into its usages.

  • Parsed args to be passively or aggressively filtered
  • Allows functions that normally require passing parsed $args to instead filter or override results
Location:
branches/plugin/bbp-includes
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/plugin/bbp-includes/bbp-common-functions.php

    r3839 r3840  
    469469        'count_empty_tags'      => true
    470470    );
    471 
    472     $r = wp_parse_args( $args, $defaults );
     471    $r = bbp_parse_args( $args, $defaults, 'get_statistics' );
    473472    extract( $r );
    474473
     
    619618        return false;
    620619
    621     $query_args = wp_parse_args( $query_args );
     620    $query_args = bbp_parse_args( $query_args, '', 'register_view' );
    622621
    623622    // Set exclude_stickies to true if it wasn't supplied
     
    675674
    676675    if ( !empty( $new_args ) ) {
    677         $new_args   = wp_parse_args( $new_args );
     676        $new_args   = bbp_parse_args( $new_args, '', 'view_query' );
    678677        $query_args = array_merge( $query_args, $new_args );
    679678    }
     
    732731        'bbp_anonymous_website' => !empty( $_POST['bbp_anonymous_website'] ) ? $_POST['bbp_anonymous_website'] : false,
    733732    );
    734 
    735     $r = wp_parse_args( $args, $defaults );
     733    $r = bbp_parse_args( $args, $defaults, 'filter_anonymous_post_data' );
    736734    extract( $r );
    737735
     
    12391237
    12401238/**
     1239 * Merge user defined arguments into defaults array.
     1240 *
     1241 * This function is used throughout bbPress to allow for either a string or array
     1242 * to be merged into another array. It is identical to wp_parse_args() except
     1243 * it allows for arguments to be passively or aggressively filtered using the
     1244 * optional $filter_key parameter.
     1245 *
     1246 * @since bbPress (r3839)
     1247 *
     1248 * @param string|array $args Value to merge with $defaults
     1249 * @param array $defaults Array that serves as the defaults.
     1250 * @param string $filter_key String to key the filters from
     1251 * @return array Merged user defined values with defaults.
     1252 */
     1253function bbp_parse_args( $args, $defaults = '', $filter_key = '' ) {
     1254
     1255    // Setup a temporary array from $args
     1256    if ( is_object( $args ) )
     1257        $r = get_object_vars( $args );
     1258    elseif ( is_array( $args ) )
     1259        $r =& $args;
     1260    else
     1261        wp_parse_str( $args, $r );
     1262
     1263    // Passively filter the args before the parse
     1264    if ( !empty( $filter_key ) )
     1265        $r = apply_filters( 'bbp_before_' . $filter_key . '_parse_args', $r );
     1266
     1267    // Parse
     1268    if ( is_array( $defaults ) )
     1269        $r = array_merge( $defaults, $r );
     1270
     1271    // Aggressively filter the args after the parse
     1272    if ( !empty( $filter_key ) )
     1273        $r = apply_filters( 'bbp_after_' . $filter_key . '_parse_args', $r );
     1274
     1275    // Return the parsed results
     1276    return $r;
     1277}
     1278
     1279/**
    12411280 * Adds ability to include or exclude specific post_parent ID's
    12421281 *
  • branches/plugin/bbp-includes/bbp-common-template.php

    r3797 r3840  
    840840        'context' => ''
    841841    );
    842     $r = wp_parse_args( $args, $defaults );
     842    $r = bbp_parse_args( $args, $defaults, 'login_action' );
    843843    extract( $r );
    844844
     
    10621062            'disable_categories' => true
    10631063        );
    1064 
    1065         $r = wp_parse_args( $args, $defaults );
     1064        $r = bbp_parse_args( $args, $defaults, 'get_dropdown' );
    10661065
    10671066        if ( empty( $r['walker'] ) ) {
     
    13901389            'quicktags'     => true
    13911390        );
    1392         $r = apply_filters( 'bbp_pre_the_content', wp_parse_args( $args, $defaults ) );
     1391        $r = bbp_parse_args( $args, $defaults, 'get_the_content' );
    13931392        extract( $r );
    13941393
     
    17941793            'current_text'    => $pre_current_text
    17951794        );
    1796         $r = apply_filters( 'bbp_get_breadcrumb_pre', wp_parse_args( $args, $defaults ) );
     1795        $r = bbp_parse_args( $args, $defaults, 'get_breadcrumb' );
    17971796        extract( $r );
    17981797
  • branches/plugin/bbp-includes/bbp-core-update.php

    r3798 r3840  
    170170        'reply_content' => __( 'Oh, and this is what a reply looks like.', 'bbpress' ),
    171171    );
    172     $r = wp_parse_args( apply_filters( 'bbp_pre_create_initial_content', $args ), $defaults );
     172    $r = bbp_parse_args( $args, $defaults, 'create_initial_content' );
    173173    extract( $r );
    174174
  • branches/plugin/bbp-includes/bbp-extend-buddypress.php

    r3804 r3840  
    293293     * @uses bbp_get_current_user_id()
    294294     * @uses bp_core_current_time()
    295      * @uses wp_parse_args()
     295     * @uses bbp_parse_args()
    296296     * @uses aplly_filters()
    297297     * @uses bp_activity_add()
     
    317317            'hide_sitewide'     => false
    318318        );
    319 
    320         // Parse the difference
    321         $activity = wp_parse_args( $args, $defaults );
    322 
    323         // Just in-time filtering of activity stream contents
    324         $activity = apply_filters( 'bbp_record_activity', $activity );
     319        $activity = bbp_parse_args( $args, $defaults, 'record_activity' );
    325320
    326321        // Add the activity
     
    335330     * @uses bbp_get_current_user_id()
    336331     * @uses bp_core_current_time()
    337      * @uses wp_parse_args()
     332     * @uses bbp_parse_args()
    338333     * @uses aplly_filters()
    339334     * @uses bp_activity_add()
     
    354349            'secondary_item_id' => false
    355350        );
    356 
    357         // Parse the differenc
    358         $activity = wp_parse_args( $args, $defaults );
    359 
    360         // Just in-time filtering of activity stream contents
    361         $activity = apply_filters( 'bbp_delete_activity', $activity );
     351        $activity = bbp_parse_args( $args, $defaults, 'delete_activity' );
    362352
    363353        // Delete the activity
  • branches/plugin/bbp-includes/bbp-forum-functions.php

    r3826 r3840  
    1919 * @since bbPress (r3349)
    2020 *
    21  * @uses wp_parse_args()
     21 * @uses bbp_parse_args()
    2222 * @uses bbp_get_forum_post_type()
    2323 * @uses wp_insert_post()
     
    4141        'comment_status' => 'closed'
    4242    );
    43 
    44     // Parse args
    45     $forum_data = wp_parse_args( $forum_data, $default_forum );
     43    $forum_data = bbp_parse_args( $forum_data, $default_forum, 'insert_forum' );
    4644
    4745    // Insert forum
     
    6563        'forum_subforum_count' => 0,
    6664    );
    67 
    68     // Parse args
    69     $forum_meta = wp_parse_args( $forum_meta, $default_meta );
     65    $forum_meta = bbp_parse_args( $forum_meta, $default_meta, 'insert_forum_meta' );
    7066
    7167    // Insert forum meta
     
    14981494        'last_active_status' => bbp_get_public_status_id()
    14991495    );
    1500 
    1501     $r = wp_parse_args( $args, $defaults );
     1496    $r = bbp_parse_args( $args, $defaults, 'update_forum' );
    15021497    extract( $r );
    15031498
  • branches/plugin/bbp-includes/bbp-forum-template.php

    r3836 r3840  
    7979
    8080    // The default forum query for most circumstances
    81     $default = array (
     81    $defaults = array (
    8282        'post_type'      => bbp_get_forum_post_type(),
    8383        'post_parent'    => bbp_is_forum_archive() ? 0 : bbp_get_forum_id() ,
     
    8787        'order'          => 'ASC'
    8888    );
    89 
    90     // Filter the default arguments
    91     $args  = apply_filters( 'bbp_pre_has_forums_query', $args );
    92 
    93     // Parse the default against what is requested
    94     $bbp_f = wp_parse_args( $args, $default );
    95 
    96     // Filter the forums query to allow just-in-time modifications
    97     $bbp_f = apply_filters( 'bbp_has_forums_query', $bbp_f );
     89    $bbp_f = bbp_parse_args( $args, $defaults, 'has_forums' );
    9890
    9991    // Run the query
     
    639631
    640632        // Check if user can read private forums
    641         if ( current_user_can( 'read_private_forums' ) )
     633        if ( current_user_can( 'read_private_forums' ) ) {
    642634            $post_stati[] = bbp_get_private_status_id();
     635        }
    643636
    644637        // Check if user can read hidden forums
    645         if ( current_user_can( 'read_hidden_forums' ) )
     638        if ( current_user_can( 'read_hidden_forums' ) ) {
    646639            $post_stati[] = bbp_get_hidden_status_id();
    647     }
    648 
    649     $default = array(
     640        }
     641    }
     642
     643    $defaults = array(
    650644        'post_parent'    => 0,
    651645        'post_type'      => bbp_get_forum_post_type(),
     
    655649        'order'          => 'ASC'
    656650    );
    657 
    658     $r = wp_parse_args( $args, $default );
     651    $r = bbp_parse_args( $args, $defaults, 'forum_get_subforums' );
    659652    $r['post_parent'] = bbp_get_forum_id( $r['post_parent'] );
    660653
     
    705698        'show_reply_count'  => true,
    706699    );
    707     $r = wp_parse_args( $args, $defaults );
     700    $r = bbp_parse_args( $args, $defaults, 'list_forums' );
    708701    extract( $r, EXTR_SKIP );
    709702
     
    18271820            'feed'      => true
    18281821        );
    1829         $r = wp_parse_args( $args, $defaults );
     1822        $r = bbp_parse_args( $args, $defaults, 'get_single_forum_description' );
    18301823        extract( $r );
    18311824
  • branches/plugin/bbp-includes/bbp-reply-functions.php

    r3808 r3840  
    1919 * @since bbPress (r3349)
    2020 *
    21  * @uses wp_parse_args()
     21 * @uses bbp_parse_args()
    2222 * @uses bbp_get_reply_post_type()
    2323 * @uses wp_insert_post()
     
    4141        'comment_status' => 'closed'
    4242    );
    43 
    44     // Parse args
    45     $reply_data = wp_parse_args( $reply_data, $default_reply );
     43    $reply_data = bbp_parse_args( $reply_data, $default_reply, 'insert_reply' );
    4644
    4745    // Insert reply
     
    5856        'topic_id'  => 0,
    5957    );
    60 
    61     // Parse args
    62     $reply_meta = wp_parse_args( $reply_meta, $default_meta );
     58    $reply_meta = bbp_parse_args( $reply_meta, $default_meta, 'insert_reply_meta' );
    6359
    6460    // Insert reply meta
     
    641637            'bbp_anonymous_website' => '',
    642638        );
    643         $r = wp_parse_args( $anonymous_data, $defaults );
     639        $r = bbp_parse_args( $anonymous_data, $defaults, 'update_reply' );
    644640
    645641        // Update all anonymous metas
     
    933929    );
    934930
    935     $r = wp_parse_args( $args, $defaults );
     931    $r = bbp_parse_args( $args, $defaults, 'update_reply_revision_log' );
    936932    extract( $r );
    937933
  • branches/plugin/bbp-includes/bbp-reply-template.php

    r3824 r3840  
    117117        $default = array_merge( $parent_args, $default );
    118118
    119     // Filter the default arguments
    120     $args  = apply_filters( 'bbp_pre_has_replies_query', $args );
    121 
    122119    // Set up topic variables
    123     $bbp_r = wp_parse_args( $args, $default );
    124 
    125     // Filter the replies query to allow just-in-time modifications
    126     $bbp_r = apply_filters( 'bbp_has_replies_query', $bbp_r );
     120    $bbp_r = bbp_parse_args( $args, $default, 'has_replies' );
    127121
    128122    // Extract the query variables
     
    984978            'sep'        => ' '
    985979        );
    986         $r = wp_parse_args( $args, $defaults );
     980        $r = bbp_parse_args( $args, $defaults, 'get_reply_author_link' );
    987981        extract( $r );
    988982
     
    13631357            'links'  => array()
    13641358        );
    1365         $r = wp_parse_args( $args, $defaults );
     1359        $r = bbp_parse_args( $args, $defaults, 'get_reply_admin_links' );
    13661360
    13671361        $r['id'] = bbp_get_reply_id( (int) $r['id'] );
     
    14561450            'edit_text'    => __( 'Edit', 'bbpress' )
    14571451        );
    1458         $r = wp_parse_args( $args, $defaults );
     1452        $r = bbp_parse_args( $args, $defaults, 'get_reply_edit_link' );
    14591453        extract( $r );
    14601454
     
    15781572            'delete_text'  => __( 'Delete',  'bbpress' )
    15791573        );
    1580         $r = wp_parse_args( $args, $defaults );
     1574        $r = bbp_parse_args( $args, $defaults, 'get_reply_trash_link' );
    15811575        extract( $r );
    15821576
     
    16481642            'unspam_text'  => __( 'Unspam', 'bbpress' )
    16491643        );
    1650         $r = wp_parse_args( $args, $defaults );
     1644        $r = bbp_parse_args( $args, $defaults, 'get_reply_spam_link' );
    16511645        extract( $r );
    16521646
     
    17121706            'split_title' => __( 'Split the topic from this reply', 'bbpress' )
    17131707        );
    1714         $r = wp_parse_args( $args, $defaults );
     1708        $r = bbp_parse_args( $args, $defaults, 'get_topic_split_link' );
    17151709        extract( $r );
    17161710
  • branches/plugin/bbp-includes/bbp-theme-compatibility.php

    r3830 r3840  
    278278        );
    279279    }
    280     $dummy = wp_parse_args( $args, $defaults );
     280    $dummy = bbp_parse_args( $args, $defaults, 'theme_compat_reset_post' );
    281281
    282282    // Clear out the post related globals
  • branches/plugin/bbp-includes/bbp-topic-functions.php

    r3826 r3840  
    1919 * @since bbPress (r3349)
    2020 *
    21  * @uses wp_parse_args()
     21 * @uses bbp_parse_args()
    2222 * @uses bbp_get_topic_post_type()
    2323 * @uses wp_insert_post()
     
    4343
    4444    // Parse args
    45     $topic_data = wp_parse_args( $topic_data, $default_topic );
     45    $topic_data = bbp_parse_args( $topic_data, $default_topic, 'insert_topic' );
    4646
    4747    // Insert topic
     
    6666
    6767    // Parse args
    68     $topic_meta = wp_parse_args( $topic_meta, $default_meta );
     68    $topic_meta = bbp_parse_args( $topic_meta, $default_meta, 'insert_topic_meta' );
    6969
    7070    // Insert topic meta
     
    740740            'bbp_anonymous_website' => '',
    741741        );
    742         $r = wp_parse_args( $anonymous_data, $defaults );
     742        $r = bbp_parse_args( $anonymous_data, $defaults, 'update_topic' );
    743743
    744744        // Update all anonymous metas
     
    24442444        'revision_id' => 0
    24452445    );
    2446 
    2447     $r = wp_parse_args( $args, $defaults );
     2446    $r = bbp_parse_args( $args, $defaults, 'update_topic_revision_log' );
    24482447    extract( $r );
    24492448
  • branches/plugin/bbp-includes/bbp-topic-template.php

    r3836 r3840  
    115115        $default['taxonomy'] = bbp_get_topic_tag_tax_id();
    116116    }
    117 
    118     // Filter the default arguments
    119     $args  = apply_filters( 'bbp_pre_has_topics_query', $args );
    120 
    121     // Set up topic variables
    122     $bbp_t = wp_parse_args( $args, $default );
    123 
    124     // Filter the topics query to allow just-in-time modifications
    125     $bbp_t = apply_filters( 'bbp_has_topics_query', $bbp_t );
     117    $bbp_t = bbp_parse_args( $args, $default, 'has_topics' );
    126118
    127119    // Extract the query variables
     
    677669            'after'    => '</span>',
    678670        );
    679 
    680         $r = wp_parse_args( $args, $defaults );
     671        $r = bbp_parse_args( $args, $defaults, 'get_topic_pagination' );
    681672        extract( $r );
    682673
     
    12581249            'sep'        => '&nbsp;'
    12591250        );
    1260 
    1261         $r = wp_parse_args( $args, $defaults );
     1251        $r = bbp_parse_args( $args, $defaults, 'get_topic_author_link' );
    12621252        extract( $r );
    12631253
     
    19381928            'after'  => '</p></div>'
    19391929        );
    1940 
    1941         $r = wp_parse_args( $args, $defaults );
     1930        $r = bbp_parse_args( $args, $defaults, 'get_topic_tag_list' );
    19421931        extract( $r );
    19431932
     
    20582047            'links'  => array()
    20592048        );
    2060 
    2061         $r = wp_parse_args( $args, $defaults );
     2049        $r = bbp_parse_args( $args, $defaults, 'get_topic_admin_links' );
    20622050
    20632051        if ( !current_user_can( 'edit_topic', $r['id'] ) )
     
    21392127            'edit_text'    => __( 'Edit', 'bbpress' )
    21402128        );
    2141 
    2142         $r = wp_parse_args( $args, $defaults );
     2129        $r = bbp_parse_args( $args, $defaults, 'get_topic_edit_link' );
    21432130        extract( $r );
    21442131
     
    22632250            'delete_text'  => __( 'Delete',  'bbpress' )
    22642251        );
    2265         $r = wp_parse_args( $args, $defaults );
     2252        $r = bbp_parse_args( $args, $defaults, 'get_topic_trash_link' );
    22662253        extract( $r );
    22672254
     
    23322319            'open_text'   => _x( 'Open',  'Topic Status', 'bbpress' )
    23332320        );
    2334 
    2335         $r = wp_parse_args( $args, $defaults );
     2321        $r = bbp_parse_args( $args, $defaults, 'get_topic_close_link' );
    23362322        extract( $r );
    23372323
     
    23942380            'super_text'   => __( 'to front', 'bbpress' ),
    23952381        );
    2396 
    2397         $r = wp_parse_args( $args, $defaults );
     2382        $r = bbp_parse_args( $args, $defaults, 'get_topic_stick_link' );
    23982383        extract( $r );
    23992384
     
    24642449            'merge_text'   => __( 'Merge', 'bbpress' ),
    24652450        );
    2466 
    2467         $r = wp_parse_args( $args, $defaults );
     2451        $r = bbp_parse_args( $args, $defaults, 'get_topic_merge_link' );
    24682452        extract( $r );
    24692453
     
    25222506            'unspam_text'  => __( 'Unspam', 'bbpress' )
    25232507        );
    2524         $r = wp_parse_args( $args, $defaults );
     2508        $r = bbp_parse_args( $args, $defaults, 'get_topic_spam_link' );
    25252509        extract( $r );
    25262510
     
    26892673        'topic_id'     => 0
    26902674    );
    2691 
    2692     $r = wp_parse_args( $args, $defaults );
     2675    $r = bbp_parse_args( $args, $defaults, 'topic_type_select' );
    26932676    extract( $r );
    26942677
     
    27912774            'size'      => 14
    27922775        );
    2793         $r = wp_parse_args( $args, $defaults );
     2776        $r = bbp_parse_args( $args, $defaults, 'get_single_topic_description' );
    27942777        extract( $r );
    27952778
     
    30873070            'tag'    => ''
    30883071        );
    3089         $r = wp_parse_args( $args, $defaults );
     3072        $r = bbp_parse_args( $args, $defaults, 'get_topic_tag_description' );
    30903073        extract( $r );
    30913074
  • branches/plugin/bbp-includes/bbp-user-template.php

    r3838 r3840  
    439439            'after'  => ''
    440440        );
    441         $args = wp_parse_args( $args, $defaults );
     441        $args = bbp_parse_args( $args, $defaults, 'get_admin_link' );
    442442        extract( $args, EXTR_SKIP );
    443443
     
    479479        );
    480480
    481         $r = wp_parse_args( $args, $defaults );
     481        $r = bbp_parse_args( $args, $defaults, 'get_author_ip' );
    482482        extract( $r );
    483483
     
    700700            'after'       => ''
    701701        );
    702 
    703         $args = wp_parse_args( $args, $defaults );
     702        $args = bbp_parse_args( $args, $defaults, 'get_user_subscribe_link' );
    704703        extract( $args );
    705704
     
    10751074            'size'       => 80
    10761075        );
    1077         $r = wp_parse_args( $args, $defaults );
     1076        $r = bbp_parse_args( $args, $defaults, 'get_author_link' );
    10781077        extract( $r );
    10791078
     
    11471146 * @uses bbp_get_forum_id()
    11481147 * @uses bbp_allow_anonymous()
    1149  * @uses wp_parse_args()
     1148 * @uses bbp_parse_args()
    11501149 * @uses bbp_get_user_id()
    11511150 * @uses current_user_can()
     
    11671166        'check_ancestors' => false
    11681167    );
    1169     $r = wp_parse_args( $args, $defaults );
     1168    $r = bbp_parse_args( $args, $defaults, 'user_can_view_forum' );
    11701169    extract( $r );
    11711170
     
    12961295
    12971296/**
     1297 * Get the forums the current user has the ability to see and post to
    12981298 *
    12991299 * @since bbPress (r3127)
     
    13311331        'exclude'     => $post__not_in
    13321332    );
    1333     $r = wp_parse_args( $args, $defaults );
     1333    $r = bbp_parse_args( $args, $defaults, 'get_forums_for_current_user' );
    13341334
    13351335    // Get the forums
Note: See TracChangeset for help on using the changeset viewer.