示例#1
0
 /**
  * get_activity function.
  * 
  * @access public
  * @param mixed $filter
  * @return void
  */
 public function get_activity($filter)
 {
     $args = $filter;
     if (bp_has_activities($args)) {
         while (bp_activities()) {
             bp_the_activity();
             $activity = array('avatar' => bp_core_fetch_avatar(array('html' => false, 'item_id' => bp_get_activity_id())), 'action' => bp_get_activity_action(), 'content' => bp_get_activity_content_body(), 'activity_id' => bp_get_activity_id(), 'activity_username' => bp_core_get_username(bp_get_activity_user_id()), 'user_id' => bp_get_activity_user_id(), 'comment_count' => bp_activity_get_comment_count(), 'can_comment' => bp_activity_can_comment(), 'can_favorite' => bp_activity_can_favorite(), 'is_favorite' => bp_get_activity_is_favorite(), 'can_delete' => bp_activity_user_can_delete());
             $activity = apply_filters('bp_json_prepare_activity', $activity);
             $activities[] = $activity;
         }
         $data = array('activity' => $activities, 'has_more_items' => bp_activity_has_more_items());
         $data = apply_filters('bp_json_prepare_activities', $data);
     } else {
         return new WP_Error('bp_json_activity', __('No Activity Found.', 'buddypress'), array('status' => 200));
     }
     $response = new WP_REST_Response();
     $response->set_data($data);
     $response = rest_ensure_response($response);
     return $response;
 }
示例#2
0
    ?>

			</div>

		<?php 
}
?>

	</div>

	<?php 
do_action('bp_before_activity_entry_comments');
?>

	<?php 
