BP_Activity_List_Table::column_comment( array $item )
Content column, and “quick admin” rollover actions.
Description
Called "comment" in the CSS so we can re-use some WP core CSS.
See also
Parameters
- $item
-
(Required) A singular item (one full row).
Source
File: bp-activity/classes/class-bp-activity-list-table.php
function column_comment( $item ) {
// Determine what type of item (row) we're dealing with.
if ( $item['is_spam'] )
$item_status = 'spam';
else
$item_status = 'all';
// Preorder items: Reply | Edit | Spam | Delete Permanently.
$actions = array(
'reply' => '',
'edit' => '',
'spam' => '', 'unspam' => '',
'delete' => '',
);
// Build actions URLs.
$base_url = bp_get_admin_url( 'admin.php?page=bp-activity&aid=' . $item['id'] );
$spam_nonce = esc_html( '_wpnonce=' . wp_create_nonce( 'spam-activity_' . $item['id'] ) );
$delete_url = $base_url . "&action=delete&$spam_nonce";
$edit_url = $base_url . '&action=edit';
$ham_url = $base_url . "&action=ham&$spam_nonce";
$spam_url = $base_url . "&action=spam&$spam_nonce";
// Rollover actions.
// Reply - JavaScript only; implemented by AJAX.
if ( 'spam' != $item_status ) {
if ( $this->can_comment( $item ) ) {
$actions['reply'] = sprintf( '<a href="#" class="reply hide-if-no-js">%s</a>', __( 'Reply', 'buddyboss' ) );
} else {
$actions['reply'] = sprintf( '<span class="form-input-tip">%s</span>', __( 'Replies disabled', 'buddyboss' ) );
}
// Edit.
$actions['edit'] = sprintf( '<a href="%s">%s</a>', $edit_url, __( 'Edit', 'buddyboss' ) );
}
// Spam/unspam.
if ( 'spam' == $item_status )
$actions['unspam'] = sprintf( '<a href="%s">%s</a>', $ham_url, __( 'Not Spam', 'buddyboss' ) );
else
$actions['spam'] = sprintf( '<a href="%s">%s</a>', $spam_url, __( 'Spam', 'buddyboss' ) );
// Delete.
$actions['delete'] = sprintf( '<a href="%s" onclick="%s">%s</a>', $delete_url, "javascript:return confirm('" . esc_js( __( 'Are you sure?', 'buddyboss' ) ) . "'); ", __( 'Delete Permanently', 'buddyboss' ) );
// Start timestamp.
echo '<div class="submitted-on">';
/**
* Filters available actions for plugins to alter.
*
* @since BuddyPress 1.6.0
*
* @param array $actions Array of available actions user could use.
* @param array $item Current item being added to page.
*/
$actions = apply_filters( 'bp_activity_admin_comment_row_actions', array_filter( $actions ), $item );
printf(
/* translators: %s: activity date and time */
__( 'Submitted on %s', 'buddyboss' ),
sprintf(
'<a href="%1$s">%2$s</a>',
bp_activity_get_permalink( $item['id'] ),
sprintf(
/* translators: 1: activity date, 2: activity time */
__( '%1$s at %2$s', 'buddyboss' ),
date_i18n( bp_get_option( 'date_format' ), strtotime( $item['date_recorded'] ) ),
get_date_from_gmt( $item['date_recorded'], bp_get_option( 'time_format' ) )
)
)
);
// End timestamp.
echo '</div>';
// Get activity content - if not set, use the action.
if ( ! empty( $item['content'] ) ) {
$activity = new BP_Activity_Activity( $item['id'] );
/** This filter is documented in bp-activity/bp-activity-template.php */
$content = apply_filters_ref_array( 'bp_get_activity_content_body', array( $item['content'], &$activity ) );
} else {
/**
* Filters current activity item action.
*
* @since BuddyPress 1.2.0
*
* @var array $item Array index holding current activity item action.
*/
$content = apply_filters_ref_array( 'bp_get_activity_action', array( $item['action'] ) );
}
/**
* Filter here to add extra output to the activity content into the Administration.
*
* @since BuddyPress 2.4.0
*
* @param string $content The activity content.
* @param array $item The activity object converted into an array.
*/
echo apply_filters( 'bp_activity_admin_comment_content', $content, $item ) . ' ' . $this->row_actions( $actions );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.6.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.