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
814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 | 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.