#4650 closed enhancement (duplicate)
bp_get_send_message_button filter can't work
Reported by: | rogercoathup | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 1.2.6 |
Component: | Core | Keywords: | |
Cc: |
Description
The call to create a send message button is passing an already created button, making it difficult (impossible?) to filter via 'bp_get_send_message_button' filter.
It should be handled differently the same way as the add friend button, where you can filter the array before the button is created.
i.e.
from bp_get_add_friend_button():
Filter and return the HTML button
return bp_get_button( apply_filters( 'bp_get_add_friend_button', $button ) );
Which allows you to filter.
Whereas, in bp_get_send_message_button():
function bp_get_send_message_button() {
return apply_filters( 'bp_get_send_message_button',
bp_get_button( array(
'id' => 'private_message',
'component' => 'messages',
'must_be_logged_in' => true,
'block_self' => true,
'wrapper_id' => 'send-private-message',
'link_href' => bp_get_send_private_message_link(),
'link_title' => ( 'Send a private message to this user.', 'buddypress' ),
'link_text' => ( 'Private Message', 'buddypress' ),
'link_class' => 'send-message',
) )
);
}
Which doesn't allow you to filter before the button is created.
To fix:
In bp_get_send_message_button(), the code should be changed to:
function bp_get_send_message_button() {
$button = array(
'id' => 'private_message',
'component' => 'messages',
'must_be_logged_in' => true,
'block_self' => true,
'wrapper_id' => 'send-private-message',
'link_href' => bp_get_send_private_message_link(),
'link_title' => ( 'Send a private message to this user.', 'buddypress' ),
'link_text' => ( 'Private Message', 'buddypress' ),
'link_class' => 'send-message',
);
return bp_get_button ( apply_filters ( 'bp_get_send_message_button', $button );
}
Change History (5)
#1
@
12 years ago
- Summary changed from Handle buttons consistently to ease filtering to bp_get_send_message_button filter can't work
#3
@
12 years ago
- Milestone changed from Awaiting Review to Future Release
- Type changed from defect (bug) to enhancement
- Version changed from 1.7 to 1.2.6
Missing a bracket in suggested fix. Correct is:
function bp_get_send_message_button() {
$button = array(
'id' => 'private_message',
'component' => 'messages',
'must_be_logged_in' => true,
'block_self' => true,
'wrapper_id' => 'send-private-message',
'link_href' => bp_get_send_private_message_link(),
'link_title' => ( 'Send a private message to this user.', 'buddypress' ),
'link_text' => ( 'Private Message', 'buddypress' ),
'link_class' => 'send-message',
);
return bp_get_button ( apply_filters ( 'bp_get_send_message_button', $button ) );
}