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

635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
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

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.