BBP_Topics_Admin::row_actions( array $actions, array $topic )
Topic Row actions
Description
Remove the quick-edit action link under the topic title and add the content and close/stick/spam links
Parameters
- $actions
-
(Required) Actions
- $topic
-
(Required) Topic object
Return
(array) $actions Actions
Source
File: bp-forums/admin/topics.php
public function row_actions( $actions, $topic ) {
if ( $this->bail() ) return $actions;
unset( $actions['inline hide-if-no-js'] );
//simple hack to show the discussion content
bbp_topic_content( $topic->ID );
// Show view link if it's not set, the topic is trashed and the user can view trashed topics
if ( empty( $actions['view'] ) && ( bbp_get_trash_status_id() === $topic->post_status ) && current_user_can( 'view_trash' ) )
$actions['view'] = '<a href="' . esc_url( bbp_get_topic_permalink( $topic->ID ) ) . '" title="' . esc_attr( sprintf( __( 'View "%s"', 'buddyboss' ), bbp_get_topic_title( $topic->ID ) ) ) . '" rel="permalink">' . esc_html__( 'View', 'buddyboss' ) . '</a>';
// Only show the actions if the user is capable of viewing them :)
if ( current_user_can( 'moderate', $topic->ID ) ) {
// Close
// Show the 'close' and 'open' link on published and closed posts only
if ( in_array( $topic->post_status, array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ) ) {
$close_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_close' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'close-topic_' . $topic->ID );
if ( bbp_is_topic_open( $topic->ID ) )
$actions['closed'] = '<a href="' . esc_url( $close_uri ) . '" title="' . esc_attr__( 'Close this discussion', 'buddyboss' ) . '">' . __( 'Close', 'buddyboss' ) . '</a>';
else
$actions['closed'] = '<a href="' . esc_url( $close_uri ) . '" title="' . esc_attr__( 'Open this discussion', 'buddyboss' ) . '">' . __( 'Open', 'buddyboss' ) . '</a>';
}
// Dont show sticky if topic links is spam or trash
if ( !bbp_is_topic_spam( $topic->ID ) && !bbp_is_topic_trash( $topic->ID ) ) {
// Sticky
$stick_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID );
if ( bbp_is_topic_sticky( $topic->ID ) ) {
$actions['stick'] = '<a href="' . esc_url( $stick_uri ) . '" title="' . esc_attr__( 'Unstick this discussion', 'buddyboss' ) . '">' . esc_html__( 'Unstick', 'buddyboss' ) . '</a>';
} else {
$super_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_stick', 'super' => '1' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'stick-topic_' . $topic->ID );
$actions['stick'] = '<a href="' . esc_url( $stick_uri ) . '" title="' . esc_attr__( 'Stick this discussion to its forum', 'buddyboss' ) . '">' . esc_html__( 'Stick', 'buddyboss' ) . '</a> <a href="' . esc_url( $super_uri ) . '" title="' . esc_attr__( 'Stick this discussion to front', 'buddyboss' ) . '">' . esc_html__( '(to front)', 'buddyboss' ) . '</a>';
}
}
// Spam
$spam_uri = wp_nonce_url( add_query_arg( array( 'topic_id' => $topic->ID, 'action' => 'bbp_toggle_topic_spam' ), remove_query_arg( array( 'bbp_topic_toggle_notice', 'topic_id', 'failed', 'super' ) ) ), 'spam-topic_' . $topic->ID );
if ( bbp_is_topic_spam( $topic->ID ) )
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark the discussion as not spam', 'buddyboss' ) . '">' . esc_html__( 'Not spam', 'buddyboss' ) . '</a>';
else
$actions['spam'] = '<a href="' . esc_url( $spam_uri ) . '" title="' . esc_attr__( 'Mark this discussion as spam', 'buddyboss' ) . '">' . esc_html__( 'Spam', 'buddyboss' ) . '</a>';
}
// Do not show trash links for spam topics, or spam links for trashed topics
if ( current_user_can( 'delete_topic', $topic->ID ) ) {
if ( bbp_get_trash_status_id() === $topic->post_status ) {
$post_type_object = get_post_type_object( bbp_get_topic_post_type() );
$actions['untrash'] = "<a title='" . esc_attr__( 'Restore this item from the Trash', 'buddyboss' ) . "' href='" . esc_url( wp_nonce_url( add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), admin_url( sprintf( $post_type_object->_edit_link . '&action=untrash', $topic->ID ) ) ), 'untrash-' . $topic->post_type . '_' . $topic->ID ) ) . "'>" . esc_html__( 'Restore', 'buddyboss' ) . "</a>";
} elseif ( EMPTY_TRASH_DAYS ) {
$actions['trash'] = "<a class='submitdelete' title='" . esc_attr__( 'Move this item to the Trash', 'buddyboss' ) . "' href='" . esc_url( add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID ) ) ) . "'>" . esc_html__( 'Trash', 'buddyboss' ) . "</a>";
}
if ( bbp_get_trash_status_id() === $topic->post_status || !EMPTY_TRASH_DAYS ) {
$actions['delete'] = "<a class='submitdelete' title='" . esc_attr__( 'Delete this item permanently', 'buddyboss' ) . "' href='" . esc_url( add_query_arg( array( '_wp_http_referer' => add_query_arg( array( 'post_type' => bbp_get_topic_post_type() ), admin_url( 'edit.php' ) ) ), get_delete_post_link( $topic->ID, '', true ) ) ) . "'>" . esc_html__( 'Delete Permanently', 'buddyboss' ) . "</a>";
} elseif ( bbp_get_spam_status_id() === $topic->post_status ) {
unset( $actions['trash'] );
}
}
return $actions;
}
Changelog
| Version | Description |
|---|---|
| bbPress (r2485) | 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.