本文整理汇总了PHP中bp_core_get_userid函数的典型用法代码示例。如果您正苦于以下问题:PHP bp_core_get_userid函数的具体用法?PHP bp_core_get_userid怎么用?PHP bp_core_get_userid使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bp_core_get_userid函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: bp_activity_at_message_notification
function bp_activity_at_message_notification( $content, $poster_user_id, $activity_id ) {
global $bp;
/* Scan for @username strings in an activity update. Notify each user. */
$pattern = '/[@]+([A-Za-z0-9-_\.]+)/';
preg_match_all( $pattern, $content, $usernames );
/* Make sure there's only one instance of each username */
if ( !$usernames = array_unique( $usernames[1] ) )
return false;
foreach( (array)$usernames as $username ) {
if ( !$receiver_user_id = bp_core_get_userid( $username ) )
continue;
// Now email the user with the contents of the message (if they have enabled email notifications)
if ( 'no' != get_user_meta( $receiver_user_id, 'notification_activity_new_mention', true ) ) {
$poster_name = bp_core_get_user_displayname( $poster_user_id );
$message_link = bp_activity_get_permalink( $activity_id );
$settings_link = bp_core_get_user_domain( $receiver_user_id ) . BP_SETTINGS_SLUG . '/notifications/';
$poster_name = stripslashes( $poster_name );
$content = bp_activity_filter_kses( stripslashes($content) );
// Set up and send the message
$ud = bp_core_get_core_userdata( $receiver_user_id );
$to = $ud->user_email;
$sitename = wp_specialchars_decode( get_blog_option( BP_ROOT_BLOG, 'blogname' ), ENT_QUOTES );
$subject = '[' . $sitename . '] ' . sprintf( __( '%s mentioned you in an update', 'buddypress' ), $poster_name );
$message = sprintf( __(
'%s mentioned you in an update:
"%s"
To view and respond to the message, log in and visit: %s
---------------------
', 'buddypress' ), $poster_name, $content, $message_link );
$message .= sprintf( __( 'To disable these notifications please log in and go to: %s', 'buddypress' ), $settings_link );
/* Send the message */
$to = apply_filters( 'bp_activity_at_message_notification_to', $to );
$subject = apply_filters( 'bp_activity_at_message_notification_subject', $subject, $poster_name );
$message = apply_filters( 'bp_activity_at_message_notification_message', $message, $poster_name, $content, $message_link );
wp_mail( $to, $subject, $message );
}
}
}
示例2: bp_links_at_message_notification
function bp_links_at_message_notification($content, $poster_user_id, $link_id, $activity_id)
{
global $bp;
/* Scan for @username strings in an activity update. Notify each user. */
$pattern = '/[@]+([A-Za-z0-9-_]+)/';
preg_match_all($pattern, $content, $usernames);
/* Make sure there's only one instance of each username */
if (!($usernames = array_unique($usernames[1]))) {
return false;
}
$link = new BP_Links_Link($link_id);
foreach ((array) $usernames as $username) {
if (!($receiver_user_id = bp_core_get_userid($username))) {
continue;
}
if (!bp_links_is_link_visibile($link, $receiver_user_id)) {
continue;
}
// Now email the user with the contents of the message (if they have enabled email notifications)
if ('no' != get_usermeta($user_id, 'notification_activity_new_mention')) {
$poster_name = bp_core_get_user_displayname($poster_user_id);
$message_link = bp_activity_get_permalink($activity_id);
$settings_link = bp_core_get_user_domain($receiver_user_id) . 'settings/notifications/';
// Set up and send the message
$ud = bp_core_get_core_userdata($receiver_user_id);
$to = $ud->user_email;
$subject = '[' . get_blog_option(BP_ROOT_BLOG, 'blogname') . '] ' . sprintf(__('%s mentioned you in the link "%s"', 'buddypress-links'), stripslashes($poster_name), wp_filter_kses(stripslashes($link->name)));
$message = sprintf(__('%s mentioned you in the link "%s":
"%s"
To view and respond to the message, log in and visit: %s
---------------------
', 'buddypress-links'), $poster_name, wp_filter_kses(stripslashes_deep($link->name)), wp_filter_kses(stripslashes_deep($content)), $message_link);
$message .= sprintf(__('To disable these notifications please log in and go to: %s', 'buddypress'), $settings_link);
// Send it
wp_mail($to, $subject, $message);
}
}
}
示例3: dpa_filter_nxt_login_user_id
/**
* For the nxt_login action, manually retrieve the user ID as it won't be conventionally accessible until the next page load.
*
* @param int $user_id
* @param string $action_name
* @param array $action_func_args The action's arguments, from func_get_args().
* @return int|bool User ID or, if false is returned, this Achievement will be skipped.
* @since 2.0.5
*/
function dpa_filter_nxt_login_user_id($user_id, $action_name, $action_func_args)
{
if ('nxt_login' != $action_name) {
return $user_id;
}
if (empty($action_func_args[0]) || is_nxt_error($action_func_args[0])) {
return $user_id;
}
$the_user_id = bp_core_get_userid($action_func_args[0]);
if (!$the_user_id) {
return $user_id;
}
return apply_filters('dpa_filter_nxt_login_user_id', (int) $the_user_id);
}
示例4: bp_core_get_user_displayname
/**
* bp_core_get_user_displayname()
*
* Fetch the display name for a user. This will use the "Name" field in xprofile if it is installed.
* Otherwise, it will fall back to the normal WP display_name, or user_nicename, depending on what has been set.
*
* @package BuddyPress Core
* @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()
* @uses wp_cache_get() Will try and fetch the value from the cache, rather than querying the DB again.
* @uses get_userdata() Fetches the WP userdata for a specific user.
* @uses xprofile_set_field_data() Will update the field data for a user based on field name and user id.
* @uses wp_cache_set() Adds a value to the cache.
* @return str The display name for the user in question.
*/
function bp_core_get_user_displayname( $user_id_or_username ) {
global $bp;
if ( !$user_id_or_username )
return false;
if ( !is_numeric( $user_id_or_username ) )
$user_id = bp_core_get_userid( $user_id_or_username );
else
$user_id = $user_id_or_username;
if ( !$user_id )
return false;
if ( !$fullname = wp_cache_get( 'bp_user_fullname_' . $user_id, 'bp' ) ) {
if ( function_exists('xprofile_install') ) {
$fullname = xprofile_get_field_data( 1, $user_id );
if ( empty($fullname) ) {
$ud = bp_core_get_core_userdata( $user_id );
if ( !empty( $ud->display_name ) )
$fullname = $ud->display_name;
else
$fullname = $ud->user_nicename;
xprofile_set_field_data( 1, $user_id, $fullname );
}
} else {
$ud = bp_core_get_core_userdata($user_id);
if ( !empty( $ud->display_name ) )
$fullname = $ud->display_name;
else
$fullname = $ud->user_nicename;
}
if ( !empty( $fullname ) )
wp_cache_set( 'bp_user_fullname_' . $user_id, $fullname, 'bp' );
}
return apply_filters( 'bp_core_get_user_displayname', $fullname, $user_id );
}
示例5: devb_aawire_update_activity_action
function devb_aawire_update_activity_action($action, $activity)
{
//check if this is a wall post?
if (!bp_activity_get_meta($activity->id, 'is_wire_post', true)) {
return $action;
}
//if we are here, It must be a wire post
//since bp 2.0, I have added a meta key to store the user id on whose wall we are posting
if (!($user_id = bp_activity_get_meta($activity->id, 'wire_user_id', true))) {
//before 2.0, since the id did not exist, we will be using the @mention finding username
$usernames = bp_activity_find_mentions($activity->content);
if (is_array($usernames)) {
$usernames = array_pop($usernames);
}
if ($usernames) {
$user_id = bp_core_get_userid($usernames);
}
}
if (!$user_id) {
//we don't have info about the person on whose wall this poat was made
return $action;
}
//if we are here, let us say something nice really nice
$action = sprintf(__('%s posted on %s\'s wall', 'buddypress'), bp_core_get_userlink($activity->user_id), bp_core_get_userlink($user_id));
return $action;
}
示例6: bp_core_set_uri_globals
//.........这里部分代码省略.........
return false;
}
$wp_rewrite->use_verbose_page_rules = false;
// Find the offset. With $root_profile set, we fudge the offset down so later parsing works.
$slug = !empty($match) ? explode('/', $match->slug) : '';
$uri_offset = empty($root_profile) ? 0 : -1;
// Rejig the offset.
if (!empty($slug) && 1 < count($slug)) {
// Only offset if not on a root profile. Fixes issue when Members page is nested.
if (false === $root_profile) {
array_pop($slug);
$uri_offset = count($slug);
}
}
// Global the unfiltered offset to use in bp_core_load_template().
// To avoid PHP warnings in bp_core_load_template(), it must always be >= 0.
$bp->unfiltered_uri_offset = $uri_offset >= 0 ? $uri_offset : 0;
// We have an exact match.
if (isset($match->key)) {
// Set current component to matched key.
$bp->current_component = $match->key;
// If members component, do more work to find the actual component.
if ('members' == $match->key) {
$after_member_slug = false;
if (!empty($bp_uri[$uri_offset + 1])) {
$after_member_slug = $bp_uri[$uri_offset + 1];
}
// Are we viewing a specific user?
if ($after_member_slug) {
// If root profile, we've already queried for the user.
if ($root_profile instanceof WP_User) {
$bp->displayed_user->id = $root_profile->ID;
// Switch the displayed_user based on compatibility mode.
} elseif (bp_is_username_compatibility_mode()) {
$bp->displayed_user->id = (int) bp_core_get_userid(urldecode($after_member_slug));
} else {
$bp->displayed_user->id = (int) bp_core_get_userid_from_nicename($after_member_slug);
}
}
// Is this a member type directory?
if (!bp_displayed_user_id() && $after_member_slug === apply_filters('bp_members_member_type_base', _x('type', 'member type URL base', 'buddypress')) && !empty($bp_uri[$uri_offset + 2])) {
$matched_types = bp_get_member_types(array('has_directory' => true, 'directory_slug' => $bp_uri[$uri_offset + 2]));
if (!empty($matched_types)) {
$bp->current_member_type = reset($matched_types);
unset($bp_uri[$uri_offset + 1]);
}
}
// If the slug matches neither a member type nor a specific member, 404.
if (!bp_displayed_user_id() && !bp_get_current_member_type() && $after_member_slug) {
// Prevent components from loading their templates.
$bp->current_component = '';
bp_do_404();
return;
}
// If the displayed user is marked as a spammer, 404 (unless logged-in user is a super admin).
if (bp_displayed_user_id() && bp_is_user_spammer(bp_displayed_user_id())) {
if (bp_current_user_can('bp_moderate')) {
bp_core_add_message(__('This user has been marked as a spammer. Only site admins can view this profile.', 'buddypress'), 'warning');
} else {
bp_do_404();
return;
}
}
// Bump the offset.
if (bp_displayed_user_id()) {
if (isset($bp_uri[$uri_offset + 2])) {
$bp_uri = array_merge(array(), array_slice($bp_uri, $uri_offset + 2));
$bp->current_component = $bp_uri[0];
// No component, so default will be picked later.
} else {
$bp_uri = array_merge(array(), array_slice($bp_uri, $uri_offset + 2));
$bp->current_component = '';
}
// Reset the offset.
$uri_offset = 0;
}
}
}
// Determine the current action.
$current_action = isset($bp_uri[$uri_offset + 1]) ? $bp_uri[$uri_offset + 1] : '';
/*
* If a BuddyPress directory is set to the WP front page, URLs like example.com/members/?s=foo
* shouldn't interfere with blog searches.
*/
if (empty($current_action) && !empty($_GET['s']) && 'page' == get_option('show_on_front') && !empty($match->id)) {
$page_on_front = (int) get_option('page_on_front');
if ((int) $match->id === $page_on_front) {
$bp->current_component = '';
return false;
}
}
$bp->current_action = $current_action;
// Slice the rest of the $bp_uri array and reset offset.
$bp_uri = array_slice($bp_uri, $uri_offset + 2);
$uri_offset = 0;
// Set the entire URI as the action variables, we will unset the current_component and action in a second.
$bp->action_variables = $bp_uri;
// Reset the keys by merging with an empty array.
$bp->action_variables = array_merge(array(), $bp->action_variables);
}
示例7: bp_core_get_userlink_by_username
/**
* Return the user link for the user based on the supplied identifier.
*
* @since 1.0.0
*
* @param string $username If BP_ENABLE_USERNAME_COMPATIBILITY_MODE is set,
* this should be user_login, otherwise it should
* be user_nicename.
* @return string|bool The link to the user's domain, false on no match.
*/
function bp_core_get_userlink_by_username($username)
{
if (bp_is_username_compatibility_mode()) {
$user_id = bp_core_get_userid($username);
} else {
$user_id = bp_core_get_userid_from_nicename($username);
}
/**
* Filters the user link for the user based on username.
*
* @since 1.0.1
*
* @param string|bool $value URL for the user if found, otherwise false.
*/
return apply_filters('bp_core_get_userlink_by_username', bp_core_get_userlink($user_id, false, false, true));
}
示例8: bp_core_get_userlink_by_username
/**
* Returns the user link for the user based on the supplied identifier
*
* @param $username str If BP_ENABLE_USERNAME_COMPATIBILITY_MODE is set, this will be user_login, otherwise it will be user_nicename.
* @return str The link to the users home base. False on no match.
*/
function bp_core_get_userlink_by_username($username)
{
if (bp_is_username_compatibility_mode()) {
$user_id = bp_core_get_userid($username);
} else {
$user_id = bp_core_get_userid_from_nicename($username);
}
return apply_filters('bp_core_get_userlink_by_username', bp_core_get_userlink($user_id, false, false, true));
}
示例9: bp_message_get_recipient_tabs
/**
* Output the markup for the message recipient tabs.
*/
function bp_message_get_recipient_tabs()
{
$recipients = explode(' ', bp_get_message_get_recipient_usernames());
foreach ($recipients as $recipient) {
$user_id = bp_is_username_compatibility_mode() ? bp_core_get_userid($recipient) : bp_core_get_userid_from_nicename($recipient);
if (!empty($user_id)) {
?>
<li id="un-<?php
echo esc_attr($recipient);
?>
" class="friend-tab">
<span><?php
echo bp_core_fetch_avatar(array('item_id' => $user_id, 'type' => 'thumb', 'width' => 15, 'height' => 15));
echo bp_core_get_userlink($user_id);
?>
</span>
</li>
<?php
}
}
}
示例10: messages_new_message
/**
* Create a new message.
*
* @since 2.4.0 Added 'error_type' as an additional $args parameter.
*
* @param array|string $args {
* Array of arguments.
* @type int $sender_id Optional. ID of the user who is sending the
* message. Default: ID of the logged-in user.
* @type int $thread_id Optional. ID of the parent thread. Leave blank to
* create a new thread for the message.
* @type array $recipients IDs or usernames of message recipients. If this
* is an existing thread, it is unnecessary to pass a $recipients
* argument - existing thread recipients will be assumed.
* @type string $subject Optional. Subject line for the message. For
* existing threads, the existing subject will be used. For new
* threads, 'No Subject' will be used if no $subject is provided.
* @type string $content Content of the message. Cannot be empty.
* @type string $date_sent Date sent, in 'Y-m-d H:i:s' format. Default: current date/time.
* @type string $error_type Optional. Error type. Either 'bool' or 'wp_error'. Default: 'bool'.
* }
* @return int|bool ID of the message thread on success, false on failure.
*/
function messages_new_message($args = '')
{
// Parse the default arguments.
$r = bp_parse_args($args, array('sender_id' => bp_loggedin_user_id(), 'thread_id' => false, 'recipients' => array(), 'subject' => false, 'content' => false, 'date_sent' => bp_core_current_time(), 'error_type' => 'bool'), 'messages_new_message');
// Bail if no sender or no content.
if (empty($r['sender_id']) || empty($r['content'])) {
if ('wp_error' === $r['error_type']) {
if (empty($r['sender_id'])) {
$error_code = 'messages_empty_sender';
$feedback = __('Your message was not sent. Please use a valid sender.', 'buddypress');
} else {
$error_code = 'messages_empty_content';
$feedback = __('Your message was not sent. Please enter some content.', 'buddypress');
}
return new WP_Error($error_code, $feedback);
} else {
return false;
}
}
// Create a new message object.
$message = new BP_Messages_Message();
$message->thread_id = $r['thread_id'];
$message->sender_id = $r['sender_id'];
$message->subject = $r['subject'];
$message->message = $r['content'];
$message->date_sent = $r['date_sent'];
// If we have a thread ID...
if (!empty($r['thread_id'])) {
// ...use the existing recipients
$thread = new BP_Messages_Thread($r['thread_id']);
$message->recipients = $thread->get_recipients();
// Strip the sender from the recipient list, and unset them if they are
// not alone. If they are alone, let them talk to themselves.
if (isset($message->recipients[$r['sender_id']]) && count($message->recipients) > 1) {
unset($message->recipients[$r['sender_id']]);
}
// Set a default reply subject if none was sent.
if (empty($message->subject)) {
$message->subject = sprintf(__('Re: %s', 'buddypress'), $thread->messages[0]->subject);
}
// ...otherwise use the recipients passed
} else {
// Bail if no recipients.
if (empty($r['recipients'])) {
if ('wp_error' === $r['error_type']) {
return new WP_Error('message_empty_recipients', __('Message could not be sent. Please enter a recipient.', 'buddypress'));
} else {
return false;
}
}
// Set a default subject if none exists.
if (empty($message->subject)) {
$message->subject = __('No Subject', 'buddypress');
}
// Setup the recipients array.
$recipient_ids = array();
// Invalid recipients are added to an array, for future enhancements.
$invalid_recipients = array();
// Loop the recipients and convert all usernames to user_ids where needed.
foreach ((array) $r['recipients'] as $recipient) {
// Trim spaces and skip if empty.
$recipient = trim($recipient);
if (empty($recipient)) {
continue;
}
// Check user_login / nicename columns first
// @see http://buddypress.trac.wordpress.org/ticket/5151.
if (bp_is_username_compatibility_mode()) {
$recipient_id = bp_core_get_userid(urldecode($recipient));
} else {
$recipient_id = bp_core_get_userid_from_nicename($recipient);
}
// Check against user ID column if no match and if passed recipient is numeric.
if (empty($recipient_id) && is_numeric($recipient)) {
if (bp_core_get_core_userdata((int) $recipient)) {
$recipient_id = (int) $recipient;
}
//.........这里部分代码省略.........
示例11: messages_new_message
function messages_new_message($args = '')
{
$defaults = array('sender_id' => bp_loggedin_user_id(), 'thread_id' => false, 'recipients' => false, 'subject' => false, 'content' => false, 'date_sent' => bp_core_current_time());
$r = wp_parse_args($args, $defaults);
extract($r, EXTR_SKIP);
if (empty($sender_id) || empty($content)) {
return false;
}
// Create a new message object
$message = new BP_Messages_Message();
$message->thread_id = $thread_id;
$message->sender_id = $sender_id;
$message->subject = $subject;
$message->message = $content;
$message->date_sent = $date_sent;
// If we have a thread ID, use the existing recipients, otherwise use the recipients passed
if (!empty($thread_id)) {
$thread = new BP_Messages_Thread($thread_id);
$message->recipients = $thread->get_recipients();
// Strip the sender from the recipient list if they exist
if (isset($message->recipients[$sender_id])) {
unset($message->recipients[$sender_id]);
}
if (empty($message->subject)) {
$message->subject = sprintf(__('Re: %s', 'buddypress'), $thread->messages[0]->subject);
}
// No thread ID, so make some adjustments
} else {
if (empty($recipients)) {
return false;
}
if (empty($message->subject)) {
$message->subject = __('No Subject', 'buddypress');
}
$recipient_ids = array();
// Invalid recipients are added to an array, for future enhancements
$invalid_recipients = array();
// Loop the recipients and convert all usernames to user_ids where needed
foreach ((array) $recipients as $recipient) {
$recipient = trim($recipient);
if (empty($recipient)) {
continue;
}
$recipient_id = false;
// input was numeric
if (is_numeric($recipient)) {
// do a check against the user ID column first
if (bp_core_get_core_userdata((int) $recipient)) {
$recipient_id = (int) $recipient;
} else {
if (bp_is_username_compatibility_mode()) {
$recipient_id = bp_core_get_userid((int) $recipient);
} else {
$recipient_id = bp_core_get_userid_from_nicename((int) $recipient);
}
}
} else {
if (bp_is_username_compatibility_mode()) {
$recipient_id = bp_core_get_userid($recipient);
} else {
$recipient_id = bp_core_get_userid_from_nicename($recipient);
}
}
if (!$recipient_id) {
$invalid_recipients[] = $recipient;
} else {
$recipient_ids[] = (int) $recipient_id;
}
}
// Strip the sender from the recipient list if they exist
if ($key = array_search($sender_id, (array) $recipient_ids)) {
unset($recipient_ids[$key]);
}
// Remove duplicates
$recipient_ids = array_unique((array) $recipient_ids);
if (empty($recipient_ids)) {
return false;
}
// Format this to match existing recipients
foreach ((array) $recipient_ids as $i => $recipient_id) {
$message->recipients[$i] = new stdClass();
$message->recipients[$i]->user_id = $recipient_id;
}
}
if ($message->send()) {
// Send screen notifications to the recipients
foreach ((array) $message->recipients as $recipient) {
bp_core_add_notification($message->id, $recipient->user_id, 'messages', 'new_message');
}
// Send email notifications to the recipients
messages_notification_new_message(array('message_id' => $message->id, 'sender_id' => $message->sender_id, 'subject' => $message->subject, 'content' => $message->message, 'recipients' => $message->recipients, 'thread_id' => $message->thread_id));
do_action_ref_array('messages_message_sent', array(&$message));
return $message->thread_id;
}
return false;
}
示例12: bp_gtm_do_task_actions
function bp_gtm_do_task_actions()
{
global $bp, $wpdb;
if ($_GET['action_type'] == 'complete') {
$wpdb->query($wpdb->prepare("\n UPDATE {$bp->gtm->table_tasks}\n SET `done` = 1\n WHERE `id` = {$_GET['task_id']} OR `parent_id` = {$_GET['task_id']}"));
$task = BP_GTM_Tasks::get_task_by_id($_GET['task_id']);
$resps = explode(' ', $task['0']->resp_id);
foreach ($resps as $resp) {
if ($resp != '') {
$resp_id = bp_core_get_userid($resp);
if ($resp_id != $bp->loggedin_user->id) {
bp_core_add_notification($_GET['task_id'], $resp_id, $bp->gtm->slug, 'task_done', $bp->groups->current_group->id);
}
}
}
echo 'completed';
} elseif ($_GET['action_type'] == 'delete') {
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->gtm->table_tasks} WHERE `id` = %d AND `group_id` = %d", $_GET['task_id'], $bp->groups->current_group->id));
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->gtm->table_taxon} WHERE `task_id` = %d AND `group_id` = %d", $_GET['task_id'], $bp->groups->current_group->id));
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->gtm->table_resps} WHERE `task_id` = %d AND `group_id` = %d", $_GET['task_id'], $bp->groups->current_group->id));
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->gtm->table_discuss} WHERE `task_id` = %d AND `group_id` = %d", $_GET['task_id'], $bp->groups->current_group->id));
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->core->table_name_notifications} WHERE `item_id` = %d AND `secondary_item_id` = %d AND `component_name` = {$bp->gtm->slug} AND `component_action` LIKE `task_%%`", $_GET['task_id'], $bp->groups->current_group->id));
$task = BP_GTM_Tasks::get_task_by_id($_GET['task_id']);
$resps = explode(' ', $task['0']->resp_id);
foreach ($resps as $resp) {
if ($resp != '') {
$resp_id = bp_core_get_userid($resp);
if ($resp_id != $bp->loggedin_user->id) {
bp_core_add_notification($_GET['task_id'], $resp_id, $bp->gtm->slug, 'task_deleted', $bp->groups->current_group->id);
}
}
}
echo 'deleted';
}
die;
}
示例13: bp_activity_at_name_filter
function bp_activity_at_name_filter( $content ) {
include_once( ABSPATH . WPINC . '/registration.php' );
$pattern = '/[@]+([A-Za-z0-9-_\.]+)/';
preg_match_all( $pattern, $content, $usernames );
// Make sure there's only one instance of each username
if ( !$usernames = array_unique( $usernames[1] ) )
return $content;
foreach( (array)$usernames as $username ) {
if ( !$user_id = username_exists( $username ) )
continue;
// Increase the number of new @ mentions for the user
$new_mention_count = (int)get_user_meta( $user_id, 'bp_new_mention_count', true );
update_user_meta( $user_id, 'bp_new_mention_count', $new_mention_count + 1 );
$content = str_replace( "@$username", "<a href='" . bp_core_get_user_domain( bp_core_get_userid( $username ) ) . "' rel='nofollow'>@$username</a>", $content );
}
return $content;
}
示例14: bp_forums_load_bbpress
//.........这里部分代码省略.........
define( 'BB_URL', BP_PLUGIN_URL . '/bp-forums/bbpress/' );
define( 'BB_INC', 'bb-includes/' );
require_once( BB_PATH . BB_INC . 'class.bb-query.php' );
require_once( BB_PATH . BB_INC . 'class.bb-walker.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-core.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-forums.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-topics.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-posts.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-topic-tags.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-capabilities.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-meta.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-pluggable.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-formatting.php' );
require_once( BB_PATH . BB_INC . 'functions.bb-template.php' );
require_once( BACKPRESS_PATH . 'class.wp-taxonomy.php' );
require_once( BB_PATH . BB_INC . 'class.bb-taxonomy.php' );
$bb = new stdClass();
require_once( $bp->forums->bbconfig );
// Setup the global database connection
$bbdb = new BPDB ( BBDB_USER, BBDB_PASSWORD, BBDB_NAME, BBDB_HOST );
/* Set the table names */
$bbdb->forums = $bb_table_prefix . 'forums';
$bbdb->meta = $bb_table_prefix . 'meta';
$bbdb->posts = $bb_table_prefix . 'posts';
$bbdb->terms = $bb_table_prefix . 'terms';
$bbdb->term_relationships = $bb_table_prefix . 'term_relationships';
$bbdb->term_taxonomy = $bb_table_prefix . 'term_taxonomy';
$bbdb->topics = $bb_table_prefix . 'topics';
if ( isset( $bb->custom_user_table ) )
$bbdb->users = $bb->custom_user_table;
else
$bbdb->users = $wpdb->users;
if ( isset( $bb->custom_user_meta_table ) )
$bbdb->usermeta = $bb->custom_user_meta_table;
else
$bbdb->usermeta = $wpdb->usermeta;
$bbdb->prefix = $bb_table_prefix;
define( 'BB_INSTALLING', false );
/* This must be loaded before functionss.bb-admin.php otherwise we get a function conflict. */
if ( !$tables_installed = (boolean) $bbdb->get_results( 'DESCRIBE `' . $bbdb->forums . '`;', ARRAY_A ) )
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
require_once( BB_PATH . 'bb-admin/includes/functions.bb-admin.php' );
if ( is_object( $wp_roles ) ) {
$bb_roles = $wp_roles;
bb_init_roles( $bb_roles );
}
do_action( 'bb_got_roles' );
do_action( 'bb_init' );
do_action( 'init_roles' );
$bb_current_user = $current_user;
$wp_users_object = new BP_Forums_BB_Auth;
if ( !isset( $wp_taxonomy_object ) )
$wp_taxonomy_object = new BB_Taxonomy( $bbdb );
$wp_taxonomy_object->register_taxonomy( 'bb_topic_tag', 'bb_topic' );
// Set a site id if there isn't one already
if ( !isset( $bb->site_id ) )
$bb->site_id = BP_ROOT_BLOG;
/* Check if the tables are installed, if not, install them */
if ( !$tables_installed ) {
require_once( BB_PATH . 'bb-admin/includes/defaults.bb-schema.php' );
/* Backticks and "IF NOT EXISTS" break the dbDelta function. */
dbDelta( str_replace( ' IF NOT EXISTS', '', str_replace( '`', '', $bb_queries ) ) );
require_once( BB_PATH . 'bb-admin/includes/functions.bb-upgrade.php' );
bb_update_db_version();
/* Set the site admins as the keymasters */
$site_admins = get_site_option( 'site_admins', array('admin') );
foreach ( (array)$site_admins as $site_admin )
update_user_meta( bp_core_get_userid( $site_admin ), $bb_table_prefix . 'capabilities', array( 'keymaster' => true ) );
// Create the first forum.
bb_new_forum( array( 'forum_name' => 'Default Forum' ) );
// Set the site URI
bb_update_option( 'uri', BB_URL );
}
register_shutdown_function( create_function( '', 'do_action("bb_shutdown");' ) );
}
示例15: bp_gtm_edit_g_task
protected function bp_gtm_edit_g_task($data)
{
global $bp, $wpdb;
if (!check_admin_referer('bp_gtm_edit_task')) {
return false;
}
$task_id = $_POST['task_id'];
if (!$project_id) {
$project_id = $_POST['task_project'];
}
$name = apply_filters('bp_gtm_task_name_content', $_POST['task_name']);
$description = apply_filters('bp_gtm_task_desc_content', $_POST['task_desc']);
$status = bp_gtm_get_project_status($project_id);
// resps workaround
if (!empty($_POST['user_ids'])) {
$task_resps_old = $_POST['user_ids'];
// array{ slaFFik: 0, bot1: 1, ... }
} else {
$task_resps_old = array();
}
$resps = (array) $task_resps_old;
bp_gtm_change_user_group_role($change_roles, $project_id, $task_id);
// todo smth with this:
if (count($resps) > 0) {
bp_gtm_save_g_resps($task_id, $_POST['task_project'], $_POST['task_group'], $resps);
$task_resps = implode(' ', $resps);
// make resps in a line to save in DB
} else {
$resps[] = bp_core_get_username($_POST['task_creator']);
bp_gtm_save_g_resps($task_id, $_POST['task_project'], $_POST['task_group'], $resps);
$task_resps = bp_core_get_username($_POST['task_creator']);
}
// update task
$updated_task = $wpdb->query($wpdb->prepare("\n UPDATE " . $bp->gtm->table_tasks . "\n SET `name` = %s, `desc` = %s, `status` = %s, `resp_id` = %s, `project_id` = %d, `deadline` = %s\n WHERE `group_id` = %d AND `id` = %d\n ", $name, $description, $status, $task_resps, $_POST['task_project'], bp_gtm_covert_date($_POST['task_deadline']), $_POST['task_group'], $task_id));
// delete old tags
$updated_tag = $wpdb->query($wpdb->prepare("DELETE FROM " . $bp->gtm->table_taxon . " WHERE `task_id` = %d AND `taxon` = 'tag'", $task_id));
// get rid of unnecessary chars in existed tags
$this->bp_gtm_insert_term($_POST['task_tag_names'], '', $project_id, 'tag', $task_id);
// update cats
$updated_cat = $wpdb->query($wpdb->prepare("DELETE FROM " . $bp->gtm->table_taxon . " WHERE `task_id` = %d AND `taxon` = 'cat'", $task_id));
$this->bp_gtm_insert_term($_POST['task_old_cats'], $_POST['project_cats'], $project_id, 'cat', $task_id);
// display user message
if ($updated_task != null || $updated_cat != null || $updated_tag != null) {
if (count($resps) > 0) {
foreach ((array) $resps as $resp) {
$resp_id = bp_core_get_userid($resp);
bp_core_add_notification($task_id, $resp_id, 'gtm', 'task_edited', $_POST['task_group']);
}
}
}
do_action('bp_gtm_save_discussion_post', 'task', $_POST['task_creator'], false, $task_id, false, $bp->groups->current_group->id);
bp_core_add_message(__('Task data was successfully updated.', 'bp_gtm'));
do_action('bp_gtm_edit_task', $_POST['task_group']);
bp_core_redirect(bp_get_group_permalink($bp->groups->current_group) . $bp->gtm->slug . '/tasks/view/' . $task_id . '?action=edited');
}