Skip to:
Content

BuddyPress.org

Changeset 3260


Ignore:
Timestamp:
09/13/2010 01:08:31 AM (16 years ago)
Author:
johnjamesjacoby
Message:

Committing patch from #2566 for easier review and testing. Adds BP_Button class and associated template tags. Also includes code formatting fixes, phpdoc, widget fixes when friends component is disabled, and possibly the kitchen sink.

Location:
branches/1.2
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/1.2/bp-activity/bp-activity-templatetags.php

    r3245 r3260  
    922922                global $bp;
    923923
    924                 return apply_filters( 'bp_get_send_public_message_link', $bp->loggedin_user->domain . $bp->activity->slug . '/?r=' . bp_core_get_username( $bp->displayed_user->user_id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) );
     924                if ( bp_is_my_profile() || !is_user_logged_in() )
     925                        return false;
     926
     927                return apply_filters( 'bp_get_send_public_message_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->activity->slug . '/?r=' . bp_core_get_username( $bp->displayed_user->user_id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) ) );
     928        }
     929
     930/**
     931 * bp_send_public_message_button( $args )
     932 *
     933 * Output button for sending a public message
     934 *
     935 * @param array $args
     936 */
     937function bp_send_public_message_button( $args = '' ) {
     938        echo bp_get_send_public_message_button( $args );
     939}
     940        /**
     941         * bp_get_send_public_message_button( $args )
     942         *
     943         * Return button for sending a public message
     944         *
     945         * @param array $args
     946         * @return string
     947         */
     948        function bp_get_send_public_message_button( $args = '' ) {
     949                $defaults = array(
     950                        'id'                => 'public_message',
     951                        'component'         => 'activity',
     952                        'must_be_logged_in' => true,
     953                        'block_self'        => true,
     954                        'wrapper_id'        => 'post-mention',
     955                        'link_href'         => bp_get_send_public_message_link(),
     956                        'link_title'        => __( 'Mention this user in a new public message, this will send the user a notification to get their attention.', 'buddypress' ),
     957                        'link_text'         => __( 'Mention this User', 'buddypress' )
     958                );
     959
     960                $button = wp_parse_args( $args, $defaults );
     961
     962                // Filter and return the HTML button
     963                return bp_get_button( apply_filters( 'bp_get_send_public_message_button', $button ) );
    925964        }
    926965
  • branches/1.2/bp-blogs/bp-blogs-templatetags.php

    r3245 r3260  
    505505}
    506506
     507/**
     508 * bp_blogs_visit_blog_button()
     509 *
     510 * Output button for visiting a blog in a loop
     511 *
     512 * @param array $args Custom button properties
     513 */
     514function bp_blogs_visit_blog_button( $args = '' ) {
     515        echo bp_get_blogs_visit_blog_button( $args );
     516}
     517        /**
     518         * bp_get_blogs_visit_blog_button()
     519         *
     520         * Return button for visiting a blog in a loop
     521         *
     522         * @param array $args Custom button properties
     523         * @return string
     524         */
     525        function bp_get_blogs_visit_blog_button( $args = '' ) {
     526                $defaults = array(
     527                        'id'                => 'visit_blog',
     528                        'component'         => 'blogs',
     529                        'must_be_logged_in' => false,
     530                        'block_self'        => false,
     531                        'wrapper_class'     => 'blog-button visit',
     532                        'link_href'         => bp_get_blog_permalink(),
     533                        'link_class'        => 'visit',
     534                        'link_text'         => __( 'Visit Blog', 'buddypress' ),
     535                        'link_title'        => __( 'Visit Blog', 'buddypress' ),
     536                );
     537
     538                $button = wp_parse_args( $args, $defaults );
     539
     540                // Filter and return the HTML button
     541                return bp_get_button( apply_filters( 'bp_get_blogs_visit_blog_button', $button ) );
     542        }
     543
    507544?>
  • branches/1.2/bp-core/bp-core-classes.php

    r3224 r3260  
    496496}
    497497
     498/**
     499 * BP_Button
     500 *
     501 * API to create BuddyPress buttons
     502 *
     503 * @package BuddyPress Core
     504 * @since 1.2.6
     505 */
     506class BP_Button {
     507
     508        // Button properties
     509        var $id;
     510        var $component;
     511        var $must_be_logged_in;
     512        var $block_self;
     513
     514        // Wrapper div
     515        var $wrapper_class;
     516        var $wrapper_id;
     517
     518        // Button
     519        var $link_href;
     520        var $link_class;
     521        var $link_id;
     522        var $link_rel;
     523        var $link_title;
     524        var $link_text;
     525
     526        // HTML result
     527        var $contents;
     528
     529        /**
     530         * bp_button()
     531         *
     532         * Builds the button based on passed parameters:
     533         *
     534         * component: Which component this button is for
     535         * must_be_logged_in: Button only appears for logged in users
     536         * block_self: Button will not appear when viewing your own profile.
     537         * wrapper_id: The DOM ID of the button wrapper
     538         * wrapper_class: The DOM class of the button wrapper
     539         * link_href: The destination link of the button
     540         * link_title: Title of the button
     541         * link_id: The DOM ID of the button
     542         * link_class: The DOM class of the button
     543         * link_rel: The DOM rel of the button
     544         * link_text: The contents of the button
     545         *
     546         * @param array $args
     547         * @return bool False if not allowed
     548         */
     549        function bp_button( $args = '' ) {
     550
     551                $defaults = array(
     552                        'id'                => '',
     553                        'component'         => 'core',
     554                        'must_be_logged_in' => true,
     555                        'block_self'        => true,
     556
     557                        'wrapper_id'        => '',
     558                        'wrapper_class'     => '',
     559
     560                        'link_href'         => '',
     561                        'link_title'        => '',
     562                        'link_id'           => '',
     563                        'link_class'        => '',
     564                        'link_rel'          => '',
     565                        'link_text'         => '',
     566                );
     567
     568                $r = wp_parse_args( $args, $defaults );
     569                extract( $r, EXTR_SKIP );
     570
     571                // Required button properties
     572                $this->id                = $id;
     573                $this->component         = $component;
     574                $this->must_be_logged_in = (bool)$must_be_logged_in;
     575                $this->block_self        = (bool)$block_self;
     576
     577                // $id and $component are required
     578                if ( empty( $id ) || empty( $component ) )
     579                        return false;
     580
     581                // No button if component is not active
     582                if ( !bp_is_active( $this->component ) )
     583                        return false;
     584
     585                // No button for guests if must be logged in
     586                if ( true == $this->must_be_logged_in && !is_user_logged_in )
     587                        return false;
     588
     589                // No button if viewing your own profile
     590                if ( true == $this->block_self && bp_is_my_profile() )
     591                        return false;
     592
     593                // Wrapper properties
     594                if ( !empty( $wrapper_id ) )
     595                        $this->wrapper_id    = ' id="' . $wrapper_id . '"';
     596
     597                if ( !empty( $wrapper_class ) )
     598                        $this->wrapper_class = ' class="generic-button ' . $wrapper_class . '"';
     599                else
     600                        $this->wrapper_class = ' class="generic-button"';
     601
     602                // Link properties
     603                if ( !empty( $link_id ) )
     604                        $this->link_id       = ' id="' . $link_id . '"';
     605
     606                if ( !empty( $link_href ) )
     607                        $this->link_href     = ' href="' . $link_href . '"';
     608
     609                if ( !empty( $link_title ) )
     610                        $this->link_title    = ' title="' . $link_title . '"';
     611
     612                if ( !empty( $link_rel ) )
     613                        $this->link_rel      = ' rel="' . $link_rel . '"';
     614
     615                if ( !empty( $link_class ) )
     616                        $this->link_class    = ' class="' . $link_class . '"';
     617
     618                if ( !empty( $link_text ) )
     619                        $this->link_text     = $link_text;
     620
     621                // Build the button
     622                $this->contents  = '<div' . $this->wrapper_class . $this->wrapper_id . '>';
     623                $this->contents .= '<a'. $this->link_href . $this->link_title . $this->link_id . $this->link_rel . $this->link_class . '>' . $this->link_text . '</a>';
     624                $this->contents .= '</div>';
     625
     626                // Allow button to be manipulated externally
     627                $this->contents = apply_filters( 'bp_button_' . $component . '_' . $id, $this->contents, $this );
     628        }
     629
     630        /**
     631         * contents()
     632         *
     633         * Return contents of button
     634         *
     635         * @return string
     636         */
     637        function contents() {
     638                return $this->contents;
     639        }
     640
     641        /**
     642         * display()
     643         *
     644         * Output contents of button
     645         */
     646        function display() {
     647                if ( !empty( $this->contents ) )
     648                        echo $this->contents;
     649        }
     650}
    498651
    499652?>
  • branches/1.2/bp-core/bp-core-templatetags.php

    r3245 r3260  
    416416
    417417                return apply_filters( 'bp_member_last_active', $registered );
    418         }
    419 
    420 function bp_member_add_friend_button() {
    421         global $members_template;
    422 
    423         if ( function_exists( 'bp_add_friend_button' ) ) {
    424                 if ( null === $members_template->member->is_friend )
    425                         $friend_status = 'not_friends';
    426                 else
    427                         $friend_status = ( 0 == $members_template->member->is_friend ) ? 'pending' : 'is_friend';
    428 
    429                 echo bp_add_friend_button( $members_template->member->id, $friend_status );
    430         }
    431 }
    432 
    433 function bp_member_total_friend_count() {
    434         global $members_template;
    435 
    436         echo bp_get_member_total_friend_count();
    437 }
    438         function bp_get_member_total_friend_count() {
    439                 global $members_template;
    440 
    441                 if ( 1 == (int) $members_template->member->total_friend_count )
    442                         return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friend', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
    443                 else
    444                         return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friends', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
    445418        }
    446419
     
    11001073
    11011074/**
     1075 * bp_button( $button )
     1076 *
     1077 * Creates and outputs a button.
     1078 * Args: div_id | div_class | a_href | a_title | a_id | a_class | a_rel | a_text
     1079 *
     1080 * @param array $button
     1081 */
     1082function bp_button( $button = '' ) {
     1083        echo bp_get_button( $button );
     1084}
     1085        /**
     1086         * bp_get_button( $button )
     1087         *
     1088         * Creates and returns a button.
     1089         * Args: div_id | div_class | a_href | a_title | a_id | a_class | a_rel | a_text
     1090         *
     1091         * @param array $button
     1092         * @return string
     1093         */
     1094        function bp_get_button( $button = '' ) {
     1095                $btn = new BP_Button( $button );
     1096                return apply_filters( 'bp_get_button', $btn->contents, $button );
     1097        }
     1098
     1099/**
    11021100 * bp_create_excerpt()
    11031101 *
  • branches/1.2/bp-core/bp-core-widgets.php

    r3143 r3260  
    2222                global $bp;
    2323
    24             extract( $args );
     24                extract( $args );
    2525
    2626                echo $before_widget;
     
    3232                        <div class="item-options" id="members-list-options">
    3333                                <span class="ajax-loader" id="ajax-loader-members"></span>
    34                                 <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="newest-members" class="selected"><?php _e( 'Newest', 'buddypress' ) ?></a> |
    35                                 <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="recently-active-members"><?php _e( 'Active', 'buddypress' ) ?></a> |
    36                                 <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="popular-members"><?php _e( 'Popular', 'buddypress' ) ?></a>
     34                                <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="newest-members" class="selected"><?php _e( 'Newest', 'buddypress' ) ?></a>
     35                                |  <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="recently-active-members"><?php _e( 'Active', 'buddypress' ) ?></a>
     36
     37                                <?php if ( bp_is_active( 'friends' ) ) : ?>
     38
     39                                        | <a href="<?php echo site_url() . '/' . BP_MEMBERS_SLUG ?>" id="popular-members"><?php _e( 'Popular', 'buddypress' ) ?></a>
     40
     41                                <?php endif; ?>
     42
    3743                        </div>
    3844
     
    148154                global $bp;
    149155
    150             extract( $args );
     156                extract( $args );
    151157
    152158                echo $before_widget;
     
    202208                case 'newest-members':
    203209                        $type = 'newest';
    204                 break;
     210                        break;
     211
    205212                case 'recently-active-members':
    206213                        $type = 'active';
    207                 break;
     214                        break;
     215
    208216                case 'popular-members':
    209                         $type = 'popular';
    210                 break;
     217                        if ( bp_is_active( 'friends' ) )
     218                                $type = 'popular';
     219                        else
     220                                $type = 'active';
     221
     222                        break;
    211223        }
    212224
     
    224236                                                <?php if ( 'active' == $type || 'newest' == $type ) : ?>
    225237                                                        <div class="item-meta"><span class="activity"><?php bp_member_last_active() ?></span></div>
    226                                                 <?php else : ?>
     238                                                <?php elseif ( bp_is_active( 'friends' ) ) : ?>
    227239                                                        <div class="item-meta"><span class="activity"><?php bp_member_total_friend_count() ?></span></div>
    228240                                                <?php endif; ?>
  • branches/1.2/bp-friends/bp-friends-templatetags.php

    r3162 r3260  
    105105                <form action="<?php echo $action ?>" id="friend-search-form" method="post">
    106106
    107                 <label for="friend-search-box" id="friend-search-label"><?php echo $label ?></label>
    108                 <input type="search" name="friend-search-box" id="friend-search-box" value="<?php echo $value ?>"<?php echo $disabled ?> />
    109 
    110                 <?php wp_nonce_field( 'friends_search', '_wpnonce_friend_search' ) ?>
    111                 <input type="hidden" name="initiator" id="initiator" value="<?php echo esc_attr( $bp->displayed_user->id ) ?>" />
     107                        <label for="friend-search-box" id="friend-search-label"><?php echo $label ?></label>
     108                        <input type="search" name="friend-search-box" id="friend-search-box" value="<?php echo $value ?>"<?php echo $disabled ?> />
     109
     110                        <?php wp_nonce_field( 'friends_search', '_wpnonce_friend_search' ) ?>
     111                        <input type="hidden" name="initiator" id="initiator" value="<?php echo esc_attr( $bp->displayed_user->id ) ?>" />
    112112
    113113                </form>
     
    115115}
    116116
    117 function bp_add_friend_button( $potential_friend_id = false, $friend_status = false ) {
     117function bp_member_add_friend_button() {
     118        global $members_template;
     119
     120        if ( null === $members_template->member->is_friend )
     121                $friend_status = 'not_friends';
     122        else
     123                $friend_status = ( 0 == $members_template->member->is_friend ) ? 'pending' : 'is_friend';
     124
     125        echo bp_get_add_friend_button( $members_template->member->id, $friend_status );
     126}
     127add_action( 'bp_directory_members_actions', 'bp_member_add_friend_button' );
     128
     129function bp_member_total_friend_count() {
     130        global $members_template;
     131
     132        echo bp_get_member_total_friend_count();
     133}
     134        function bp_get_member_total_friend_count() {
     135                global $members_template;
     136
     137                if ( 1 == (int) $members_template->member->total_friend_count )
     138                        return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friend', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     139                else
     140                        return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friends', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     141        }
     142
     143/**
     144 * bp_potential_friend_id( $user_id )
     145 *
     146 * Outputs the ID of the potential friend
     147 *
     148 * @uses bp_get_potential_friend_id()
     149 * @param <type> $user_id
     150 */
     151function bp_potential_friend_id( $user_id = 0 ) {
     152        echo bp_get_potential_friend_id( $user_id );
     153}
     154        /**
     155         * bp_get_potential_friend_id( $user_id )
     156         *
     157         * Returns the ID of the potential friend
     158         *
     159         * @global object $bp
     160         * @global object $friends_template
     161         * @param int $user_id
     162         * @return int ID of potential friend
     163         */
     164        function bp_get_potential_friend_id( $user_id = 0 ) {
     165                global $bp, $friends_template;
     166
     167                if ( empty( $user_id ) && isset( $friends_template->friendship->friend ) )
     168                        $user_id = $friends_template->friendship->friend->id;
     169                else if ( empty( $user_id ) && !isset( $friends_template->friendship->friend ) )
     170                        $user_id = $bp->displayed_user->id;
     171
     172                return apply_filters( 'bp_get_potential_friend_id', (int)$user_id );
     173        }
     174
     175/**
     176 * bp_is_friend( $user_id )
     177 *
     178 * Returns - 'is_friend', 'not_friends', 'pending'
     179 *
     180 * @global object $bp
     181 * @param int $potential_friend_id
     182 * @return string
     183 */
     184function bp_is_friend( $user_id = 0 ) {
     185        global $bp;
     186
     187        if ( !is_user_logged_in() )
     188                return false;
     189
     190        if ( empty( $user_id ) )
     191                $user_id = bp_get_potential_friend_id( $user_id );
     192
     193        if ( $bp->loggedin_user->id == $user_id )
     194                return false;
     195
     196        return apply_filters( 'bp_is_friend', friends_check_friendship_status( $bp->loggedin_user->id, $user_id ), $user_id );
     197}
     198
     199function bp_add_friend_button( $potential_friend_id = 0, $friend_status = false ) {
    118200        echo bp_get_add_friend_button( $potential_friend_id, $friend_status );
    119201}
    120         function bp_get_add_friend_button( $potential_friend_id = false, $friend_status = false ) {
     202        function bp_get_add_friend_button( $potential_friend_id = 0, $friend_status = false ) {
    121203                global $bp, $friends_template;
    122204
    123                 if ( !is_user_logged_in() )
     205                if ( empty( $potential_friend_id ) )
     206                        $potential_friend_id = bp_get_potential_friend_id( $potential_friend_id );
     207
     208                $is_friend = bp_is_friend( $potential_friend_id );
     209
     210                if ( empty( $is_friend ) )
    124211                        return false;
    125212
    126                 if ( !$potential_friend_id && $friends_template->friendship->friend )
    127                         $potential_friend_id = $friends_template->friendship->friend->id;
    128                 else if ( !$potential_friend_id && !$friends_template->friendship->friend )
    129                         $potential_friend_id = $bp->displayed_user->id;
    130 
    131                 if ( $bp->loggedin_user->id == $potential_friend_id )
    132                         return false;
    133 
    134                 if ( empty( $friend_status ) )
    135                         $friend_status = friends_check_friendship_status( $bp->loggedin_user->id, $potential_friend_id );
    136 
    137                 $button = '<div class="generic-button friendship-button ' . $friend_status . '" id="friendship-button-' . $potential_friend_id . '">';
    138 
    139                 if ( 'pending' == $friend_status )
    140                         $button .= '<a class="requested" href="' . $bp->loggedin_user->domain . $bp->friends->slug . '/">' . __( 'Friendship Requested', 'buddypress' ) . '</a>';
    141                 else if ( 'is_friend' == $friend_status )
    142                         $button .= '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ) . '" title="' . __('Cancel Friendship', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="remove" class="remove">' . __('Cancel Friendship', 'buddypress') . '</a>';
    143                 else
    144                         $button .= '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ) . '" title="' . __('Add Friend', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="add" class="add">' . __('Add Friend', 'buddypress') . '</a>';
    145 
    146                 $button .= '</div>';
    147 
    148                 return apply_filters( 'bp_get_add_friend_button', $button, $potential_friend_id, $friend_status );
     213                switch ( $is_friend ) {
     214                        case 'pending' :
     215                                $button = array(
     216                                        'id'                => 'pending',
     217                                        'component'         => 'friends',
     218                                        'must_be_logged_in' => true,
     219                                        'block_self'        => true,
     220                                        'wrapper_class'     => 'friendship-button pending',
     221                                        'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     222                                        'link_class'        => 'requested',
     223                                        'link_href'         => trailingslashit( $bp->loggedin_user->domain . $bp->friends->slug ),
     224                                        'link_text'         => __( 'Friendship Requested', 'buddypress' ),
     225                                        'link_title'        => __( 'Friendship Requested', 'buddypress' )
     226                                );
     227                                break;
     228
     229                        case 'is_friend' :
     230                                $button = array(
     231                                        'id'                => 'is_friend',
     232                                        'component'         => 'friends',
     233                                        'must_be_logged_in' => true,
     234                                        'block_self'        => true,
     235                                        'wrapper_class'     => 'friendship-button is_friend',
     236                                        'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     237                                        'link_class'        => '',
     238                                        'link_href'         => wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ),
     239                                        'link_text'         => __( 'Cancel Friendship', 'buddypress' ),
     240                                        'link_title'        => __( 'Cancel Friendship', 'buddypress' ),
     241                                        'link_id'           => 'friend-' . $potential_friend_id,
     242                                        'link_rel'          => 'remove',
     243                                        'link_class'        => 'remove'
     244                                );
     245                                break;
     246
     247                        default:
     248                                $button = array(
     249                                        'id'                => 'not_friends',
     250                                        'component'         => 'friends',
     251                                        'must_be_logged_in' => true,
     252                                        'block_self'        => true,
     253                                        'wrapper_class'     => 'friendship-button not_friends',
     254                                        'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     255                                        'link_class'        => '',
     256                                        'link_href'         => wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ),
     257                                        'link_text'         => __( 'Add Friend', 'buddypress' ),
     258                                        'link_title'        => __( 'Add Friend', 'buddypress' ),
     259                                        'link_id'           => 'friend-' . $potential_friend_id,
     260                                        'link_rel'          => 'add',
     261                                        'link_class'        => 'add'
     262                                );
     263                                break;
     264                }
     265
     266                // Filter and return the HTML button
     267                return bp_get_button( apply_filters( 'bp_get_add_friend_button', $button ) );
    149268        }
    150269
     
    210329        }
    211330
    212 function bp_total_friend_count( $user_id = false ) {
     331function bp_total_friend_count( $user_id = 0 ) {
    213332        echo bp_get_total_friend_count( $user_id );
    214333}
    215         function bp_get_total_friend_count( $user_id = false ) {
     334        function bp_get_total_friend_count( $user_id = 0 ) {
    216335                return apply_filters( 'bp_get_total_friend_count', friends_get_total_friend_count( $user_id ) );
    217336        }
    218337        add_filter( 'bp_get_total_friend_count', 'bp_core_number_format' );
    219338
    220 function bp_friend_total_requests_count( $user_id = false ) {
     339function bp_friend_total_requests_count( $user_id = 0 ) {
    221340        echo bp_friend_get_total_requests_count( $user_id );
    222341}
    223         function bp_friend_get_total_requests_count( $user_id = false ) {
     342        function bp_friend_get_total_requests_count( $user_id = 0 ) {
    224343                global $bp;
    225344
    226                 if ( !$user_id )
     345                if ( empty( $user_id ) )
    227346                        $user_id = $bp->loggedin_user->id;
    228347
  • branches/1.2/bp-groups/bp-groups-templatetags.php

    r3245 r3260  
    10961096}
    10971097
     1098function bp_group_new_topic_button() {
     1099        if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() ) {
     1100                bp_button( array (
     1101                        'id'                => 'new_topic',
     1102                        'component'         => 'groups',
     1103                        'must_be_logged_in' => true,
     1104                        'block_self'        => true,
     1105                        'wrapper_class'     => 'group-button',
     1106                        'link_href'         => '#post-new',
     1107                        'link_class'        => '',
     1108                        'link_text'         => __( 'New Topic', 'buddypress' ),
     1109                        'link_title'        => __( 'New Topic', 'buddypress' ),
     1110                ) );
     1111        }
     1112}
     1113
    10981114function bp_group_join_button( $group = false ) {
    1099         global $bp, $groups_template;
    1100 
    1101         if ( !$group )
    1102                 $group =& $groups_template->group;
    1103 
    1104         // If they're not logged in or are banned from the group, no join button.
    1105         if ( !is_user_logged_in() || $group->is_banned )
    1106                 return false;
    1107 
    1108         if ( !$group->status )
    1109                 return false;
    1110 
    1111         if ( 'hidden' == $group->status && !$group->is_member )
    1112                 return false;
    1113 
    1114         echo '<div class="generic-button group-button ' . $group->status . '" id="groupbutton-' . $group->id . '">';
    1115 
    1116         switch ( $group->status ) {
    1117                 case 'public':
    1118                         if ( $group->is_member )
    1119                                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1120                         else
    1121                                 echo '<a class="join-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
    1122                 break;
    1123 
    1124                 case 'private':
    1125                         if ( $group->is_member ) {
    1126                                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1127                         } else {
    1128                                 if ( !bp_group_has_requested_membership( $group ) )
    1129                                         echo '<a class="request-membership" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __('Request Membership', 'buddypress') . '</a>';
    1130                                 else
    1131                                         echo '<a class="membership-requested" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>';
     1115        echo bp_get_group_join_button();
     1116}
     1117        function bp_get_group_join_button( $group = false ) {
     1118                global $bp, $groups_template;
     1119
     1120                if ( !$group )
     1121                        $group =& $groups_template->group;
     1122
     1123                // If they're not logged in or are banned from the group, no join button.
     1124                if ( !is_user_logged_in() || $group->is_banned )
     1125                        return false;
     1126
     1127                if ( !$group->status )
     1128                        return false;
     1129
     1130                if ( 'hidden' == $group->status && !$group->is_member )
     1131                        return false;
     1132
     1133                // Already a member
     1134                if ( $group->is_member ) {
     1135                        $button = array(
     1136                                'id'                => 'leave_group',
     1137                                'component'         => 'groups',
     1138                                'must_be_logged_in' => true,
     1139                                'block_self'        => false,
     1140                                'wrapper_class'     => 'group-button ' . $group->status,
     1141                                'wrapper_id'        => 'groupbutton-' . $group->id,
     1142                                'link_class'        => 'leave-group',
     1143                                'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ),
     1144                                'link_text'         => __( 'Leave Group', 'buddypress' ),
     1145                                'link_title'        => __( 'Leave Group', 'buddypress' )
     1146                        );
     1147
     1148                // Not a member
     1149                } else {
     1150
     1151                        // Show different buttons based on group status
     1152                        switch ( $group->status ) {
     1153                                case 'public':
     1154                                        $button = array(
     1155                                                'id'                => 'join_group',
     1156                                                'component'         => 'groups',
     1157                                                'must_be_logged_in' => true,
     1158                                                'block_self'        => false,
     1159                                                'wrapper_class'     => 'group-button ' . $group->status,
     1160                                                'wrapper_id'        => 'groupbutton-' . $group->id,
     1161                                                'link_class'        => 'join-group',
     1162                                                'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ),
     1163                                                'link_text'         => __( 'Join Group', 'buddypress' ),
     1164                                                'link_title'        => __( 'Join Group', 'buddypress' )
     1165                                        );
     1166                                        break;
     1167
     1168                                case 'private' :
     1169
     1170                                        // Member has not requested membership yet
     1171                                        if ( !bp_group_has_requested_membership( $group ) ) {
     1172                                                $button = array(
     1173                                                        'id'                => 'request_membership',
     1174                                                        'component'         => 'groups',
     1175                                                        'must_be_logged_in' => true,
     1176                                                        'block_self'        => false,
     1177                                                        'wrapper_class'     => 'group-button ' . $group->status,
     1178                                                        'wrapper_id'        => 'groupbutton-' . $group->id,
     1179                                                        'link_class'        => 'request-membership',
     1180                                                        'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ),
     1181                                                        'link_text'         => __( 'Request Membership', 'buddypress' ),
     1182                                                        'link_title'        => __( 'Request Membership', 'buddypress' ),
     1183                                                );
     1184
     1185                                        // Member has requested membership already
     1186                                        } else {
     1187                                                $button = array(
     1188                                                        'id'                => 'membership_requested',
     1189                                                        'component'         => 'groups',
     1190                                                        'must_be_logged_in' => true,
     1191                                                        'block_self'        => false,
     1192                                                        'wrapper_class'     => 'group-button pending ' . $group->status,
     1193                                                        'wrapper_id'        => 'groupbutton-' . $group->id,
     1194                                                        'link_class'        => 'membership-requested',
     1195                                                        'link_href'         => bp_get_group_permalink( $group ),
     1196                                                        'link_text'         => __( 'Request Sent', 'buddypress' ),
     1197                                                        'link_title'        => __( 'Request Sent', 'buddypress' ),
     1198                                                );
     1199                                        }
     1200
     1201                                        break;
    11321202                        }
    1133                 break;
    1134 
    1135                 case 'hidden':
    1136                         if ( $group->is_member )
    1137                                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1138                 break;
    1139         }
    1140 
    1141         echo '</div>';
    1142 }
     1203                }
     1204
     1205                // Filter and return the HTML button
     1206                return bp_get_button( apply_filters( 'bp_get_group_join_button', $button ) );
     1207        }
    11431208
    11441209function bp_group_status_message( $group = false ) {
     
    19862051
    19872052function bp_group_request_reject_link() {
    1988         global $requests_template, $groups_template;
    1989 
    1990         echo apply_filters( 'bp_group_request_reject_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/reject/' . $requests_template->request->id, 'groups_reject_membership_request' ) );
    1991 }
     2053        echo bp_get_group_request_reject_link();
     2054}
     2055        function bp_get_group_request_reject_link() {
     2056                global $requests_template, $groups_template;
     2057
     2058                return apply_filters( 'bp_get_group_request_reject_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/reject/' . $requests_template->request->id, 'groups_reject_membership_request' ) );
     2059        }
    19922060
    19932061function bp_group_request_accept_link() {
    1994         global $requests_template, $groups_template;
    1995 
    1996         echo apply_filters( 'bp_group_request_accept_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/accept/' . $requests_template->request->id, 'groups_accept_membership_request' ) );
    1997 }
     2062        echo bp_get_group_request_accept_link();
     2063}
     2064        function bp_get_group_request_accept_link() {
     2065                global $requests_template, $groups_template;
     2066
     2067                return apply_filters( 'bp_get_group_request_accept_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/accept/' . $requests_template->request->id, 'groups_accept_membership_request' ) );
     2068        }
     2069
     2070function bp_group_request_user_link() {
     2071        echo bp_get_group_request_user_link();
     2072}
     2073        function bp_get_group_request_user_link() {
     2074                global $requests_template;
     2075
     2076                return apply_filters( 'bp_get_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
     2077        }
    19982078
    19992079function bp_group_request_time_since_requested() {
     
    20082088        echo apply_filters( 'bp_group_request_comment', strip_tags( stripslashes( $requests_template->request->comments ) ) );
    20092089}
    2010 
    2011 function bp_group_request_user_link() {
    2012         global $requests_template;
    2013 
    2014         echo apply_filters( 'bp_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
    2015 }
    2016 
    20172090
    20182091/************************************************************************************
  • branches/1.2/bp-messages/bp-messages-templatetags.php

    r3246 r3260  
    502502                global $bp;
    503503
    504                 return apply_filters( 'bp_get_send_private_message_link', $bp->loggedin_user->domain . $bp->messages->slug . '/compose/?r=' . bp_core_get_username( $bp->displayed_user->user_id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) );
    505         }
     504                if ( bp_is_my_profile() || !is_user_logged_in() )
     505                        return false;
     506
     507                return apply_filters( 'bp_get_send_private_message_link', wp_nonce_url( $bp->loggedin_user->domain . $bp->messages->slug . '/compose/?r=' . bp_core_get_username( $bp->displayed_user->user_id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) ) );
     508        }
     509
     510/**
     511 * bp_send_private_message_button()
     512 *
     513 * Explicitly named function to avoid confusion with public messages.
     514 *
     515 * @uses bp_get_send_message_button()
     516 * @since 1.2.6
     517 */
     518function bp_send_private_message_button() {
     519        echo bp_get_send_message_button();
     520}
    506521
    507522function bp_send_message_button() {
     
    509524}
    510525        function bp_get_send_message_button() {
    511                 global $bp;
    512 
    513                 if ( bp_is_my_profile() || !is_user_logged_in() )
    514                         return false;
    515 
    516                 return apply_filters( 'bp_get_send_message_button', '<div class="generic-button"><a class="send-message" title="' . __( 'Send Message', 'buddypress' ) . '" href="' . $bp->loggedin_user->domain . $bp->messages->slug . '/compose/?r=' . bp_core_get_username( $bp->displayed_user->user_id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) . '">' . __( 'Send Message', 'buddypress' ) . '</a></div>' );
     526                return apply_filters( 'bp_get_send_message_button',
     527                        bp_get_button( array(
     528                                'id'                => 'private_message',
     529                                'component'         => 'messages',
     530                                'must_be_logged_in' => true,
     531                                'block_self'        => true,
     532                                'wrapper_id'        => 'send-private-message',
     533                                'link_href'         => bp_get_send_private_message_link(),
     534                                'link_class'        => 'send-message',
     535                                'link_title'        => __( 'Send a private message to this user.', 'buddypress' ),
     536                                'link_text'         => __( 'Send Private Message', 'buddypress' )
     537                        ) )
     538                );
    517539        }
    518540
  • branches/1.2/bp-themes/bp-default/blogs/blogs-loop.php

    r3222 r3260  
    3535
    3636                        <div class="action">
    37                                 <div class="generic-button blog-button visit">
    38                                         <a href="<?php bp_blog_permalink() ?>" class="visit" title="<?php _e( 'Visit Blog', 'buddypress' ) ?>"><?php _e( 'Visit Blog', 'buddypress' ) ?></a>
    39                                 </div>
     37
     38                                <?php do_action( 'bp_directory_blogs_actions' ) ?>
    4039
    4140                                <div class="meta">
     
    4342                                </div>
    4443
    45                                 <?php do_action( 'bp_directory_blogs_actions' ) ?>
    4644                        </div>
    4745
  • branches/1.2/bp-themes/bp-default/functions.php

    r3227 r3260  
    334334if ( is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" )
    335335        add_action( 'admin_notices', 'bp_dtheme_show_notice' );
     336
     337
     338// Member Buttons
     339add_action( 'bp_member_header_actions',    'bp_add_friend_button' );
     340add_action( 'bp_member_header_actions',    'bp_send_public_message_button' );
     341add_action( 'bp_member_header_actions',    'bp_send_private_message_button' );
     342
     343// Group Buttons
     344add_action( 'bp_group_header_actions',     'bp_group_join_button' );
     345add_action( 'bp_group_header_actions',     'bp_group_new_topic_button' );
     346add_action( 'bp_directory_groups_actions', 'bp_group_join_button' );
     347
     348// Blog Buttons
     349add_action( 'bp_directory_blogs_actions',  'bp_blogs_visit_blog_button' );
     350
    336351?>
  • branches/1.2/bp-themes/bp-default/groups/groups-loop.php

    r3222 r3260  
    3434
    3535                                <?php do_action( 'bp_directory_groups_item' ) ?>
     36
    3637                        </div>
    3738
    3839                        <div class="action">
    39                                 <?php bp_group_join_button() ?>
     40
     41                                <?php do_action( 'bp_directory_groups_actions' ) ?>
    4042
    4143                                <div class="meta">
     44
    4245                                        <?php bp_group_type() ?> / <?php bp_group_member_count() ?>
     46
    4347                                </div>
    4448
    45                                 <?php do_action( 'bp_directory_groups_actions' ) ?>
    4649                        </div>
    4750
  • branches/1.2/bp-themes/bp-default/groups/single/admin.php

    r3203 r3260  
    117117
    118118                        <?php if ( bp_get_group_has_avatar() ) : ?>
     119
    119120                                <p><?php _e( "If you'd like to remove the existing avatar but not upload a new one, please use the delete avatar button.", 'buddypress' ) ?></p>
    120121
    121                                 <div class="generic-button" id="delete-group-avatar-button">
    122                                         <a class="edit" href="<?php bp_group_avatar_delete_link() ?>" title="<?php _e( 'Delete Avatar', 'buddypress' ) ?>"><?php _e( 'Delete Avatar', 'buddypress' ) ?></a>
    123                                 </div>
     122                                <?php bp_button( array( 'id' => 'delete_group_avatar', 'component' => 'groups', 'wrapper_id' => 'delete-group-avatar-button', 'link_class' => 'edit', 'link_href' => bp_get_group_avatar_delete_link(), 'link_title' => __( 'Delete Avatar', 'buddypress' ), 'link_text' => __( 'Delete Avatar', 'buddypress' ) ) ); ?>
     123
    124124                        <?php endif; ?>
    125125
     
    261261                                        <div class="action">
    262262
    263                                                 <div class="generic-button accept">
    264                                                         <a href="<?php bp_group_request_accept_link() ?>"><?php _e( 'Accept', 'buddypress' ); ?></a>
    265                                                 </div>
    266 
    267                                          &nbsp;
    268 
    269                                                 <div class="generic-button reject">
    270                                                         <a href="<?php bp_group_request_reject_link() ?>"><?php _e( 'Reject', 'buddypress' ); ?></a>
    271                                                 </div>
     263                                                <?php bp_button( array( 'id' => 'group_membership_accept', 'component' => 'groups', 'wrapper_class' => 'accept', 'link_href' => bp_get_group_request_accept_link(), 'link_title' => __( 'Accept', 'buddypress' ), 'link_text' => __( 'Accept', 'buddypress' ) ) ); ?>
     264
     265                                                <?php bp_button( array( 'id' => 'group_membership_reject', 'component' => 'groups', 'wrapper_class' => 'reject', 'link_href' => bp_get_group_request_reject_link(), 'link_title' => __( 'Reject', 'buddypress' ), 'link_text' => __( 'Reject', 'buddypress' ) ) ); ?>
    272266
    273267                                                <?php do_action( 'bp_group_membership_requests_admin_item_action' ); ?>
  • branches/1.2/bp-themes/bp-default/groups/single/group-header.php

    r3109 r3260  
    3636                <?php bp_group_description() ?>
    3737
    38                 <?php if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() ) : ?>
    39                         <div class="generic-button group-button">
    40                                 <a href="#post-new" class=""><?php _e( 'New Topic', 'buddypress' ) ?></a>
    41                         </div>
    42                 <?php endif; ?>
     38                <div id="item-buttons">
    4339
    44                 <?php bp_group_join_button() ?>
     40                        <?php do_action( 'bp_group_header_actions' ); ?>
     41
     42                </div><!-- #item-buttons -->
    4543
    4644                <?php do_action( 'bp_group_header_meta' ) ?>
  • branches/1.2/bp-themes/bp-default/members/members-loop.php

    r3222 r3260  
    3030                                <div class="item-title">
    3131                                        <a href="<?php bp_member_permalink() ?>"><?php bp_member_name() ?></a>
     32
    3233                                        <?php if ( bp_get_member_latest_update() ) : ?>
     34
    3335                                                <span class="update"> - <?php bp_member_latest_update( 'length=10' ) ?></span>
     36
    3437                                        <?php endif; ?>
     38
    3539                                </div>
     40
    3641                                <div class="item-meta"><span class="activity"><?php bp_member_last_active() ?></span></div>
    3742
     
    4247                                  * If you want to show specific profile fields here you can,
    4348                                  * but it'll add an extra query for each member in the loop
    44                                   * (only one regadless of the number of fields you show):
     49                                  * (only one regardless of the number of fields you show):
    4550                                  *
    4651                                  * bp_member_profile_data( 'field=the field name' );
     
    5055
    5156                        <div class="action">
    52                                 <?php bp_member_add_friend_button() ?>
    5357
    54                                 <?php do_action( 'bp_directory_members_actions' ) ?>
     58                                <?php do_action( 'bp_directory_members_actions' ); ?>
     59
    5560                        </div>
    5661
  • branches/1.2/bp-themes/bp-default/members/single/member-header.php

    r3006 r3260  
    2222
    2323                <div id="item-buttons">
    24                         <?php if ( function_exists( 'bp_add_friend_button' ) ) : ?>
    25                                 <?php bp_add_friend_button() ?>
    26                         <?php endif; ?>
    2724
    28                         <?php if ( is_user_logged_in() && !bp_is_my_profile() && function_exists( 'bp_send_public_message_link' ) ) : ?>
    29                                 <div class="generic-button" id="post-mention">
    30                                         <a href="<?php bp_send_public_message_link() ?>" title="<?php _e( 'Mention this user in a new public message, this will send the user a notification to get their attention.', 'buddypress' ) ?>"><?php _e( 'Mention this User', 'buddypress' ) ?></a>
    31                                 </div>
    32                         <?php endif; ?>
     25                        <?php do_action( 'bp_member_header_actions' ); ?>
    3326
    34                         <?php if ( is_user_logged_in() && !bp_is_my_profile() && function_exists( 'bp_send_private_message_link' ) ) : ?>
    35                                 <div class="generic-button" id="send-private-message">
    36                                         <a href="<?php bp_send_private_message_link() ?>" title="<?php _e( 'Send a private message to this user.', 'buddypress' ) ?>"><?php _e( 'Send Private Message', 'buddypress' ) ?></a>
    37                                 </div>
    38                         <?php endif; ?>
    3927                </div><!-- #item-buttons -->
    4028
  • branches/1.2/bp-xprofile/bp-xprofile-templatetags.php

    r3145 r3260  
    686686        global $bp;
    687687
    688         ?>
    689         <div class="generic-button">
    690                 <a class="edit" title="<?php _e( 'Edit Profile', 'buddypress' ) ?>" href="<?php echo $bp->displayed_user->domain . $bp->profile->slug ?>/edit"><?php _e( 'Edit Profile', 'buddypress' ) ?></a>
    691         </div>
    692         <?php
    693 }
    694 
     688        bp_button( array (
     689                'id'                => 'edit_profile',
     690                'component'         => 'xprofile',
     691                'must_be_logged_in' => true,
     692                'block_self'        => true,
     693                'link_href'         => trailingslashit( $bp->displayed_user->domain . $bp->profile->slug . '/edit' ),
     694                'link_class'        => 'edit',
     695                'link_text'         => __( 'Edit Profile', 'buddypress' ),
     696                'link_title'        => __( 'Edit Profile', 'buddypress' ),
     697        ) );
     698}
    695699
    696700?>
Note: See TracChangeset for help on using the changeset viewer.