bp_get_the_message_star_action_link( array $args = array() )
Return the link or raw URL for starring or unstarring a message.
Description
Parameters
- $args
-
(Optional) Array of arguments.
- 'user_id'
(int) The user ID. Defaults to the logged-in user ID. - 'thread_id'
(int) The message thread ID. Default: 0. If not zero, this takes precedence over $message_id. - 'message_id'
(int) The individual message ID. If on a single thread page, defaults to the current message ID in the message loop. - 'url_only'
(bool) Whether to return the URL only. If false, returns link with markup. Default: false. - 'text_unstar'
(string) Link text for the 'unstar' action. Only applicable if $url_only is false. - 'text_star'
(string) Link text for the 'star' action. Only applicable if $url_only is false. - 'title_unstar'
(string) Link title for the 'unstar' action. Only applicable if $url_only is false. - 'title_star'
(string) Link title for the 'star' action. Only applicable if $url_only is false. - 'title_unstar_thread'
(string) Link title for the 'unstar' action when displayed in a thread loop. Only applicable if $message_id is set and if $url_only is false. - 'title_star_thread'
(string) Link title for the 'star' action when displayed in a thread loop. Only applicable if $message_id is set and if $url_only is false.
Default value: array()
- 'user_id'
Return
(string)
Source
File: bp-messages/bp-messages-star.php
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | function bp_get_the_message_star_action_link( $args = array () ) { // Default user ID. $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id(); $r = bp_parse_args( $args , array ( 'user_id' => (int) $user_id , 'thread_id' => 0, 'message_id' => (int) bp_get_the_thread_message_id(), 'url_only' => false, 'text_unstar' => __( 'Unstar' , 'buddyboss' ), 'text_star' => __( 'Star' , 'buddyboss' ), 'title_unstar' => __( 'Starred' , 'buddyboss' ), 'title_star' => __( 'Not starred' , 'buddyboss' ), 'title_unstar_thread' => __( 'Remove all starred messages in this thread' , 'buddyboss' ), 'title_star_thread' => __( 'Star the first message in this thread' , 'buddyboss' ), ), 'messages_star_action_link' ); // Check user ID and determine base user URL. switch ( $r [ 'user_id' ] ) { // Current user. case bp_loggedin_user_id() : $user_domain = bp_loggedin_user_domain(); break ; // Displayed user. case bp_displayed_user_id() : $user_domain = bp_displayed_user_domain(); break ; // Empty or other. default : $user_domain = bp_core_get_user_domain( $r [ 'user_id' ] ); break ; } // Bail if no user domain was calculated. if ( empty ( $user_domain ) ) { return '' ; } // Define local variables. $retval = $bulk_attr = '' ; // Thread ID. if ( (int) $r [ 'thread_id' ] > 0 ) { // See if we're in the loop. if ( bp_get_message_thread_id() == $r [ 'thread_id' ] ) { // Grab all message ids. $mids = wp_list_pluck( $GLOBALS [ 'messages_template' ]->thread->messages, 'id' ); // Make sure order is ASC. // Order is DESC when used in the thread loop by default. $mids = array_reverse ( $mids ); // Pull up the thread. } else { $thread = new BP_Messages_Thread( $r [ 'thread_id' ] ); $mids = wp_list_pluck( $thread ->messages, 'id' ); } $is_starred = false; $message_id = 0; foreach ( $mids as $mid ) { // Try to find the first msg that is starred in a thread. if ( true === bp_messages_is_message_starred( $mid ) ) { $is_starred = true; $message_id = $mid ; break ; } } // No star, so default to first message in thread. if ( empty ( $message_id ) ) { $message_id = $mids [0]; } $message_id = (int) $message_id ; // Nonce. $nonce = wp_create_nonce( "bp-messages-star-{$message_id}" ); if ( true === $is_starred ) { $action = 'unstar' ; $bulk_attr = ' data-star-bulk="1"' ; $retval = $user_domain . bp_get_messages_slug() . '/unstar/' . $message_id . '/' . $nonce . '/all/' ; } else { $action = 'star' ; $retval = $user_domain . bp_get_messages_slug() . '/star/' . $message_id . '/' . $nonce . '/' ; } $title = $r [ "title_{$action}_thread" ]; // Message ID. } else { $message_id = (int) $r [ 'message_id' ]; $is_starred = bp_messages_is_message_starred( $message_id ); $nonce = wp_create_nonce( "bp-messages-star-{$message_id}" ); if ( true === $is_starred ) { $action = 'unstar' ; $retval = $user_domain . bp_get_messages_slug() . '/unstar/' . $message_id . '/' . $nonce . '/' ; } else { $action = 'star' ; $retval = $user_domain . bp_get_messages_slug() . '/star/' . $message_id . '/' . $nonce . '/' ; } $title = $r [ "title_{$action}" ]; } /** * Filters the star action URL for starring / unstarring a message. * * @since BuddyPress 2.3.0 * * @param string $retval URL for starring / unstarring a message. * @param array $r Parsed link arguments. See $args in bp_get_the_message_star_action_link(). */ $retval = esc_url( apply_filters( 'bp_get_the_message_star_action_urlonly' , $retval , $r ) ); if ( true === (bool) $r [ 'url_only' ] ) { return $retval ; } /** * Filters the star action link, including markup. * * @since BuddyPress 2.3.0 * * @param string $retval Link for starring / unstarring a message, including markup. * @param array $r Parsed link arguments. See $args in bp_get_the_message_star_action_link(). */ return apply_filters( 'bp_get_the_message_star_action_link' , '<a data-bp-tooltip-pos="up" data-bp-tooltip="' . esc_attr( $title ) . '" class="bp-tooltip message-action-' . esc_attr( $action ) . '" data-star-status="' . esc_attr( $action ) . '" data-star-nonce="' . esc_attr( $nonce ) . '"' . $bulk_attr . ' data-message-id="' . esc_attr( (int) $message_id ) . '" href="' . $retval . '" role="button" aria-pressed="false"><span class="icon"></span> <span class="bp-screen-reader-text">' . $r [ 'text_' . $action ] . '</span></a>' , $r ); } |
Changelog
Version | Description |
---|---|
BuddyPress 2.3.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.