Skip to:
Content

BuddyPress.org

Changeset 7942


Ignore:
Timestamp:
02/20/2014 09:02:33 PM (7 years ago)
Author:
boonebgorges
Message:

Introduce blog- and group-create button functions, and use to build directory headers in bp-legacy

The new functions bp_get_blog_create_button() and bp_get_group_create_button()
standardize the treatment of these buttons by using bp_get_button(). They also
make life easier for themers, who will not need to build the buttons from
scratch.

In this changeset we modify the way that bp-legacy loads these buttons into the
titles of the directory pages. Previously, it was done directly in BP's theme
compat layer, with the result that all template packs had to follow the
questionable practice of embedding a button inside of a header element. Now,
the directory title is a string, but is filtered; bp-legacy then chooses to
add a button by using the new create-button functions + the new filters.

Fixes #5144

Props hnla, r-a-y

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-blogs/bp-blogs-screens.php

    r7926 r7942  
    142142    public function directory_dummy_post() {
    143143
    144         // Title based on ability to create blogs
    145         if ( is_user_logged_in() && bp_blog_signup_enabled() ) {
    146             $title = __( 'Sites', 'buddypress' ) . '&nbsp;<a class="button" href="' . trailingslashit( bp_get_root_domain() . '/' . bp_get_blogs_root_slug() . '/create' ) . '">' . __( 'Create a Sites', 'buddypress' ) . '</a>';
    147         } else {
    148             $title = __( 'Sites', 'buddypress' );
    149         }
     144        $title = apply_filters( 'bp_blogs_directory_title', __( 'Sites', 'buddypress' ) );
    150145
    151146        bp_theme_compat_reset_post( array(
  • trunk/bp-blogs/bp-blogs-template.php

    r7919 r7942  
    11501150
    11511151/**
     1152 * Output the Create a Site button.
     1153 *
     1154 * @since BuddyPress (2.0.0)
     1155 */
     1156function bp_blog_create_button() {
     1157    echo bp_get_blog_create_button();
     1158}
     1159    /**
     1160     * Get the Create a Site button.
     1161     *
     1162     * @since BuddyPress (2.0.0)
     1163     *
     1164     * @return string
     1165     */
     1166    function bp_get_blog_create_button() {
     1167        if ( ! is_user_logged_in() ) {
     1168            return false;
     1169        }
     1170
     1171        if ( ! bp_blog_signup_enabled() ) {
     1172            return false;
     1173        }
     1174
     1175        $button_args = array(
     1176            'id'         => 'create_blog',
     1177            'component'  => 'blogs',
     1178            'link_text'  => __( 'Create a Site', 'buddypress' ),
     1179            'link_title' => __( 'Create a Site', 'buddypress' ),
     1180            'link_class' => 'button blog-create bp-title-button',
     1181            'link_href'  => trailingslashit( bp_get_root_domain() ) . trailingslashit( bp_get_blogs_root_slug() ) . trailingslashit( 'create' ),
     1182            'wrapper'    => false,
     1183        );
     1184
     1185        return bp_get_button( $button_args );
     1186    }
     1187
     1188/**
    11521189 * Output button for visiting a blog in a loop.
    11531190 *
  • trunk/bp-groups/bp-groups-screens.php

    r7926 r7942  
    10221022    public function directory_dummy_post() {
    10231023
    1024         // Title based on ability to create groups
    1025         if ( is_user_logged_in() && bp_user_can_create_groups() ) {
    1026             $title = __( 'Groups', 'buddypress' ) . '&nbsp;<a class="button bp-title-button" href="' . trailingslashit( bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create' ) . '">' . __( 'Create a Group', 'buddypress' ) . '</a>';
    1027         } else {
    1028             $title = __( 'Groups', 'buddypress' );
    1029         }
     1024        $title = apply_filters( 'bp_groups_directory_title', __( 'Groups', 'buddypress' ) );
    10301025
    10311026        bp_theme_compat_reset_post( array(
  • trunk/bp-groups/bp-groups-template.php

    r7931 r7942  
    18551855
    18561856/**
     1857 * Output the Create a Group button.
     1858 *
     1859 * @since BuddyPress (2.0.0)
     1860 */
     1861function bp_group_create_button() {
     1862    echo bp_get_group_create_button();
     1863}
     1864    /**
     1865     * Get the Create a Group button.
     1866     *
     1867     * @since BuddyPress (2.0.0)
     1868     *
     1869     * @return string
     1870     */
     1871    function bp_get_group_create_button() {
     1872        if ( ! is_user_logged_in() ) {
     1873            return false;
     1874        }
     1875
     1876        if ( ! bp_user_can_create_groups() ) {
     1877            return false;
     1878        }
     1879
     1880        $button_args = array(
     1881            'id'         => 'create_group',
     1882            'component'  => 'groups',
     1883            'link_text'  => __( 'Create a Group', 'buddypress' ),
     1884            'link_title' => __( 'Create a Group', 'buddypress' ),
     1885            'link_class' => 'button group-create bp-title-button',
     1886            'link_href'  => trailingslashit( bp_get_root_domain() ) . trailingslashit( bp_get_groups_root_slug() ) . trailingslashit( 'create' ),
     1887            'wrapper'    => false,
     1888        );
     1889
     1890        return bp_get_button( $button_args );
     1891    }
     1892
     1893/**
    18571894 * Prints a message if the group is not visible to the current user (it is a
    18581895 * hidden or private group, and the user does not have access).
  • trunk/bp-templates/bp-legacy/buddypress-functions.php

    r7570 r7942  
    112112                add_action( 'bp_group_header_actions',     'bp_group_new_topic_button',      20 );
    113113                add_action( 'bp_directory_groups_actions', 'bp_group_join_button' );
     114                add_filter( 'bp_groups_directory_title',   'bp_legacy_theme_group_create_button' );
     115                add_filter( 'bp_blogs_directory_title',    'bp_legacy_theme_blog_create_button' );
    114116            }
    115117
     
    421423
    422424/**
     425 * Add the Create a Group button to the Groups directory title.
     426 *
     427 * bp-legacy puts the Create a Group button into the page title, to mimic
     428 * the behavior of bp-default.
     429 *
     430 * @since BuddyPress (2.0.0)
     431 *
     432 * @param string $title Groups directory title.
     433 * @return string
     434 */
     435function bp_legacy_theme_group_create_button( $title ) {
     436    return $title . ' ' . bp_get_group_create_button();
     437}
     438
     439/**
     440 * Add the Create a Site button to the Sites directory title.
     441 *
     442 * bp-legacy puts the Create a Site button into the page title, to mimic
     443 * the behavior of bp-default.
     444 *
     445 * @since BuddyPress (2.0.0)
     446 *
     447 * @param string $title Sites directory title.
     448 * @return string
     449 */
     450function bp_legacy_theme_blog_create_button( $title ) {
     451    return $title . ' ' . bp_get_blog_create_button();
     452}
     453/**
    423454 * This function looks scarier than it actually is. :)
    424455 * Each object loop (activity/members/groups/blogs/forums) contains default
Note: See TracChangeset for help on using the changeset viewer.