function bplike_activity_update_button() { $liked_count = 0; if (is_user_logged_in() && bp_get_activity_type() !== 'activity_liked') { if (bp_activity_get_meta(bp_get_activity_id(), 'liked_count', true)) { $users_who_like = array_keys(bp_activity_get_meta(bp_get_activity_id(), 'liked_count', true)); $liked_count = count($users_who_like); } if (!bp_like_is_liked(bp_get_activity_id(), 'activity_update', get_current_user_id())) { ?> <a href="#" class="button bp-primary-action like" id="like-activity-<?php echo bp_get_activity_id(); ?> " title="<?php echo bp_like_get_text('like_this_item'); ?> "> <?php echo bp_like_get_text('like'); if ($liked_count) { echo ' <span>' . $liked_count . '</span>'; } ?> </a> <?php } else { ?> <a href="#" class="button bp-primary-action unlike" id="unlike-activity-<?php echo bp_get_activity_id(); ?> " title="<?php echo bp_like_get_text('unlike_this_item'); ?> "> <?php echo bp_like_get_text('unlike'); if ($liked_count) { echo '<span>' . $liked_count . '</span>'; } ?> </a> <?php } // Checking if there are users who like item. if (isset($users_who_like)) { view_who_likes(bp_get_activity_id(), 'activity_update'); } } }
/** * format callback * * @package Rendez Vous * @subpackage Activity * * @since Rendez Vous (1.0.0) */ function rendez_vous_format_activity_action($action, $activity) { $rendez_vous_id = $activity->item_id; $organizer = $activity->secondary_item_id; if ($activity->component != buddypress()->rendez_vous->id) { $rendez_vous_id = $activity->secondary_item_id; $organizer = $activity->user_id; } $rendez_vous_url = rendez_vous_get_single_link($rendez_vous_id, $organizer); $rendez_vous_title = bp_activity_get_meta($activity->id, 'rendez_vous_title'); // Should only be empty at the time of rendez vous creation if (empty($rendez_vous_title)) { $rendez_vous = rendez_vous_get_item($rendez_vous_id); if (is_a($rendez_vous, 'Rendez_Vous_Item')) { $rendez_vous_title = $rendez_vous->title; bp_activity_update_meta($activity->id, 'rendez_vous_title', $rendez_vous_title); } } $rendez_vous_link = '<a href="' . esc_url($rendez_vous_url) . '">' . esc_html($rendez_vous_title) . '</a>'; $user_link = bp_core_get_userlink($activity->user_id); $action_part = __('scheduled a new', 'rendez-vous'); if ('updated_rendez_vous' == $activity->type) { $action_part = __('updated a', 'rendez-vous'); } $action = sprintf(__('%1$s %2$s rendez-vous, %3$s', 'rendez-vous'), $user_link, $action_part, $rendez_vous_link); return apply_filters('rendez_vous_format_activity_action', $action, $activity); }
/** * @ticket BP4804 * @group delete_activity_meta_entries * @group activitymeta */ public function test_delete_activity_meta_entries() { $activity = $this->factory->activity->create(array('type' => 'activity_update')); bp_activity_update_meta($activity, 'Paul', 'is cool'); BP_Activity_Activity::delete_activity_meta_entries($activity); $meta = bp_activity_get_meta($activity, 'Paul'); $this->assertSame('', $meta); }
function vortex_get_meta($post_id, $key, $value) { $bbp = vortex_is_buddypress($post_id); if ($bbp) { return bp_activity_get_meta($post_id, $key, $value); } else { return get_post_meta($post_id, $key, $value); } }
function bp_media_activity_permalink_filter($link, $activity_obj = null) { if ($activity_obj != null && 'media_upload' == $activity_obj->type) { add_shortcode('bp_media_url', 'bp_media_shortcode_url'); $link = do_shortcode($activity_obj->primary_link); remove_shortcode('bp_media_url'); } if ($activity_obj != null && 'activity_comment' == $activity_obj->type) { $parent = bp_activity_get_meta($activity_obj->item_id, 'bp_media_parent_post'); if ($parent) { $parent = new BP_Media_Host_Wordpress($parent); $link = $parent->get_url(); } } return $link; }
/** * Processes images-type shortcode and create proper markup. * Relies on ./forms/images_tag_template.php for markup rendering. */ function process_images_tag($atts, $content) { $images = explode("\n", trim(strip_tags($content))); //return var_export($images,1); $activity_id = bp_get_activity_id(); global $blog_id; $activity_blog_id = $blog_id; $use_thickbox = defined('BPFB_USE_THICKBOX') ? esc_attr(BPFB_USE_THICKBOX) : 'thickbox'; if ($activity_id) { $activity_blog_id = bp_activity_get_meta($activity_id, 'bpfb_blog_id'); } ob_start(); @(include BPFB_PLUGIN_BASE_DIR . '/lib/forms/images_tag_template.php'); $out = ob_get_clean(); return $out; }
/** * @group activity_action * @group bp_blogs_format_activity_action_new_blog_post */ public function test_bp_blogs_format_activity_action_new_blog_post_ms_rootblog() { if (!is_multisite()) { return; } $u = $this->factory->user->create(); $p = $this->factory->post->create(array('post_author' => $u)); $a = $this->factory->activity->create(array('component' => buddypress()->blogs->id, 'type' => 'new_blog_post', 'user_id' => $u, 'item_id' => 1, 'secondary_item_id' => $p)); $a_obj = new BP_Activity_Activity($a); $user_link = bp_core_get_userlink($u); $blog_url = get_home_url(); $post_url = add_query_arg('p', $p, trailingslashit($blog_url)); $post_title = bp_activity_get_meta($a, 'post_title'); $post_link = '<a href="' . $post_url . '">' . $post_title . '</a>'; $expected = sprintf('%s wrote a new post, %s, on the site %s', $user_link, $post_link, '<a href="' . $blog_url . '">' . bp_blogs_get_blogmeta($a_obj->item_id, 'name') . '</a>'); $this->assertSame($expected, $a_obj->action); }
/** * @group bp_activity_update_meta_cache */ public function test_bp_activity_update_meta_cache() { $a1 = $this->factory->activity->create(); $a2 = $this->factory->activity->create(); // Set up some data bp_activity_update_meta($a1, 'foo', 'bar'); bp_activity_update_meta($a1, 'Boone', 'Rules'); bp_activity_update_meta($a2, 'foo', 'baz'); bp_activity_update_meta($a2, 'BuddyPress', 'Is Cool'); // Prime the cache for $a1 bp_activity_get_meta($a1, 'foo'); // Ensure an empty cache for $a2 wp_cache_delete($a2, 'activity_meta'); bp_activity_update_meta_cache(array($a1, $a2)); $expected = array($a1 => array('foo' => array('bar'), 'Boone' => array('Rules')), $a2 => array('foo' => array('baz'), 'BuddyPress' => array('Is Cool'))); $found = array($a1 => wp_cache_get($a1, 'activity_meta'), $a2 => wp_cache_get($a2, 'activity_meta')); $this->assertEquals($expected, $found); }
function bplike_activity_comment_button() { $liked_count = 0; if (is_user_logged_in()) { if (bp_activity_get_meta(bp_get_activity_comment_id(), 'liked_count', true)) { $users_who_like = array_keys(bp_activity_get_meta(bp_get_activity_comment_id(), 'liked_count', true)); $liked_count = count($users_who_like); } if (!bp_like_is_liked(bp_get_activity_comment_id(), 'activity_comment', get_current_user_id())) { ?> <a href="#" class="acomment-reply bp-primary-action like" id="like-activity-<?php echo bp_get_activity_comment_id(); ?> " title="<?php echo bp_like_get_text('like_this_item'); ?> "><?php echo bp_like_get_text('like'); if ($liked_count) { echo ' <span><small>' . $liked_count . '</small></span>'; } ?> </a> <?php } else { ?> <a href="#" class="acomment-reply bp-primary-action unlike" id="unlike-activity-<?php echo bp_get_activity_comment_id(); ?> " title="<?php echo bp_like_get_text('unlike_this_item'); ?> "><?php echo bp_like_get_text('unlike'); if ($liked_count) { echo ' <span><small>' . $liked_count . '</small></span>'; } ?> </a> <?php } } }
function select_cover_for_group($activity_id) { global $bp; $group_id = $bp->groups->current_group->id; $activity_id = $_POST['activity_id']; $attachment_id = bp_activity_get_meta($activity_id, 'all_bp_cover_group', true); $fileurl = wp_get_attachment_image_src($attachment_id, 'full'); groups_update_groupmeta($group_id, 'bp_cover_group', $fileurl[0]); groups_update_groupmeta($group_id, 'bp_cover_group_position', 0); /*groups_record_activity( array( 'action' => sprintf( __( '%s changed their cover group %s', 'bp-cover' ), bp_core_get_userlink( $bp->loggedin_user->id ), '<a href="' . bp_get_group_permalink( $group ) . '">' . esc_attr( $group->name ) . '</a>') , 'type' => 'cover_changed', 'item_id' => $group_id, 'content' =>bp_cover_group_get_image_scr() , 'item_id' => $group_id, ) );*/ }
/** * Processes images-type shortcode and create proper markup. * Relies on ./forms/images_tag_template.php for markup rendering. */ function process_images_tag($atts, $content) { $images = self::extract_images($content); //return var_export($images,1); $activity_id = bp_get_activity_id(); global $blog_id; $activity_blog_id = $blog_id; $use_thickbox = defined('BPFB_USE_THICKBOX') ? esc_attr(BPFB_USE_THICKBOX) : 'thickbox'; if ($activity_id) { $activity_blog_id = bp_activity_get_meta($activity_id, 'bpfb_blog_id'); } $template = locate_template(array('images_tag_template.php')); if (empty($template)) { $template = BPFB_PLUGIN_BASE_DIR . '/lib/forms/images_tag_template.php'; } ob_start(); @(include $template); $out = ob_get_clean(); return $out; }
/** * Attach to the activities template the reshare datas * * @package BP Reshare * @since 1.0 * * @global $activities_template * @param boolean $has_activities * @param BP_Activity_Template $activities_template * @param array $template_args * @uses buddyreshare_can_reshare() to check if the activity can be reshared * @uses bp_activity_get_meta() to fecth the number of reshares of this activity * @uses buddyreshare_get_class() to eventually add the reshared class * @return boolean $has_activities */ function buddyreshare_extend_activities_template($has_activities = false, $activities_template = null, $template_args = array()) { global $activities_template; if (empty($has_activities) || empty($activities_template)) { return $has_activities; } foreach ($activities_template->activities as $activity) { $activity->reshares = new StdClass(); $activity->reshares->can_reshare = buddyreshare_can_reshare($activity); /* Reshare count */ $activity_first_id = $activity->id; if ('reshare_update' == $activity->type) { $activity_first_id = $activity->secondary_item_id; } $activity->reshares->activity_id = $activity_first_id; $rs_count = bp_activity_get_meta($activity_first_id, 'reshared_count'); $rs_count = !empty($rs_count) ? $rs_count : 0; $activity->reshares->count = $rs_count; $activity->reshares->css_class = buddyreshare_get_class($activity, $activity_first_id); } return $has_activities; }
function bp_checkins_attach_thumb($activity_content) { $activity_id = bp_get_activity_id(); $pictures = bp_activity_get_meta($activity_id, 'bpci_picture'); if ($pictures) { foreach ($pictures as $pic) { if ($pic->width == 100) { $src["100"] = $pic->url; } if ($pic->width == 960) { $src["960"] = $pic->url; } } if ($src) { $image = '<a href="' . esc_attr($src["960"]) . '" class="bp-ci-zoompic align-left"><img src="' . esc_attr($src["100"]) . '" width="100px" alt="' . __('Thumbnail', 'bp-checkins') . '" class="align-left thumbnail" /></a>'; return $image . $activity_content; } else { return $activity_content; } } else { return $activity_content; } }
/** * Formats single activity comment entries to use the blog comment action. * * This is only done if the activity comment is associated with a blog comment. * * @since BuddyPress (2.0.1) * * @param string $retval The activity action * @param BP_Activity_Activity $activity * @return string */ function bp_blogs_activity_comment_single_action( $retval, $activity ) { if ( 'activity_comment' !== $activity->type ) { return $retval; } $blog_comment_id = bp_activity_get_meta( $activity->id, 'bp_blogs_post_comment_id' ); if ( ! empty( $blog_comment_id ) ) { // fetch the parent blog post activity item $parent_blog_post_activity = new BP_Activity_Activity( $activity->item_id ); // fake a 'new_blog_comment' activity object $object = $activity; // override 'item_id' to use blog ID $object->item_id = $parent_blog_post_activity->item_id; // override 'secondary_item_id' to use comment ID $object->secondary_item_id = $blog_comment_id; // now format the activity action using the 'new_blog_comment' action callback $retval = bp_blogs_format_activity_action_new_blog_comment( '', $object ); } return $retval; }
function migrate_single_media($result, $album = false) { $blog_id = get_current_blog_id(); $old = $result; if (function_exists('bp_core_get_table_prefix')) { $bp_prefix = bp_core_get_table_prefix(); } else { $bp_prefix = ''; } global $wpdb; if (false !== $album && !is_object($result)) { $id = $wpdb->get_var($wpdb->prepare("select ID from {$this->bmp_table} where media_id = %d", $result)); if (null == $id) { $sql = "select\n a.post_id as 'post_id',\n a.meta_value as 'privacy',\n b.meta_value as 'context_id',\n c.meta_value as 'activity_id',\n p.post_type,\n p.post_mime_type,\n p.post_author as 'media_author',\n p.post_title as 'media_title',\n p.post_parent as 'parent'\n from\n {$wpdb->postmeta} a\n left join\n {$wpdb->postmeta} b ON ((a.post_id = b.post_id)\n and (b.meta_key = 'bp-media-key'))\n left join\n {$wpdb->postmeta} c ON (a.post_id = c.post_id)\n and (c.meta_key = 'bp_media_child_activity')\n left join\n {$wpdb->posts} p ON (a.post_id = p.ID)\n where\n a.post_id = %d and (NOT p.ID IS NULL)\n and a.meta_key = 'bp_media_privacy'"; $result = $wpdb->get_row($wpdb->prepare($sql, $result)); } else { return $id; } } if (!isset($result) || !isset($result->post_id)) { return $old; } $media_id = $result->post_id; if (intval($result->context_id) > 0) { $media_context = 'profile'; $prefix = 'users/' . abs(intval($result->context_id)); } else { $media_context = 'group'; $prefix = bp_get_groups_root_slug() . abs(intval($result->context_id)); } $old_type = ''; if ('attachment' != $result->post_type) { $media_type = 'album'; } else { $mime_type = strtolower($result->post_mime_type); $old_type = ''; if (0 === strpos($mime_type, 'image')) { $media_type = 'photo'; $old_type = 'photos'; } else { if (0 === strpos($mime_type, 'audio')) { $media_type = 'music'; $old_type = 'music'; } else { if (0 === strpos($mime_type, 'video')) { $media_type = 'video'; $old_type = 'videos'; } else { $media_type = 'other'; } } } } $activity_data = $wpdb->get_row($wpdb->prepare("select * from {$bp_prefix}bp_activity where id= %d", $result->activity_id)); if ('album' != $media_type) { $this->importmedia($media_id, $prefix); } if ($this->table_exists($bp_prefix . 'bp_activity') && class_exists('BP_Activity_Activity')) { $bp_activity = new BP_Activity_Activity(); $activity_sql = $wpdb->prepare("SELECT\n *\n FROM\n {$bp_prefix}bp_activity\n where\n id in (select distinct\n a.meta_value\n from\n {$wpdb->postmeta} a\n left join\n {$wpdb->posts} p ON (a.post_id = p.ID)\n where\n (NOT p.ID IS NULL) and p.ID = %d\n and a.meta_key = 'bp_media_child_activity')", $media_id); $all_activity = $wpdb->get_results($activity_sql); remove_all_actions('wp_insert_comment'); foreach ($all_activity as $activity) { $comments = $bp_activity->get_activity_comments($activity->id, $activity->mptt_left, $activity->mptt_right); $exclude = get_post_meta($media_id, 'rtmedia_imported_activity', true); if (!is_array($exclude)) { $exclude = array(); } if ($comments) { $this->insert_comment($media_id, $comments, $exclude); } } } if (0 !== intval($result->parent)) { $album_id = $this->migrate_single_media($result->parent, true); } else { $album_id = 0; } if (function_exists('bp_activity_get_meta')) { $likes = bp_activity_get_meta($result->activity_id, 'favorite_count'); } else { $likes = 0; } $wpdb->insert($this->bmp_table, array('blog_id' => $blog_id, 'media_id' => $media_id, 'media_type' => $media_type, 'context' => $media_context, 'context_id' => abs(intval($result->context_id)), 'activity_id' => $result->activity_id, 'privacy' => intval($result->privacy) * 10, 'media_author' => $result->media_author, 'media_title' => $result->media_title, 'album_id' => $album_id, 'likes' => $likes), array('%d', '%d', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d')); $last_id = $wpdb->insert_id; // Photo tag meta migration //$photo_tag_meta = get_post_meta($media_id, "bp-media-user-tags", true); // if($photo_tag_meta && !empty($photo_tag_meta)){ // $wpdb->insert( // $wpdb->prefix . "rt_rtm_media_meta", array( // 'media_id' => $media_id, // 'meta_key' => "user-tags", // "meta_value" => maybe_serialize($photo_tag_meta)), array('%d', '%s', '%s')); // } if ('album' != $media_type && function_exists('bp_core_get_user_domain') && $activity_data) { if (function_exists('bp_core_get_table_prefix')) { $bp_prefix = bp_core_get_table_prefix(); } else { $bp_prefix = ''; } $activity_data->old_primary_link = $activity_data->primary_link; $parent_link = get_rtmedia_user_link($activity_data->user_id); $activity_data->primary_link = $parent_link . RTMEDIA_MEDIA_SLUG . '/' . $last_id; $this->search_and_replace($activity_data->old_primary_link, $activity_data->primary_link); $activity_data->action = str_replace($activity_data->old_primary_link, $activity_data->primary_link, $activity_data->action); $activity_data->content = str_replace($activity_data->old_primary_link, $activity_data->primary_link, $activity_data->content); global $last_baseurl, $last_newurl; $replace_img = $last_newurl; //$last_baseurl . "rtMedia/$prefix/"; if (false === strpos($activity_data->content, $replace_img)) { $activity_data->content = str_replace($last_baseurl, $replace_img, $activity_data->content); } global $wpdb; $wpdb->update($bp_prefix . 'bp_activity', array('primary_link' => $activity_data->primary_link, 'action' => $activity_data->action, 'content' => $activity_data->content), array('id' => $activity_data->id)); } else { if ('group' == $media_context) { $activity_data->old_primary_link = $activity_data->primary_link; $parent_link = get_rtmedia_group_link(abs(intval($result->context_id))); $parent_link = trailingslashit($parent_link); $activity_data->primary_link = trailingslashit($parent_link . RTMEDIA_MEDIA_SLUG . '/' . $last_id); $this->search_and_replace($activity_data->old_primary_link, $activity_data->primary_link); } else { $activity_data->old_primary_link = $activity_data->primary_link; $parent_link = get_rtmedia_user_link($activity_data->user_id); $parent_link = trailingslashit($parent_link); $activity_data->primary_link = trailingslashit($parent_link . RTMEDIA_MEDIA_SLUG . '/' . $last_id); $this->search_and_replace($activity_data->old_primary_link, $activity_data->primary_link); } } if ('' != $old_type) { if ('group' == $media_context) { $parent_link = get_rtmedia_group_link(abs(intval($result->context_id))); $parent_link = trailingslashit($parent_link); $this->search_and_replace(trailingslashit($parent_link . $old_type . '/' . $media_id), trailingslashit($parent_link . RTMEDIA_MEDIA_SLUG . '/' . $last_id)); } else { $parent_link = get_rtmedia_user_link($activity_data->user_id); $parent_link = trailingslashit($parent_link); $this->search_and_replace(trailingslashit($parent_link . $old_type . '/' . $media_id), trailingslashit($parent_link . RTMEDIA_MEDIA_SLUG . '/' . $last_id)); } } return $last_id; }
function bpgr_get_review_rating($review_id = false) { global $activities_template; if (!$review_id) { $rating = isset($activities_template->activity->rating) ? $activities_template->activity->rating : ''; } else { $rating = bp_activity_get_meta($review_id, 'bpgr_rating'); } return apply_filters('bpgr_review_rating', $rating, $review_id); }
/** * Get an activity item's Akismet history * * @param int $activity_id Activity item ID * @return array The activity item's Akismet history * @since BuddyPress (1.6) */ public function get_activity_history($activity_id = 0) { $history = bp_activity_get_meta($activity_id, '_bp_akismet_history'); if ($history === false) { $history = array(); } // Sort it by the time recorded usort($history, 'akismet_cmp_time'); return $history; }
/** * Fetch an activity item's cached embeds. * * Used during {@link BP_Embed::parse_oembed()} via {@link bp_activity_embed()}. * * @since BuddyPress (1.5.0) * * @see BP_Embed::parse_oembed() * @uses bp_activity_get_meta() * * @param string $cache An empty string passed by BP_Embed::parse_oembed() for * functions like this one to filter. * @param int $id The ID of the activity item. * @param string $cachekey The cache key generated in BP_Embed::parse_oembed(). * @return mixed The cached embeds for this activity item. */ function bp_embed_activity_cache($cache, $id, $cachekey) { return bp_activity_get_meta($id, $cachekey); }
/** * Update entity custom fields */ public function updateCustomFields($identifier, $likes, $dislikes, $url = '') { global $wpdb; $likebtn_entities = _likebtn_get_entities(true, true); preg_match("/^(.*)_(\\d+)\$/", $identifier, $identifier_parts); list($entity_name, $entity_id) = $this->parseIdentifier($identifier); $likes_minus_dislikes = null; if ($likes !== null && $dislikes !== null) { $likes_minus_dislikes = $likes - $dislikes; } $entity_updated = false; if (array_key_exists($entity_name, $likebtn_entities) && is_numeric($entity_id)) { // set Custom fields switch ($entity_name) { case LIKEBTN_ENTITY_COMMENT: // Comment $comment = get_comment($entity_id); // check if post exists and is not revision if (!empty($comment) && $comment->comment_type != 'revision') { if ($likes !== null) { if (count(get_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES)) > 1) { delete_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES); add_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes, true); } else { update_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes); } } if ($dislikes !== null) { if (count(get_comment_meta($entity_id, LIKEBTN_META_KEY_DISLIKES)) > 1) { delete_comment_meta($entity_id, LIKEBTN_META_KEY_DISLIKES); add_comment_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes, true); } else { update_comment_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes); } } if ($likes_minus_dislikes !== null) { if (count(get_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES)) > 1) { delete_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES); add_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes, true); } else { update_comment_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes); } } $entity_updated = true; } break; case LIKEBTN_ENTITY_BP_ACTIVITY_POST: case LIKEBTN_ENTITY_BP_ACTIVITY_UPDATE: case LIKEBTN_ENTITY_BP_ACTIVITY_COMMENT: case LIKEBTN_ENTITY_BP_ACTIVITY_TOPIC: if (!_likebtn_is_bp_active()) { break; } // BuddyPress Activity /*$bp_activity_list = bp_activity_get(array( 'show_hidden' => true, 'spam' => 'all', //'in' => array((int)$entity_id) ));*/ $bp_activity = $wpdb->get_row("\n SELECT id\n FROM " . $wpdb->prefix . "bp_activity\n WHERE id = {$entity_id}\n "); if (!empty($bp_activity)) { if ($likes !== null) { if (count(bp_activity_get_meta($entity_id, LIKEBTN_META_KEY_LIKES)) > 1) { bp_activity_delete_meta($entity_id, LIKEBTN_META_KEY_LIKES); bp_activity_add_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes, true); } else { bp_activity_update_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes); } } if ($dislikes !== null) { if (count(bp_activity_get_meta($entity_id, LIKEBTN_META_KEY_DISLIKES)) > 1) { bp_activity_delete_meta($entity_id, LIKEBTN_META_KEY_DISLIKES); bp_activity_add_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes, true); } else { bp_activity_update_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes); } } if ($likes_minus_dislikes !== null) { if (count(bp_activity_get_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES)) > 1) { bp_activity_delete_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES); bp_activity_add_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes, true); } else { bp_activity_update_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes); } } $entity_updated = true; } break; case LIKEBTN_ENTITY_BP_MEMBER: // BuddyPress Member Profile $entity_updated = _likebtn_save_bp_member_votes($entity_id, $likes, $dislikes, $likes_minus_dislikes); break; case LIKEBTN_ENTITY_BBP_USER: // bbPress Member Profile $entity_updated = _likebtn_save_user_votes($entity_id, $likes, $dislikes, $likes_minus_dislikes); break; case LIKEBTN_ENTITY_USER: // BuddyPress Member Profile $entity_updated = _likebtn_save_bp_member_votes($entity_id, $likes, $dislikes, $likes_minus_dislikes); // General user and bbPress Member Profile $entity_updated = $entity_updated || _likebtn_save_user_votes($entity_id, $likes, $dislikes, $likes_minus_dislikes); break; default: // Post $post = get_post($entity_id); // check if post exists and is not revision if (!empty($post) && !empty($post->post_type) && $post->post_type != 'revision') { if ($likes !== null) { if (count(get_post_meta($entity_id, LIKEBTN_META_KEY_LIKES)) > 1) { delete_post_meta($entity_id, LIKEBTN_META_KEY_LIKES); add_post_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes, true); } else { update_post_meta($entity_id, LIKEBTN_META_KEY_LIKES, $likes); } } if ($dislikes !== null) { if (count(get_post_meta($entity_id, LIKEBTN_META_KEY_DISLIKES)) > 1) { delete_post_meta($entity_id, LIKEBTN_META_KEY_DISLIKES); add_post_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes, true); } else { update_post_meta($entity_id, LIKEBTN_META_KEY_DISLIKES, $dislikes); } } if ($likes_minus_dislikes !== null) { if (count(get_post_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES)) > 1) { delete_post_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES); add_post_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes, true); } else { update_post_meta($entity_id, LIKEBTN_META_KEY_LIKES_MINUS_DISLIKES, $likes_minus_dislikes); } } $entity_updated = true; } break; } } // Check custom item $item_db = $wpdb->get_row($wpdb->prepare("SELECT likes, dislikes\n FROM " . $wpdb->prefix . LIKEBTN_TABLE_ITEM . "\n WHERE identifier = %s", $identifier)); // Custom identifier if ($item_db || !$entity_updated) { if ($likes === null || $dislikes === null) { if ($item_db) { if ($likes === null) { $likes = $item_db->likes; } if ($dislikes === null) { $dislikes = $item_db->dislikes; } } } if ($likes !== null && $dislikes !== null) { $likes_minus_dislikes = $likes - $dislikes; } $item_data = array('identifier' => $identifier, 'likes' => $likes, 'dislikes' => $dislikes, 'likes_minus_dislikes' => $likes_minus_dislikes, 'identifier_hash' => md5($identifier)); if ($url) { $item_data['url'] = $url; } $update_where = array('identifier' => $item_data['identifier']); $update_result = $wpdb->update($wpdb->prefix . LIKEBTN_TABLE_ITEM, $item_data, $update_where); if ($update_result) { $entity_updated = true; } else { $insert_result = $wpdb->insert($wpdb->prefix . LIKEBTN_TABLE_ITEM, $item_data); if ($insert_result) { $entity_updated = true; } } } return $entity_updated; }
/** * Formats single activity comment entries to use the blog comment action. * * This is only done if the activity comment is associated with a blog comment. * * @since 2.0.1 * * @param string $retval The activity action. * @param BP_Activity_Activity $activity Activity object. * @return string */ function bp_blogs_activity_comment_single_action($retval, $activity) { if ('activity_comment' !== $activity->type) { return $retval; } if (bp_disable_blogforum_comments()) { return $retval; } $parent_activity = new BP_Activity_Activity($activity->item_id); if (!isset($parent_activity->type)) { return $retval; } $post_type = bp_activity_post_type_get_tracking_arg($parent_activity->type, 'post_type'); if (!$post_type) { return $retval; } $blog_comment_id = bp_activity_get_meta($activity->id, "bp_blogs_{$post_type}_comment_id"); if (!empty($blog_comment_id)) { $bp = buddypress(); // Check if a comment action id is set for the parent activity $comment_action_id = bp_activity_post_type_get_tracking_arg($parent_activity->type, 'comment_action_id'); // Use the action string callback for the activity type if (!empty($comment_action_id)) { // Fake a 'new_{post_type}_comment' by cloning the activity object. $object = clone $activity; // Set the type of the activity to be a comment about a post type $object->type = $comment_action_id; // Use the blog ID as the item_id. $object->item_id = $parent_activity->item_id; // Use comment ID as the secondary_item_id. $object->secondary_item_id = $blog_comment_id; // Get the format callback for this activity comment $format_callback = bp_activity_post_type_get_tracking_arg($comment_action_id, 'format_callback'); // now format the activity action using the 'new_{post_type}_comment' action callback if (is_callable($format_callback)) { $retval = call_user_func_array($format_callback, array('', $object)); } } } return $retval; }
/** * This filters pics content when off, when reading an item it will convert it to the image filename * * @since BuddyBoss 2.0 */ function buddyboss_pics_off_read_content_filter($filter) { global $bboss_pics_img_size, $activities_template; $curr_id = $activities_template->current_activity; $act_id = $activities_template->activities[$curr_id]->id; $bbpics_aid = bp_activity_get_meta($act_id, 'bboss_pics_aid'); $image = wp_get_attachment_image_src($bbpics_aid, 'full'); if ($image !== false && is_array($image) && count($image) > 2) { $src = $image[0]; $w = $image[1]; $h = $image[2]; $filter .= '<a href="' . $image[0] . '" target="_blank">' . basename($image[0]) . '</a>'; } return $filter; }
/** * Deletes associated media entry and its files upon deletion of an activity. * * @since BP Media 2.0 */ function bp_media_delete_activity_handler($activity_id, $user) { global $bp_media_count; bp_media_init_count(bp_loggedin_user_id()); $post_id = bp_activity_get_meta($activity_id, 'bp_media_parent_post'); $type = get_post_meta($post_id, 'bp_media_type', true); switch ($type) { case 'image': $bp_media_count['images'] = intval($bp_media_count['images']) - 1; break; case 'video': $bp_media_count['videos'] = intval($bp_media_count['videos']) - 1; break; case 'audio': $bp_media_count['audio'] = intval($bp_media_count['audio']) - 1; break; } $attachment_id = get_post_meta($post_id, 'bp_media_child_attachment', true); wp_delete_attachment($attachment_id, true); wp_delete_post($post_id, true); bp_update_user_meta(bp_loggedin_user_id(), 'bp_media_count', $bp_media_count); }
function dwqa_replace_activity_meta() { global $activities_template; $blog_url = bp_blogs_get_blogmeta($activity->item_id, 'url'); $blog_name = bp_blogs_get_blogmeta($activity->item_id, 'name'); if (empty($blog_url) || empty($blog_name)) { $blog_url = get_home_url($activity->item_id); $blog_name = get_blog_option($activity->item_id, 'blogname'); bp_blogs_update_blogmeta($activity->item_id, 'url', $blog_url); bp_blogs_update_blogmeta($activity->item_id, 'name', $blog_name); } $post_url = add_query_arg('p', $activities_template->activity->secondary_item_id, trailingslashit($blog_url)); $post_title = bp_activity_get_meta($activities_template->activity->id, 'post_title'); if (empty($post_title)) { $post = get_post($activities_template->activity->secondary_item_id); if (is_a($post, 'WP_Post')) { $post_title = $post->post_title; bp_activity_update_meta($activities_template->activity->id, 'post_title', $post_title); } } $post_link = '<a href="' . $post_url . '">' . $post_title . '</a>'; $user_link = bp_core_get_userlink($activities_template->activity->user_id); if ($activities_template->activity->type == 'new_question') { $action = sprintf(__('%1$s asked a new question: %2$s', 'dwqa'), $user_link, $post_link); } elseif ($activities_template->activity->type == 'new_answer') { $action = sprintf(__('%1$s answered the question: %2$s', 'dwqa'), $user_link, $post_link); } elseif ($activities_template->activity->type == 'comment_question') { $action = sprintf(__('%1$s commented on the question: %2$s', 'dwqa'), $user_link, $post_link); } elseif ($activities_template->activity->type == 'comment_answer') { $action = sprintf(__('%1$s commented on the answer at: %2$s', 'dwqa'), $user_link, $post_link); } else { $action = $activities_template->activity->action; } // Strip any legacy time since placeholders from BP 1.0-1.1 $content = str_replace('<span class="time-since">%s</span>', '', $content); // Insert the time since. $time_since = apply_filters_ref_array('bp_activity_time_since', array('<span class="time-since">' . bp_core_time_since($activities_template->activity->date_recorded) . '</span>', &$activities_template->activity)); // Insert the permalink if (!bp_is_single_activity()) { $content = apply_filters_ref_array('bp_activity_permalink', array(sprintf('%1$s <a href="%2$s" class="view activity-time-since" title="%3$s">%4$s</a>', $content, bp_activity_get_permalink($activities_template->activity->id, $activities_template->activity), esc_attr__('View Discussion', 'buddypress'), $time_since), &$activities_template->activity)); } else { $content .= str_pad($time_since, strlen($time_since) + 2, ' ', STR_PAD_BOTH); } echo $action . ' ' . $content; // echo 'abc'; // echo $activities_template->activity->content; }
function bp_like_get_some_likes($number = '') { // $number is max likers it will output. Currently only takes 2. // need to decide if checking number of likes here, or in another fucntion, or in call to here.. $bp_like_id = bp_get_activity_id(); $users_who_like = array_keys(bp_activity_get_meta($bp_like_id, 'liked_count', true)); if (count($users_who_like) == 0) { // if no user likes this. } elseif (count($users_who_like) == 1) { // If only one person likes the current item. $string = '<p class="users-who-like" id="users-who-like-'; $string .= $bp_like_id; $string .= '">%s liked this.</p>'; $one = bp_core_get_userlink($users_who_like[0]); printf($string, $one); } elseif (count($users_who_like) == 2) { // If two people like the current item. $string = '<p class="users-who-like" id="users-who-like-'; $string .= $bp_like_id; $string .= '">%s and %s liked this.</p>'; $one = bp_core_get_userlink($users_who_like[0]); $two = bp_core_get_userlink($users_who_like[1]); printf($string, $one, $two); } elseif (count($users_who_like) > 2) { $string = '<p class="users-who-like" id="users-who-like-'; $string .= $bp_like_id; $string .= '">%s, %s and %s others liked this.</p>'; $others = count($users_who_like); // output last two people to like (2 at end of array) $one = bp_core_get_userlink($users_who_like[0]); $two = bp_core_get_userlink($users_who_like[1]); // $users_who_like will always be greater than 2. if ($users_who_like == 3) { $others = $others - 1; } else { $others = $others - 2; } printf($string, $one, $two, $others); } }
function update_activity_after_thumb_set($id) { $model = new RTMediaModel(); $mediaObj = new RTMediaMedia(); $media = $model->get(array('id' => $id)); $privacy = $media[0]->privacy; $activity_id = rtmedia_activity_id($id); if (!empty($activity_id)) { $same_medias = $mediaObj->model->get(array('activity_id' => $activity_id)); $update_activity_media = array(); foreach ($same_medias as $a_media) { $update_activity_media[] = $a_media->id; } $objActivity = new RTMediaActivity($update_activity_media, $privacy, false); global $wpdb, $bp; $activity_old_content = bp_activity_get_meta($activity_id, "bp_old_activity_content"); $activity_text = bp_activity_get_meta($activity_id, "bp_activity_text"); if ($activity_old_content == "") { // get old activity content and save in activity meta $activity_get = bp_activity_get_specific(array('activity_ids' => $activity_id)); $activity = $activity_get['activities'][0]; $activity_body = $activity->content; bp_activity_update_meta($activity_id, "bp_old_activity_content", $activity_body); //extract activity text from old content $activity_text = strip_tags($activity_body, '<span>'); $activity_text = explode("</span>", $activity_text); $activity_text = strip_tags($activity_text[0]); bp_activity_update_meta($activity_id, "bp_activity_text", $activity_text); } $activity_text = bp_activity_get_meta($activity_id, "bp_activity_text"); $objActivity->activity_text = $activity_text; $wpdb->update($bp->activity->table_name, array("type" => "rtmedia_update", "content" => $objActivity->create_activity_html()), array("id" => $activity_id)); } }
public function post_to_marker($post) { $body = '<p>' . $post->content . '</p>'; $avatar = bp_core_fetch_avatar(array('object' => 'user', 'item_id' => $post->user_id, 'width' => 32, 'height' => 32, 'html' => false)); return array('title' => $post->action, 'body' => $body, 'icon' => $avatar, 'position' => array(bp_activity_get_meta($post->id, '_agm_latitude', true), bp_activity_get_meta($post->id, '_agm_longitude', true)), 'disposition' => 'activity_marker'); }
/** * Returns the reshared css class in case an activity has been reshared by the user * * @package BP Reshare * @since 1.0 * * @param BP_Activity_Activity $activity the activity object * @param integer $activity_first_id the reshared activity id * @uses bp_loggedin_user_id() to get current user id * @uses bp_activity_get_meta() to get some meta infos about the activity * @uses bp_activity_get_specific() to fetch the specific activity * @return string the reshared css class */ function buddyreshare_get_class($activity = null, $activity_first_id = 0) { if (empty($activity)) { return false; } if (bp_loggedin_user_id() == $activity->user_id) { return 'reshared'; } $reshared_by = bp_activity_get_meta($activity_first_id, 'reshared_by'); if (is_array($reshared_by) && in_array(bp_loggedin_user_id(), $reshared_by)) { return 'reshared'; } // is the loggedin_user the original author ? $originally_shared = bp_activity_get_specific(array('activity_ids' => $activity_first_id)); if ($originally_shared['activities'][0]->user_id == bp_loggedin_user_id()) { return 'reshared'; } }
/** * */ function add_sticky_icon() { if (bp_is_group()) { if (bp_group_is_admin()) { $nonce = wp_create_nonce('pin-activity-nonce'); $sticky = bp_activity_get_meta(bp_get_activity_id(), 'rw_sticky_activity'); $title = __('Pin activity', RW_Sticky_Activity::$textdomain); $class = "sa-button-pin notpinned"; if ($sticky == 1) { $title = __('Unpin activity', RW_Sticky_Activity::$textdomain); $class = "sa-button-unpin pinned"; } ?> <a href="" class="fa fa-map-marker <?php echo $class; ?> " title="<?php echo $title; ?> " data-post-nonces="<?php echo $nonce; ?> " data-post-id="<?php echo bp_get_activity_id(); ?> "></a> <?php } } }
function save_single_edit() { add_filter('intermediate_image_sizes_advanced', array($this, 'filter_image_sizes_details')); global $rtmedia_query; $nonce = $_POST['rtmedia_media_nonce']; if (wp_verify_nonce($nonce, 'rtmedia_' . $rtmedia_query->action_query->id)) { /* * Need this file in order to use `wp_generate_attachment_metadata` function */ require_once ABSPATH . 'wp-admin/includes/image.php'; do_action('rtmedia_before_update_media', $rtmedia_query->action_query->id); $data_array = array('media_title', 'description', 'privacy'); //for medias except album and playlist, if album_is is found, then update album_id for the media also if (isset($_POST['album_id']) && $_POST['album_id'] != '') { $data_array[] = 'album_id'; } $data = rtmedia_sanitize_object($_POST, $data_array); $media = new RTMediaMedia(); $image_path = get_attached_file($rtmedia_query->media[0]->media_id); if ($image_path && $rtmedia_query->media[0]->media_type == "photo") { $image_meta_data = wp_generate_attachment_metadata($rtmedia_query->media[0]->media_id, $image_path); wp_update_attachment_metadata($rtmedia_query->media[0]->media_id, $image_meta_data); } $state = $media->update($rtmedia_query->action_query->id, $data, $rtmedia_query->media[0]->media_id); if (isset($_POST['rtmedia-filepath-old'])) { $is_valid_url = preg_match("/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]/i", $_POST['rtmedia-filepath-old']); if ($is_valid_url && function_exists('bp_is_active') && bp_is_active('activity')) { $thumbnailinfo = wp_get_attachment_image_src($rtmedia_query->media[0]->media_id, 'rt_media_activity_image'); $activity_id = rtmedia_activity_id($rtmedia_query->media[0]->id); if ($rtmedia_query->media[0]->media_id && !empty($activity_id)) { global $wpdb, $bp; if (!empty($bp->activity)) { $related_media_data = $media->model->get(array('activity_id' => $activity_id)); $related_media = array(); foreach ($related_media_data as $activity_media) { $related_media[] = $activity_media->id; } $activity_text = bp_activity_get_meta($activity_id, 'bp_activity_text'); $activity = new RTMediaActivity($related_media, 0, $activity_text); $activity_content_new = $activity->create_activity_html(); // Replacing the filename with new effected filename $activity_content = str_replace($_POST['rtmedia-filepath-old'], $thumbnailinfo[0], $activity_content_new); $wpdb->update($bp->activity->table_name, array('content' => $activity_content), array('id' => $activity_id)); } } } } $rtmedia_query->query(false); global $rtmedia_points_media_id; $rtmedia_points_media_id = $rtmedia_query->action_query->id; do_action('rtmedia_after_edit_media', $rtmedia_query->action_query->id, $state); //refresh $rtMediaNav = new RTMediaNav(); if ($rtmedia_query->media[0]->context == "group") { $rtMediaNav->refresh_counts($rtmedia_query->media[0]->context_id, array("context" => $rtmedia_query->media[0]->context, 'context_id' => $rtmedia_query->media[0]->context_id)); } else { $rtMediaNav->refresh_counts($rtmedia_query->media[0]->media_author, array("context" => "profile", 'media_author' => $rtmedia_query->media[0]->media_author)); } $state = apply_filters('rtmedia_single_edit_state', $state); if ($state !== false) { add_action("rtmedia_before_template_load", array(&$this, "media_update_success_messege")); } else { add_action("rtmedia_before_template_load", array(&$this, "media_update_success_error")); } } else { _e('Ooops !!! Invalid access. No nonce was found !!', 'buddypress-media'); } remove_filter('intermediate_image_sizes_advanced', array($this, 'filter_image_sizes_details')); }
/** * Update `bp_latest_update` user meta with lasted public update. * * @param $content * @param $user_id * @param $activity_id */ function manage_user_last_activity_update($content, $user_id, $activity_id) { global $wpdb, $bp; // do not proceed if not allowed if (!apply_filters('rtm_manage_user_last_activity_update', true, $activity_id)) { return; } $rtm_activity_model = new RTMediaActivityModel(); $rtm_activity_obj = $rtm_activity_model->get(array('activity_id' => $activity_id)); if (!empty($rtm_activity_obj)) { if (isset($rtm_activity_obj[0]->privacy) && $rtm_activity_obj[0]->privacy > 0) { $get_columns = array('activity_id' => array('compare' => '<', 'value' => $activity_id), 'user_id' => $user_id, 'privacy' => array('compare' => '<=', 'value' => 0)); // get user's latest public activity update $new_last_activity_obj = $rtm_activity_model->get($get_columns, 0, 1); if (!empty($new_last_activity_obj)) { // latest public activity id $public_activity_id = $new_last_activity_obj[0]->activity_id; // latest public activity content $activity_content = bp_activity_get_meta($public_activity_id, 'bp_activity_text'); if (empty($activity_content)) { $activity_content = $wpdb->get_var("SELECT content FROM {$bp->activity->table_name} WHERE id = {$public_activity_id}"); } $activity_content = apply_filters('bp_activity_latest_update_content', $activity_content, $activity_content); // update user's latest update bp_update_user_meta($user_id, 'bp_latest_update', array('id' => $public_activity_id, 'content' => $activity_content)); } } } }