if (is_user_logged_in() && bp_activity_can_comment() || bp_activity_get_comment_count()) {
    ?>

		<div class="activity-comments">

			<?php 
    bp_activity_comments();
    ?>

			<?php 
    if (is_user_logged_in()) {
        ?>

				<form action="<?php 
        bp_activity_comment_form_action();
        ?>
        echo bp_activity_thread_permalink();
        ?>
</link>
				<pubDate><?php 
        echo mysql2date('D, d M Y H:i:s O', bp_get_activity_feed_item_date(), false);
        ?>
</pubDate>

				<description>
					<![CDATA[
					<?php 
        bp_activity_feed_item_description();
        ?>

					<?php 
        if (bp_activity_can_comment()) {
            ?>
						<p><?php 
            printf(__('Comments: %s', 'buddypress'), bp_activity_get_comment_count());
            ?>
</p>
					<?php 
        }
        ?>

					<?php 
        if ('activity_comment' == bp_get_activity_action_name()) {
            ?>
						<br /><strong><?php 
            _e('In reply to', 'buddypress');
            ?>
示例#4
0
 */
do_action('bp_before_activity_entry_comments');
?>

	<?php 
if (bp_activity_get_comment_count() || bp_activity_can_comment() || bp_is_single_activity()) {
    ?>

		<div class="activity-comments">

			<?php 
    bp_activity_comments();
    ?>

			<?php 
    if (is_user_logged_in() && bp_activity_can_comment()) {
        ?>

				<form action="<?php 
        bp_activity_comment_form_action();
        ?>
" method="post" id="ac-form-<?php 
        bp_activity_id();
        ?>
" class="ac-form"<?php 
        bp_activity_comment_form_nojs_display();
        ?>
>
					<div class="ac-reply-avatar"><?php 
        bp_loggedin_user_avatar('width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT);
        ?>
    /**
     * Output the RSS feed.
     */
    protected function output()
    {
        $this->http_headers();
        echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>';
        ?>

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	<?php 
        /**
         * Fires at the end of the opening RSS tag for feed output so plugins can add extra attributes.
         *
         * @since 1.8.0
         */
        do_action('bp_activity_feed_rss_attributes');
        ?>
>

<channel>
	<title><?php 
        echo $this->title;
        ?>
</title>
	<link><?php 
        echo $this->link;
        ?>
</link>
	<atom:link href="<?php 
        self_link();
        ?>
" rel="self" type="application/rss+xml" />
	<description><?php 
        echo $this->description;
        ?>
</description>
	<lastBuildDate><?php 
        echo mysql2date('D, d M Y H:i:s O', bp_activity_get_last_updated(), false);
        ?>
</lastBuildDate>
	<generator>https://buddypress.org/?v=<?php 
        bp_version();
        ?>
</generator>
	<language><?php 
        bloginfo_rss('language');
        ?>
</language>
	<ttl><?php 
        echo $this->ttl;
        ?>
</ttl>
	<sy:updatePeriod><?php 
        echo $this->update_period;
        ?>
</sy:updatePeriod>
 	<sy:updateFrequency><?php 
        echo $this->update_frequency;
        ?>
</sy:updateFrequency>
	<?php 
        /**
         * Fires at the end of channel elements list in RSS feed so plugins can add extra channel elements.
         *
         * @since 1.8.0
         */
        do_action('bp_activity_feed_channel_elements');
        ?>

	<?php 
        if (bp_has_activities($this->activity_args)) {
            ?>
		<?php 
            while (bp_activities()) {
                bp_the_activity();
                ?>
			<item>
				<guid isPermaLink="false"><?php 
                bp_activity_feed_item_guid();
                ?>
</guid>
				<title><?php 
                echo stripslashes(bp_get_activity_feed_item_title());
                ?>
</title>
				<link><?php 
                bp_activity_thread_permalink();
                ?>
</link>
				<pubDate><?php 
                echo mysql2date('D, d M Y H:i:s O', bp_get_activity_feed_item_date(), false);
                ?>
</pubDate>

				<?php 
                if (bp_get_activity_feed_item_description()) {
                    ?>
					<content:encoded><![CDATA[<?php 
                    $this->feed_content();
                    ?>
]]></content:encoded>
				<?php 
                }
                ?>

				<?php 
                if (bp_activity_can_comment()) {
                    ?>
					<slash:comments><?php 
                    bp_activity_comment_count();
                    ?>
</slash:comments>
				<?php 
                }
                ?>

				<?php 
                /**
                 * Fires at the end of the individual RSS Item list in RSS feed so plugins can add extra item elements.
                 *
                 * @since 1.8.0
                 */
                do_action('bp_activity_feed_item_elements');
                ?>
			</item>
		<?php 
            }
            ?>

	<?php 
        }
        ?>
</channel>
</rss><?php 
    }
示例#6
0
    ?>

			</div>

		<?php 
}
?>

	</div>

	<?php 
do_action('bp_before_activity_entry_comments');
?>

	<?php 
if (is_user_logged_in() && bp_activity_can_comment() || bp_is_single_activity()) {
    ?>

		<div class="activity-comments">

			<?php 
    bp_activity_comments();
    ?>

			<?php 
    if (is_user_logged_in()) {
        ?>

				<form action="<?php 
        bp_activity_comment_form_action();
        ?>
    /**
     * Output the RSS feed.
     */
    protected function output()
    {
        // set up some additional headers if not on a directory page
        // this is done b/c BP uses pseudo-pages
        if (!bp_is_directory()) {
            global $wp_query;
            $wp_query->is_404 = false;
            status_header(200);
        }
        header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
        echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>';
        ?>

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	<?php 
        do_action('bp_activity_feed_rss_attributes');
        ?>
>

<channel>
	<title><?php 
        echo $this->title;
        ?>
</title>
	<link><?php 
        echo $this->link;
        ?>
</link>
	<atom:link href="<?php 
        self_link();
        ?>
" rel="self" type="application/rss+xml" />
	<description><?php 
        echo $this->description;
        ?>
</description>
	<lastBuildDate><?php 
        echo mysql2date('D, d M Y H:i:s O', bp_activity_get_last_updated(), false);
        ?>
</lastBuildDate>
	<generator>http://buddypress.org/?v=<?php 
        bp_version();
        ?>
</generator>
	<language><?php 
        bloginfo_rss('language');
        ?>
</language>
	<ttl><?php 
        echo $this->ttl;
        ?>
</ttl>
	<sy:updatePeriod><?php 
        echo $this->update_period;
        ?>
</sy:updatePeriod>
 	<sy:updateFrequency><?php 
        echo $this->update_frequency;
        ?>
</sy:updateFrequency>
	<?php 
        do_action('bp_activity_feed_channel_elements');
        ?>

	<?php 
        if (bp_has_activities($this->activity_args)) {
            ?>
		<?php 
            while (bp_activities()) {
                bp_the_activity();
                ?>
			<item>
				<guid isPermaLink="false"><?php 
                bp_activity_feed_item_guid();
                ?>
</guid>
				<title><?php 
                echo stripslashes(bp_get_activity_feed_item_title());
                ?>
</title>
				<link><?php 
                bp_activity_thread_permalink();
                ?>
</link>
				<pubDate><?php 
                echo mysql2date('D, d M Y H:i:s O', bp_get_activity_feed_item_date(), false);
                ?>
</pubDate>

				<?php 
                if (bp_get_activity_feed_item_description()) {
                    ?>
					<content:encoded><![CDATA[<?php 
                    $this->feed_content();
                    ?>
]]></content:encoded>
				<?php 
                }
                ?>

				<?php 
                if (bp_activity_can_comment()) {
                    ?>
					<slash:comments><?php 
                    bp_activity_comment_count();
                    ?>
</slash:comments>
				<?php 
                }
                ?>

				<?php 
                do_action('bp_activity_feed_item_elements');
                ?>
			</item>
		<?php 
            }
            ?>

	<?php 
        }
        ?>
</channel>
</rss><?php 
    }
	function show_comment_form() {
		$activity_id = get_post_meta($this->id, 'bp_media_child_activity', true);
		if (bp_has_activities(array(
				'display_comments' => 'stream',
				'include' => $activity_id,
				'max' => 1
			))) :
			while (bp_activities()) : bp_the_activity();
				do_action('bp_before_activity_entry');
				?>
				<div class="activity">
					<ul id="activity-stream" class="activity-list item-list">
						<li class="activity activity_update" id="activity-<?php echo $activity_id; ?>">
							<div class="activity-content">
								<?php do_action('bp_activity_entry_content'); ?>
								<?php if (is_user_logged_in()) : ?>
									<div class="activity-meta no-ajax">
										<?php if (bp_activity_can_comment()) : ?>
											<a href="<?php bp_get_activity_comment_link(); ?>" class="button acomment-reply bp-primary-action" id="acomment-comment-<?php bp_activity_id(); ?>"><?php printf(__('Comment <span>%s</span>', 'buddypress'), bp_activity_get_comment_count()); ?></a>
										<?php endif; ?>
										<?php if (bp_activity_can_favorite()) : ?>
											<?php if (!bp_get_activity_is_favorite()) : ?>
												<a href="<?php bp_activity_favorite_link(); ?>" class="button fav bp-secondary-action" title="<?php esc_attr_e('Mark as Favorite', 'buddypress'); ?>"><?php _e('Favorite', 'buddypress') ?></a>
											<?php else : ?>
												<a href="<?php bp_activity_unfavorite_link(); ?>" class="button unfav bp-secondary-action" title="<?php esc_attr_e('Remove Favorite', 'buddypress'); ?>"><?php _e('Remove Favorite', 'buddypress') ?></a>
											<?php endif; ?>
										<?php endif; ?>
										<?php if (bp_activity_user_can_delete()) bp_activity_delete_link(); ?>
										<?php do_action('bp_activity_entry_meta'); ?>
									</div>
								<?php endif; ?>
							</div>
							<?php do_action('bp_before_activity_entry_comments'); ?>
							<?php if (( is_user_logged_in() && bp_activity_can_comment() ) || bp_activity_get_comment_count()) : ?>
								<div class="activity-comments">
									<?php bp_activity_comments(); ?>
									<?php if (is_user_logged_in()) : ?>
										<form action="<?php bp_activity_comment_form_action(); ?>" method="post" id="ac-form-<?php bp_activity_id(); ?>" class="ac-form"<?php bp_activity_comment_form_nojs_display(); ?>>
											<div class="ac-reply-avatar"><?php bp_loggedin_user_avatar('width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT); ?></div>
											<div class="ac-reply-content">
												<div class="ac-textarea">
													<textarea id="ac-input-<?php bp_activity_id(); ?>" class="ac-input" name="ac_input_<?php bp_activity_id(); ?>"></textarea>
												</div>
												<input type="submit" name="ac_form_submit" value="<?php _e('Post', 'buddypress'); ?>" /> &nbsp; <?php _e('or press esc to cancel.', 'buddypress'); ?>
												<input type="hidden" name="comment_form_id" value="<?php bp_activity_id(); ?>" />
											</div>
											<?php do_action('bp_activity_entry_comments'); ?>
											<?php wp_nonce_field('new_activity_comment', '_wpnonce_new_activity_comment'); ?>
										</form>
									<?php endif; ?>
								</div>
							<?php endif; ?>
							<?php do_action('bp_after_activity_entry_comments'); ?>
						</li>
					</ul>
				</div>
				<?php
			endwhile;
		else: ?>
			<div class="activity">
					<ul id="activity-stream" class="activity-list item-list">
						<li class="activity activity_update" id="activity-<?php echo $activity_id; ?>">
							<div class="activity-content">
								<?php do_action('bp_activity_entry_content'); ?>
								<?php if (is_user_logged_in()) : ?>
									<div class="activity-meta no-ajax">
																				
										<a href="<?php echo $this->get_delete_url(); ?>" class="button item-button bp-secondary-action delete-activity-single confirm" rel="nofollow">Delete</a>
									</div>
								<?php endif; ?>
							</div>
						</li>
					</ul>
				</div>
			<?
		endif;
	}
/**
 * Gets the activity CSS class
 *
 * @since 1.0.0
 *
 * @global object $activities_template {@link BP_Activity_Template}
 * @uses apply_filters() To call the 'bp_activity_mini_activity_types' hook
 * @uses bp_activity_get_comment_count()
 * @uses bp_activity_can_comment()
 * @uses apply_filters() To call the 'bp_get_activity_css_class' hook
 *
 * @return string The activity css class
 */
function bp_get_activity_css_class()
{
    global $activities_template;
    $mini_activity_actions = apply_filters('bp_activity_mini_activity_types', array('friendship_accepted', 'friendship_created', 'new_blog', 'joined_group', 'created_group', 'new_member'));
    $class = '';
    if (in_array($activities_template->activity->type, (array) $mini_activity_actions) || empty($activities_template->activity->content)) {
        $class = ' mini';
    }
    if (bp_activity_get_comment_count() && bp_activity_can_comment()) {
        $class .= ' has-comments';
    }
    return apply_filters('bp_get_activity_css_class', $activities_template->activity->component . ' ' . $activities_template->activity->type . $class);
}
/**
 * Return the current activity item's CSS class.
 *
 * @since BuddyPress (1.0.0)
 *
 * @global object $activities_template {@link BP_Activity_Template}
 * @uses apply_filters() To call the 'bp_activity_mini_activity_types' hook.
 * @uses bp_activity_get_comment_count()
 * @uses bp_activity_can_comment()
 * @uses apply_filters() To call the 'bp_get_activity_css_class' hook.
 *
 * @return string The activity item's CSS class.
 */
function bp_get_activity_css_class()
{
    global $activities_template;
    /**
     * Filters the available mini activity actions available as CSS classes.
     *
     * @since BuddyPress (1.2.0)
     *
     * @param array $value Array of classes used to determine classes applied to HTML element.
     */
    $mini_activity_actions = apply_filters('bp_activity_mini_activity_types', array('friendship_accepted', 'friendship_created', 'new_blog', 'joined_group', 'created_group', 'new_member'));
    $class = ' activity-item';
    if (in_array($activities_template->activity->type, (array) $mini_activity_actions) || empty($activities_template->activity->content)) {
        $class .= ' mini';
    }
    if (bp_activity_get_comment_count() && bp_activity_can_comment()) {
        $class .= ' has-comments';
    }
    /**
     * Filters the determined classes to add to the HTML element.
     *
     * @since BuddyPress (1.0.0)
     *
     * @param string $value Classes to be added to the HTML element.
     */
    return apply_filters('bp_get_activity_css_class', $activities_template->activity->component . ' ' . $activities_template->activity->type . $class);
}
示例#11
0
	<language><?php echo get_option('rss_language'); ?></language>
	<?php do_action('bp_activity_mentions_feed_head'); ?>

	<?php if ( bp_has_activities( 'max=50&display_comments=stream&search_terms=@' . bp_core_get_username( $bp->displayed_user->id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) ) ) : ?>
		<?php while ( bp_activities() ) : bp_the_activity(); ?>
			<item>
				<guid><?php bp_activity_thread_permalink() ?></guid>
				<title><![CDATA[<?php bp_activity_feed_item_title() ?>]]></title>
				<link><?php echo bp_activity_thread_permalink() ?></link>
				<pubDate><?php echo mysql2date('D, d M Y H:i:s O', bp_get_activity_feed_item_date(), false); ?></pubDate>

				<description>
					<![CDATA[
					<?php bp_activity_feed_item_description() ?>

					<?php if ( bp_activity_can_comment() ) : ?>
						<p><?php printf( __( 'Comments: %s', 'buddypress' ), bp_activity_get_comment_count() ); ?></p>
					<?php endif; ?>

					<?php if ( 'activity_comment' == bp_get_activity_action_name() ) : ?>
						<br /><strong><?php _e( 'In reply to', 'buddypress' ) ?></strong> -
						<?php bp_activity_parent_content() ?>
					<?php endif; ?>
					]]>
				</description>
				<?php do_action('bp_activity_mentions_feed_item'); ?>
			</item>
		<?php endwhile; ?>

	<?php endif; ?>
</channel>
function swa_activity_entry($show_avatar = false)
{
    ?>
 <?php 
    do_action('bp_before_activity_entry');
    ?>
    <li class="<?php 
    bp_activity_css_class();
    ?>
" id="activity-<?php 
    bp_activity_id();
    ?>
">
            <?php 
    if ($show_avatar == "yes") {
        ?>
                      <div class="swa-activity-avatar">
                            <a href="<?php 
        bp_activity_user_link();
        ?>
">
                                    <?php 
        bp_activity_avatar('type=thumb&width=50&height=50');
        ?>
                            </a>

                    </div>
           <?php 
    }
    ?>
          <div class="swa-activity-content">
		<div class="swa-activity-header">
			<?php 
    bp_activity_action();
    ?>
		</div>

		<?php 
    if (bp_activity_has_content()) {
        ?>
			<div class="swa-activity-inner">
				<?php 
        bp_activity_content_body();
        ?>
			</div>
		<?php 
    }
    ?>

	<?php 
    do_action('bp_activity_entry_content');
    ?>
	<div class="swa-activity-meta">
            <?php 
    if (is_user_logged_in() && bp_activity_can_comment()) {
        ?>
				<a href="<?php 
        bp_activity_comment_link();
        ?>
" class="acomment-reply" id="acomment-comment-<?php 
        bp_activity_id();
        ?>
"><?php 
        _e('Reply', 'buddypress');
        ?>
 (<span><?php 
        bp_activity_comment_count();
        ?>
</span>)</a>
			<?php 
    }
    ?>
            <?php 
    if (is_user_logged_in()) {
        ?>
		<?php 
        if (!bp_get_activity_is_favorite()) {
            ?>
                    <a href="<?php 
            bp_activity_favorite_link();
            ?>
" class="fav" title="<?php 
            _e('Mark as Favorite', 'swa');
            ?>
"><?php 
            _e('Favorite', 'swa');
            ?>
</a>
		<?php 
        } else {
            ?>
                    <a href="<?php 
            bp_activity_unfavorite_link();
            ?>
" class="unfav" title="<?php 
            _e('Remove Favorite', 'swa');
            ?>
"><?php 
            _e('Remove Favorite', 'swa');
            ?>
</a>
		<?php 
        }
        ?>
            <?php 
    }
    ?>
            <?php 
    do_action('bp_activity_entry_meta');
    ?>
        </div>
	<div class="clear" ></div>
    </div>
    <?php 
    if ('activity_comment' == bp_get_activity_type()) {
        ?>
	<div class="swa-activity-inreplyto">
            <strong><?php 
        _e('In reply to', 'swa');
        ?>
</strong> - <?php 
        bp_activity_parent_content();
        ?>
 &middot;
            <a href="<?php 
        bp_activity_thread_permalink();
        ?>
" class="view" title="<?php 
        _e('View Thread / Permalink', 'swa');
        ?>
"><?php 
        _e('View', 'swa');
        ?>
</a>
	</div>
    <?php 
    }
    ?>
    <?php 
    if (bp_activity_can_comment()) {
        ?>
        <div class="swa-activity-comments">
        	<?php 
        bp_activity_comments();
        ?>
            <?php 
        if (is_user_logged_in()) {
            ?>
			<form action="<?php 
            bp_activity_comment_form_action();
            ?>
" method="post" id="swa-ac-form-<?php 
            bp_activity_id();
            ?>
" class="swa-ac-form"<?php 
            bp_activity_comment_form_nojs_display();
            ?>
>
				<div class="ac-reply-avatar"><?php 
            bp_loggedin_user_avatar('width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT);
            ?>
</div>
				<div class="ac-reply-content">
					<div class="ac-textarea">
						<textarea id="swa-ac-input-<?php 
            bp_activity_id();
            ?>
" class="ac-input" name="ac_input_<?php 
            bp_activity_id();
            ?>
"></textarea>
					</div>
					<input type="submit" name="swa_ac_form_submit" value="<?php 
            _e('Post', 'buddypress');
            ?>
 &rarr;" /> &nbsp; <?php 
            _e('or press esc to cancel.', 'buddypress');
            ?>
					<input type="hidden" name="comment_form_id" value="<?php 
            bp_activity_id();
            ?>
" />
				</div>
				<?php 
            wp_nonce_field('new_activity_comment', '_wpnonce_new_activity_comment');
            ?>
			</form>
			<?php 
        }
        ?>
	</div>
    <?php 
    }
    ?>
</li>
<?php 
    do_action('bp_after_swa_activity_entry');
    ?>

<?php 
}
示例#13
0
?>

	</div>

	<?php 
do_action('bp_before_activity_entry_comments');
?>

	<?php 
if (bp_activity_can_comment() || bp_activity_get_comment_count()) {
    ?>

		<div class="activity-comments">
			
			<?php 
    if (!bp_activity_can_comment() || !bp_activity_get_comment_count()) {
        ?>
				
				<?php 
        wall_add_likes_comments();
        ?>
				
			<?php 
    } else {
        ?>
				
				<?php 
        bp_activity_comments();
        ?>

			<?php 
示例#14
0
			<?php 
}
?>

			<?php 
do_action('bp_activity_entry_meta');
?>
		</div>
	</div>

	<?php 
do_action('bp_before_activity_entry_comments');
?>

	<?php 
if (bp_activity_can_comment() && bpgr_is_group_reviews()) {
    ?>
		<div class="activity-comments">
			<?php 
    bp_activity_comments();
    ?>

			<?php 
    if (is_user_logged_in()) {
        ?>
			<form action="<?php 
        bp_activity_comment_form_action();
        ?>
" method="post" id="ac-form-<?php 
        bp_activity_id();
        ?>
/**
 * Check if the current activity item in the activity loop can be followed.
 *
 * There are two ways to register your activity item to be followed. Please
 * see inline documentation for more details.
 *
 * @param  int $activity_id The activity ID to check.
 * @return bool
 */
function bp_follow_activity_can_follow($activity_id = 0)
{
    // There are two ways to register a follow button for your activity item:
    /**
     * (1) Post type method.
     *
     * If you're registering a post type with BP activity support, and you want to
     * show a 'Follow' button in the activity loop for this item, simply add the
     * 'follow_button' key to the 'bp_activity' array.
     *
     * 'follow_type' is an optional argument, which is handy if you wanted to
     * separate your post type from the generic followed activity tab/filter. If
     * you do set this argument, you'll have to register your own activity nav
     * items, adminbar menus, caching invalidation and activity scope manually.
     *
     * eg.
     *	'bp_activity' => array(
     *		'format_callback' => 'WHATEVER',
     *              'follow_button' => true,
     *
     * 		// optional; defaults to 'activity' if not set.
     * 		// handy if you want to separate
     *		'follow_type' => 'UNIQUE_ID'
     *	)
     */
    /**
     * (2) Activity action method.
     *
     * If you're registering an activity action and you want to show a 'Follow'
     * button in the activity loop, set the 'follow_button' key for the $context
     * parameter.
     *
     * 'follow_type' is an optional argument, which is handy if you wanted to
     * separate your post type from the generic followed activity tab/filter. If
     * you do set this argument, you'll have to register your own activity nav
     * items, adminbar menus, caching invalidation and activity scope manually.
     *
     * eg.
     *	bp_activity_set_action(
     *		$bp->activity->id,
     *		'activity_update',
     *		__( 'Posted a status update', 'buddypress' ),
     *		'bp_activity_format_activity_action_activity_update',
     *		__( 'Updates', 'buddypress' ),
     *
     *		// Notice the change on the second line!
     *		array( 'activity', 'group', 'member', 'member_groups',
     *                     'follow_button' => true, 'follow_type' => 'UNIQUE_ID' )
     *	);
     */
    // If in activity loop, use already-queried activity action
    if (!empty($GLOBALS['activities_template']->in_the_loop)) {
        $action = bp_activity_get_action(bp_get_activity_object_name(), bp_get_activity_type());
        // Manually query for the activity action of a given activity item
    } else {
        // Do not do anything if empty
        if (empty($activity_id)) {
            return false;
        }
        $activity = new BP_Activity_Activity($activity_id);
        if (empty($activity->type)) {
            return false;
        }
        $action = bp_activity_get_action($activity->component, $activity->type);
    }
    // Success!
    if (isset($action['follow_button']) && !empty($action['follow_button'])) {
        $can_follow = true;
        // Fallback to activity commenting setting
    } else {
        $can_follow = bp_activity_can_comment();
    }
    return apply_filters('bp_follow_can_follow_activity', $can_follow, $action);
}
示例#16
0
 /**
  * @group bp_activity_can_comment
  */
 public function test_bp_activity_can_comment_post_type_activity()
 {
     global $activities_template;
     $bp = buddypress();
     $reset_activities_template = $activities_template;
     $reset_activity_track = $bp->activity->track;
     $activities_template = new stdClass();
     $activities_template->disable_blogforum_replies = true;
     register_post_type('foo', array('label' => 'foo', 'public' => true, 'supports' => array('buddypress-activity')));
     $bp->activity->track = bp_activity_get_post_types_tracking_args();
     $activities_template->activity = (object) array('type' => 'new_foo');
     $this->assertTrue(bp_activity_can_comment(), 'If post type does not support comments, a post type activity can be commented');
     add_post_type_support('foo', 'comments');
     $bp->activity->track = bp_activity_get_post_types_tracking_args();
     $this->assertFalse(bp_activity_can_comment(), 'If post type support comments, a post type activity cannot be commented');
     $bp_activity_support = (array) $bp->activity->track['new_foo'];
     $bp_activity_support['activity_comment'] = true;
     bp_activity_set_post_type_tracking_args('foo', $bp_activity_support);
     $bp->activity->track = bp_activity_get_post_types_tracking_args();
     $this->assertTrue(bp_activity_can_comment(), 'If post type supports activity comments, a post type activity can be commented');
     // clean up!
     $activities_template = $reset_activities_template;
     $bp->activity->track = $reset_activity_track;
 }