Skip to:
Content

BuddyPress.org

Changeset 13303


Ignore:
Timestamp:
07/22/2022 12:54:40 PM (22 months ago)
Author:
imath
Message:

Introduce a function to only get the "Visit blog" button args

bp_get_blogs_visit_blog_button_args() eases the process of getting these arguments and removes the need for BP Nouveau's workaround.
Deprecate the bp_nouveau_blogs_catch_button_args() as no more needed.

Props hnla

Fixes #7126
See #8722

Location:
trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-blogs/bp-blogs-template.php

    r13296 r13303  
    15431543 * Output button for visiting a blog in a loop.
    15441544 *
    1545  * @see bp_get_blogs_visit_blog_button() for description of arguments.
    1546  *
    1547  * @param array|string $args See {@link bp_get_blogs_visit_blog_button()}.
     1545 * @see bp_get_blogs_visit_blog_button_args() for description of arguments.
     1546 *
     1547 * @param array|string $args See {@link bp_get_blogs_visit_blog_button_args()}.
    15481548 */
    15491549function bp_blogs_visit_blog_button( $args = '' ) {
    15501550    echo bp_get_blogs_visit_blog_button( $args );
    15511551}
    1552     /**
    1553      * Return button for visiting a blog in a loop.
     1552
     1553    /**
     1554     * Return the arguments of the button for visiting a blog in a loop.
    15541555     *
    15551556     * @see BP_Button for a complete description of arguments and return
    15561557     *      value.
     1558     *
     1559     * @since 11.0.0
    15571560     *
    15581561     * @param array|string $args {
     
    15671570     *     @type string $link_class        Default: 'blog-button visit'.
    15681571     *     @type string $link_text         Default: 'Visit Site'.
     1572     *     @type string $link_title        Default: 'Visit Site'.
    15691573     * }
    1570      * @return string The HTML for the Visit button.
    1571      */
    1572     function bp_get_blogs_visit_blog_button( $args = '' ) {
    1573         $button = bp_parse_args(
     1574     * @return array Thhe arguments of the button for visiting a blog in a loop.
     1575     */
     1576    function bp_get_blogs_visit_blog_button_args( $args = '' ) {
     1577        $button_args = bp_parse_args(
    15741578            $args,
    15751579            array(
     
    15821586                'link_class'        => 'blog-button visit',
    15831587                'link_text'         => __( 'Visit Site', 'buddypress' ),
     1588                'link_title'        => __( 'Visit Site', 'buddypress' ),
    15841589            )
    15851590        );
     
    15901595         * @since 1.2.10
    15911596         *
    1592          * @param array $button Array of arguments to be used for the button to visit a blog.
    1593          */
    1594         return bp_get_button( apply_filters( 'bp_get_blogs_visit_blog_button', $button ) );
     1597         * @param array $button_args Array of arguments to be used for the button to visit a blog.
     1598         */
     1599        return apply_filters( 'bp_get_blogs_visit_blog_button', $button_args );
     1600    }
     1601
     1602    /**
     1603     * Return button for visiting a blog in a loop.
     1604     *
     1605     * @see BP_Button for a complete description of arguments and return
     1606     *      value.
     1607     *
     1608     * @see bp_get_blogs_visit_blog_button_args() for description of arguments.
     1609     *
     1610     * @param array|string $args See {@link bp_get_blogs_visit_blog_button_args()}.
     1611     * @return string The HTML for the Visit button.
     1612     */
     1613    function bp_get_blogs_visit_blog_button( $args = '' ) {
     1614        $button_args = bp_get_blogs_visit_blog_button_args( $args );
     1615
     1616        if ( ! array_filter( $button_args ) ) {
     1617            return '';
     1618        }
     1619
     1620        return bp_get_button( $button_args );
    15951621    }
    15961622
  • trunk/src/bp-core/deprecated/11.0.php

    r13302 r13303  
    5757    return array();
    5858}
     59
     60/**
     61 * Catch the arguments for buttons
     62 *
     63 * @since 3.0.0
     64 * @deprecated 11.0.0
     65 *
     66 * @param array $buttons The arguments of the button that BuddyPress is about to create.
     67 *
     68 * @return array An empty array to stop the button creation process.
     69 */
     70function bp_nouveau_blogs_catch_button_args( $button = array() ) {
     71    _deprecated_function( __FUNCTION__, '11.0.0' );
     72
     73    // Globalize the arguments so that we can use it  in bp_nouveau_get_blogs_buttons().
     74    bp_nouveau()->blogs->button_args = $button;
     75
     76    // return an empty array to stop the button creation process
     77    return array();
     78}
  • trunk/src/bp-templates/bp-nouveau/includes/blogs/functions.php

    r12908 r13303  
    117117
    118118/**
    119  * Catch the arguments for buttons
    120  *
    121  * @since 3.0.0
    122  *
    123  * @param array $buttons The arguments of the button that BuddyPress is about to create.
    124  *
    125  * @return array An empty array to stop the button creation process.
    126  */
    127 function bp_nouveau_blogs_catch_button_args( $button = array() ) {
    128     // Globalize the arguments so that we can use it  in bp_nouveau_get_blogs_buttons().
    129     bp_nouveau()->blogs->button_args = $button;
    130 
    131     // return an empty array to stop the button creation process
    132     return array();
    133 }
    134 
    135 /**
    136119 * Add settings to the customizer for the blogs component.
    137120 *
  • trunk/src/bp-templates/bp-nouveau/includes/blogs/template-tags.php

    r12567 r13303  
    200200        }
    201201
    202         /*
    203          * This filter workaround is waiting for a core adaptation
    204          * so that we can directly get the groups button arguments
    205          * instead of the button.
    206          *
    207          * See https://buddypress.trac.wordpress.org/ticket/7126
    208          */
    209         add_filter( 'bp_get_blogs_visit_blog_button', 'bp_nouveau_blogs_catch_button_args', 100, 1 );
    210 
    211         bp_get_blogs_visit_blog_button();
    212 
    213         remove_filter( 'bp_get_blogs_visit_blog_button', 'bp_nouveau_blogs_catch_button_args', 100, 1 );
    214 
    215         if ( isset( bp_nouveau()->blogs->button_args ) && bp_nouveau()->blogs->button_args ) {
    216             $button_args = bp_nouveau()->blogs->button_args ;
    217 
    218             // If we pass through parent classes add them to $button array
    219             $parent_class = '';
    220             if ( ! empty( $args['parent_attr']['class'] ) ) {
    221                 $parent_class = $args['parent_attr']['class'];
    222             }
    223 
    224             // Set defaults if not set.
    225             $button_args = array_merge( array(
    226                 'wrapper_id' => '',
    227                 'link_id'    => '',
    228                 'link_rel'   => ''
    229             ), $button_args );
    230 
    231             $buttons['visit_blog'] = array(
    232                 'id'                => 'visit_blog',
    233                 'position'          => 5,
    234                 'component'         => $button_args['component'],
    235                 'must_be_logged_in' => $button_args['must_be_logged_in'],
    236                 'block_self'        => $button_args['block_self'],
    237                 'parent_element'    => $parent_element,
    238                 'button_element'    => $button_element,
    239                 'link_text'         => $button_args['link_text'],
    240                 'parent_attr'       => array(
    241                     'id'              => $button_args['wrapper_id'],
    242                     'class'           => $parent_class,
    243                 ),
    244                 'button_attr'       => array(
    245                     'href'             => $button_args['link_href'],
    246                     'id'               => $button_args['link_id'],
    247                     'class'            => $button_args['link_class'] . ' button',
    248                     'rel'              => $button_args['link_rel'],
    249                     'title'            => '',
    250                 ),
    251             );
    252 
    253             unset( bp_nouveau()->blogs->button_args );
    254         }
     202        $button_args = bp_get_blogs_visit_blog_button_args();
     203
     204        // If we pass through parent classes add them to $button array
     205        $parent_class = '';
     206        if ( ! empty( $args['parent_attr']['class'] ) ) {
     207            $parent_class = $args['parent_attr']['class'];
     208        }
     209
     210        // Set defaults if not set.
     211        $button_args = array_merge( array(
     212            'wrapper_id' => '',
     213            'link_id'    => '',
     214            'link_rel'   => ''
     215        ), $button_args );
     216
     217        $buttons['visit_blog'] = array(
     218            'id'                => 'visit_blog',
     219            'position'          => 5,
     220            'component'         => $button_args['component'],
     221            'must_be_logged_in' => $button_args['must_be_logged_in'],
     222            'block_self'        => $button_args['block_self'],
     223            'parent_element'    => $parent_element,
     224            'button_element'    => $button_element,
     225            'link_text'         => $button_args['link_text'],
     226            'link_title'        => $button_args['link_title'],
     227            'parent_attr'       => array(
     228                'id'              => $button_args['wrapper_id'],
     229                'class'           => $parent_class,
     230            ),
     231            'button_attr'       => array(
     232                'href'             => $button_args['link_href'],
     233                'id'               => $button_args['link_id'],
     234                'class'            => $button_args['link_class'] . ' button',
     235                'rel'              => $button_args['link_rel'],
     236                'title'            => '',
     237            ),
     238        );
    255239
    256240        /**
  • trunk/src/class-buddypress.php

    r13273 r13303  
    560560            require $this->plugin_dir . 'bp-core/deprecated/9.0.php';
    561561            require $this->plugin_dir . 'bp-core/deprecated/10.0.php';
     562            require $this->plugin_dir . 'bp-core/deprecated/11.0.php';
    562563        }
    563564
Note: See TracChangeset for help on using the changeset viewer.