Changeset 2343
- Timestamp:
- 01/18/2010 08:00:33 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-activity.php
r2331 r2343 396 396 * 'user_id' => false, // user_id to filter on 397 397 * 'object' => false, // object to filter on e.g. groups, profile, status, friends 398 * 'action' => false, // action to filter on e.g. new_wire_post, new_forum_post,profile_updated398 * 'action' => false, // action to filter on e.g. new_wire_post, profile_updated 399 399 * 'primary_id' => false, // object ID to filter on e.g. a group_id or forum_id or blog_id etc. 400 400 * 'secondary_id' => false, // secondary object ID to filter on e.g. a post_id … … 438 438 439 439 'user_id' => $bp->loggedin_user->id, // Optional: The user to record the activity for, can be false if this activity is not for a user. 440 'item_id' => false, // Optional: The ID of the specific item being recorded, e.g. a blog_id , or wire_post_id440 'item_id' => false, // Optional: The ID of the specific item being recorded, e.g. a blog_id 441 441 'secondary_item_id' => false, // Optional: A second ID used to further filter e.g. a comment_id 442 442 'recorded_time' => time(), // The time that this activity was recorded -
trunk/bp-core.php
r2335 r2343 342 342 */ 343 343 if ( !function_exists( 'xprofile_install' ) ) { 344 /* Fallback wirevalues if xprofile is disabled */344 /* Fallback values if xprofile is disabled */ 345 345 $bp->core->profile->slug = 'profile'; 346 346 $bp->active_components[$bp->core->profile->slug] = $bp->core->profile->slug; -
trunk/bp-core/bp-core-templatetags.php
r2325 r2343 1035 1035 } 1036 1036 1037 function bp_profile_wire_can_post() {1038 global $bp;1039 1040 if ( bp_is_home() )1041 return true;1042 1043 if ( function_exists('friends_install') ) {1044 if ( friends_check_friendship( $bp->loggedin_user->id, $bp->displayed_user->id ) )1045 return true;1046 else1047 return false;1048 }1049 1050 return true;1051 }1052 1053 1037 function bp_nav_items() { 1054 1038 global $bp; … … 1395 1379 } 1396 1380 1397 function bp_is_wire_component() {1398 global $bp;1399 1400 if ( BP_WIRE_SLUG == $bp->current_action || in_array( BP_WIRE_SLUG, (array)$bp->action_variables ) )1401 return true;1402 1403 return false;1404 }1405 1406 1381 function bp_is_messages_component() { 1407 1382 global $bp; … … 1503 1478 } 1504 1479 1505 function bp_is_profile_wire() {1506 global $bp;1507 1508 if ( BP_XPROFILE_SLUG == $bp->current_component && 'wire' == $bp->current_action )1509 return true;1510 1511 return false;1512 }1513 1514 1480 function bp_is_user_groups() { 1515 1481 global $bp; … … 1553 1519 1554 1520 if ( BP_GROUPS_SLUG == $bp->current_component && $bp->is_single_item && 'admin' == $bp->current_action ) 1555 return true;1556 1557 return false;1558 }1559 1560 function bp_is_group_wire() {1561 global $bp;1562 1563 if ( BP_GROUPS_SLUG == $bp->current_component && $bp->is_single_item && 'wire' == $bp->current_action )1564 1521 return true; 1565 1522 … … 1796 1753 $bp_classes[] = 'blogs'; 1797 1754 1798 if ( bp_is_wire_component() && !bp_is_blog_page() )1799 $bp_classes[] = 'wire';1800 1801 1755 if ( bp_is_messages_component() && !bp_is_blog_page() ) 1802 1756 $bp_classes[] = 'messages'; … … 1865 1819 $bp_classes[] = 'group-forum'; 1866 1820 1867 if ( bp_is_group_wire() )1868 $bp_classes[] = 'group-wire';1869 1870 1821 if ( bp_is_group_admin_page() ) 1871 1822 $bp_classes[] = 'group-admin'; … … 1876 1827 if ( bp_is_group_home() ) 1877 1828 $bp_classes[] = 'group-home'; 1878 1879 if ( bp_is_profile_wire() )1880 $bp_classes[] = 'profile-wire';1881 1829 1882 1830 if ( bp_is_change_avatar() ) -
trunk/bp-groups.php
r2339 r2343 24 24 slug varchar(100) NOT NULL, 25 25 description longtext NOT NULL, 26 news longtext NOT NULL,27 26 status varchar(10) NOT NULL DEFAULT 'public', 28 enable_wire tinyint(1) NOT NULL DEFAULT '1',29 27 enable_forum tinyint(1) NOT NULL DEFAULT '1', 30 28 date_created datetime NOT NULL, … … 66 64 dbDelta($sql); 67 65 68 if ( function_exists('bp_wire_install') ) 69 groups_wire_install(); 66 do_action( 'groups_install' ); 70 67 71 68 update_site_option( 'bp-groups-db-version', BP_GROUPS_DB_VERSION ); 72 }73 74 function groups_wire_install() {75 global $wpdb, $bp;76 77 if ( !empty($wpdb->charset) )78 $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";79 80 $sql[] = "CREATE TABLE {$bp->groups->table_name_wire} (81 id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,82 item_id bigint(20) NOT NULL,83 user_id bigint(20) NOT NULL,84 parent_id bigint(20) NOT NULL,85 content longtext NOT NULL,86 date_posted datetime NOT NULL,87 KEY item_id (item_id),88 KEY user_id (user_id),89 KEY parent_id (parent_id)90 ) {$charset_collate};";91 92 require_once(ABSPATH . 'wp-admin/upgrade-functions.php');93 dbDelta($sql);94 69 } 95 70 … … 108 83 /* Register this in the active components array */ 109 84 $bp->active_components[$bp->groups->slug] = $bp->groups->id; 110 111 if ( function_exists('bp_wire_install') )112 $bp->groups->table_name_wire = $wpdb->base_prefix . 'bp_groups_wire';113 85 114 86 $bp->groups->forbidden_names = apply_filters( 'groups_forbidden_names', array( 'my-groups', 'group-finder', 'create', 'invites', 'delete', 'add', 'admin', 'request-membership' ) ); … … 239 211 bp_core_new_subnav_item( array( 'name' => __( 'Forum', 'buddypress' ), 'slug' => 'forum', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_forum', 'position' => 40, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'forums' ) ); 240 212 241 if ( $bp->groups->current_group->enable_wire && function_exists('bp_wire_install') )242 bp_core_new_subnav_item( array( 'name' => __( 'Wire', 'buddypress' ), 'slug' => BP_WIRE_SLUG, 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_wire', 'position' => 50, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'wire' ) );243 244 213 bp_core_new_subnav_item( array( 'name' => __( 'Members', 'buddypress' ), 'slug' => 'members', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_members', 'position' => 60, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'members' ) ); 245 214 … … 593 562 594 563 bp_core_load_template( apply_filters( 'groups_template_group_forum', 'groups/single/home' ) ); 595 }596 }597 }598 599 function groups_screen_group_wire() {600 global $bp;601 602 $wire_action = $bp->action_variables[0];603 604 if ( $bp->is_single_item ) {605 if ( 'post' == $wire_action && ( is_site_admin() || groups_is_user_member( $bp->loggedin_user->id, $bp->groups->current_group->id ) ) ) {606 /* Check the nonce first. */607 if ( !check_admin_referer( 'bp_wire_post' ) )608 return false;609 610 if ( !groups_new_wire_post( $bp->groups->current_group->id, $_POST['wire-post-textarea'] ) )611 bp_core_add_message( __('Wire message could not be posted.', 'buddypress'), 'error' );612 else613 bp_core_add_message( __('Wire message successfully posted.', 'buddypress') );614 615 if ( !strpos( wp_get_referer(), $bp->wire->slug ) )616 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) );617 else618 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) . $bp->wire->slug );619 620 } else if ( 'delete' == $wire_action && ( is_site_admin() || groups_is_user_member( $bp->loggedin_user->id, $bp->groups->current_group->id ) ) ) {621 $wire_message_id = $bp->action_variables[1];622 623 /* Check the nonce first. */624 if ( !check_admin_referer( 'bp_wire_delete_link' ) )625 return false;626 627 if ( !groups_delete_wire_post( $wire_message_id, $bp->groups->table_name_wire ) )628 bp_core_add_message( __('There was an error deleting the wire message.', 'buddypress'), 'error' );629 else630 bp_core_add_message( __('Wire message successfully deleted.', 'buddypress') );631 632 if ( !strpos( wp_get_referer(), $bp->wire->slug ) )633 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) );634 else635 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) . $bp->wire->slug );636 637 } else if ( ( !$wire_action || 'latest' == $bp->action_variables[1] ) ) {638 bp_core_load_template( apply_filters( 'groups_template_group_wire', 'groups/single/wire' ) );639 } else {640 bp_core_load_template( apply_filters( 'groups_template_group_home', 'groups/single/home' ) );641 564 } 642 565 } … … 1092 1015 <td class="no"><input type="radio" name="notifications[notification_groups_group_updated]" value="no" <?php if ( 'no' == get_usermeta( $current_user->id, 'notification_groups_group_updated') ) { ?>checked="checked" <?php } ?>/></td> 1093 1016 </tr> 1094 <?php if ( function_exists('bp_wire_install') ) { ?>1095 <tr>1096 <td></td>1097 <td><?php _e( 'A member posts on the wire of a group you belong to', 'buddypress' ) ?></td>1098 <td class="yes"><input type="radio" name="notifications[notification_groups_wire_post]" value="yes" <?php if ( !get_usermeta( $current_user->id, 'notification_groups_wire_post') || 'yes' == get_usermeta( $current_user->id, 'notification_groups_wire_post') ) { ?>checked="checked" <?php } ?>/></td>1099 <td class="no"><input type="radio" name="notifications[notification_groups_wire_post]" value="no" <?php if ( 'no' == get_usermeta( $current_user->id, 'notification_groups_wire_post') ) { ?>checked="checked" <?php } ?>/></td>1100 </tr>1101 <?php } ?>1102 1017 <tr> 1103 1018 <td></td> … … 1390 1305 bp_activity_set_action( $bp->groups->id, 'created_group', __( 'Created a group', 'buddypress' ) ); 1391 1306 bp_activity_set_action( $bp->groups->id, 'joined_group', __( 'Joined a group', 'buddypress' ) ); 1392 bp_activity_set_action( $bp->groups->id, 'new_wire_post', __( 'New group wire post', 'buddypress' ) );1393 1307 bp_activity_set_action( $bp->groups->id, 'new_forum_topic', __( 'New group forum topic', 'buddypress' ) ); 1394 1308 bp_activity_set_action( $bp->groups->id, 'new_forum_post', __( 'New group forum post', 'buddypress' ) ); … … 1431 1345 groups_update_groupmeta( $group_id, 'last_activity', time() ); 1432 1346 } 1433 add_action( 'groups_deleted_wire_post', 'groups_update_last_activity' );1434 add_action( 'groups_new_wire_post', 'groups_update_last_activity' );1435 1347 add_action( 'groups_joined_group', 'groups_update_last_activity' ); 1436 1348 add_action( 'groups_leave_group', 'groups_update_last_activity' ); … … 1579 1491 $group = new BP_Groups_Group; 1580 1492 1581 if ( $creator_id ) {1493 if ( $creator_id ) 1582 1494 $group->creator_id = $creator_id; 1583 } else {1495 else 1584 1496 $group->creator_id = $bp->loggedin_user->id; 1585 }1586 1497 1587 1498 if ( isset( $name ) ) … … 2012 1923 2013 1924 return $activity_id; 2014 }2015 2016 /*** Group Wire [DEPRECATED] ****************************************************************/2017 2018 function groups_new_wire_post( $group_id, $content ) {2019 global $bp;2020 2021 if ( !function_exists( 'bp_wire_new_post' ) )2022 return false;2023 2024 if ( $wire_post = bp_wire_new_post( $group_id, $content, 'groups' ) ) {2025 2026 /* Post an email notification if settings allow */2027 require_once ( BP_PLUGIN_DIR . '/bp-groups/bp-groups-notifications.php' );2028 groups_notification_new_wire_post( $group_id, $wire_post->id );2029 2030 /* Record this in activity streams */2031 $activity_content = sprintf( __( '%s wrote on the wire of the group %s:', 'buddypress'), bp_core_get_userlink( $bp->loggedin_user->id ), '<a href="' . bp_get_group_permalink( $bp->groups->current_group ) . '">' . attribute_escape( $bp->groups->current_group->name ) . '</a>' );2032 $activity_content .= '<blockquote>' . bp_create_excerpt( $content ) . '</blockquote>';2033 2034 groups_record_activity( array(2035 'content' => apply_filters( 'groups_activity_new_wire_post', $activity_content ),2036 'primary_link' => apply_filters( 'groups_activity_new_wire_post_primary_link', bp_get_group_permalink( $bp->groups->current_group ) ),2037 'component_action' => 'new_wire_post',2038 'item_id' => $bp->groups->current_group->id,2039 'secondary_item_id' => $wire_post->item_id2040 ) );2041 2042 do_action( 'groups_new_wire_post', $group_id, $wire_post->id );2043 2044 return true;2045 }2046 2047 return false;2048 }2049 2050 function groups_delete_wire_post( $wire_post_id, $table_name ) {2051 if ( bp_wire_delete_post( $wire_post_id, 'groups', $table_name ) ) {2052 /* Delete the activity stream item */2053 if ( function_exists( 'bp_activity_delete_by_item_id' ) ) {2054 bp_activity_delete_by_item_id( array( 'item_id' => $wire_post_id, 'component_name' => 'groups', 'component_action' => 'new_wire_post' ) );2055 }2056 2057 do_action( 'groups_deleted_wire_post', $wire_post_id );2058 return true;2059 }2060 2061 return false;2062 1925 } 2063 1926 … … 2716 2579 2717 2580 // List actions to clear super cached pages on, if super cache is installed 2718 add_action( 'groups_new_wire_post', 'bp_core_clear_cache' );2719 add_action( 'groups_deleted_wire_post', 'bp_core_clear_cache' );2720 2581 add_action( 'groups_join_group', 'bp_core_clear_cache' ); 2721 2582 add_action( 'groups_leave_group', 'bp_core_clear_cache' ); -
trunk/bp-groups/bp-groups-classes.php
r2339 r2343 205 205 } 206 206 207 // Delete the wire posts for this group if the wire is installed 208 if ( function_exists('bp_wire_install') ) { 209 BP_Wire_Post::delete_all_for_item( $this->id, $bp->groups->table_name_wire ); 210 } 207 do_action( 'bp_groups_delete_group', $this ); 211 208 212 209 // Finally remove the group entry from the DB -
trunk/bp-groups/bp-groups-notifications.php
r2120 r2343 1 1 <?php 2 3 function groups_notification_new_wire_post( $group_id, $wire_post_id ) {4 global $bp;5 6 if ( !isset( $_POST['wire-post-email-notify'] ) )7 return false;8 9 $wire_post = new BP_Wire_Post( $bp->groups->table_name_wire, $wire_post_id );10 $group = new BP_Groups_Group( $group_id, false, true );11 12 $poster_name = bp_core_get_user_displayname( $wire_post->user_id );13 $poster_profile_link = bp_core_get_user_domain( $wire_post->user_id );14 15 $subject = '[' . get_blog_option( BP_ROOT_BLOG, 'blogname' ) . '] ' . sprintf( __( 'New wire post on group: %s', 'buddypress' ), stripslashes( attribute_escape( $group->name ) ) );16 17 foreach ( $group->user_dataset as $user ) {18 if ( 'no' == get_usermeta( $user->user_id, 'notification_groups_wire_post' ) ) continue;19 20 $ud = get_userdata( $user->user_id );21 22 // Set up and send the message23 $to = $ud->user_email;24 25 $wire_link = site_url( $bp->groups->slug . '/' . $group->slug . '/wire/' );26 $group_link = site_url( $bp->groups->slug . '/' . $group->slug . '/' );27 $settings_link = bp_core_get_user_domain( $user->user_id ) . 'settings/notifications/';28 29 $message = sprintf( __(30 '%s posted on the wire of the group "%s":31 32 "%s"33 34 To view the group wire: %s35 36 To view the group home: %s37 38 To view %s\'s profile page: %s39 40 ---------------------41 ', 'buddypress' ), $poster_name, stripslashes( attribute_escape( $group->name ) ), stripslashes($wire_post->content), $wire_link, $group_link, $poster_name, $poster_profile_link );42 43 $message .= sprintf( __( 'To disable these notifications please log in and go to: %s', 'buddypress' ), $settings_link );44 45 // Send it46 wp_mail( $to, $subject, $message );47 48 unset( $message, $to );49 }50 }51 2 52 3 function groups_notification_group_updated( $group_id ) { -
trunk/bp-groups/bp-groups-templatetags.php
r2339 r2343 711 711 } 712 712 713 function bp_group_show_wire_setting( $group = false ) {714 global $groups_template;715 716 if ( !$group )717 $group =& $groups_template->group;718 719 if ( $group->enable_wire )720 echo ' checked="checked"';721 }722 723 function bp_group_is_wire_enabled( $group = false ) {724 global $groups_template;725 726 if ( !$group )727 $group =& $groups_template->group;728 729 if ( $group->enable_wire )730 return true;731 732 return false;733 }734 735 713 function bp_group_forum_permalink( $deprecated = false ) { 736 714 echo bp_get_group_forum_permalink(); … … 1613 1591 global $bp; 1614 1592 return apply_filters( 'bp_get_new_group_news', $bp->groups->current_group->news ); 1615 }1616 1617 function bp_new_group_enable_wire() {1618 echo bp_get_new_group_enable_wire();1619 }1620 function bp_get_new_group_enable_wire() {1621 global $bp;1622 return (int) apply_filters( 'bp_get_new_group_enable_wire', $bp->groups->current_group->enable_wire );1623 1593 } 1624 1594 -
trunk/bp-xprofile.php
r2333 r2343 10 10 require ( BP_PLUGIN_DIR . '/bp-xprofile/bp-xprofile-filters.php' ); 11 11 require ( BP_PLUGIN_DIR . '/bp-xprofile/bp-xprofile-templatetags.php' ); 12 require ( BP_PLUGIN_DIR . '/bp-xprofile/bp-xprofile-notifications.php' );13 12 require ( BP_PLUGIN_DIR . '/bp-xprofile/bp-xprofile-cssjs.php' ); 14 13 … … 90 89 dbDelta($sql); 91 90 92 if ( function_exists('bp_wire_install') ) 93 xprofile_wire_install(); 91 do_action( 'xprofile_install' ); 94 92 95 93 update_site_option( 'bp-xprofile-db-version', BP_XPROFILE_DB_VERSION ); 96 }97 98 function xprofile_wire_install() {99 global $bp, $wpdb;100 101 if ( !empty($wpdb->charset) )102 $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";103 104 $sql[] = "CREATE TABLE {$bp->profile->table_name_wire} (105 id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,106 item_id bigint(20) NOT NULL,107 user_id bigint(20) NOT NULL,108 parent_id bigint(20) NOT NULL,109 content longtext NOT NULL,110 date_posted datetime NOT NULL,111 KEY item_id (item_id),112 KEY user_id (user_id),113 KEY parent_id (parent_id)114 ) {$charset_collate};";115 116 require_once( ABSPATH . 'wp-admin/upgrade-functions.php' );117 dbDelta($sql);118 94 } 119 95 … … 146 122 /* Set the support field type ids */ 147 123 $bp->profile->field_types = apply_filters( 'xprofile_field_types', array( 'textbox', 'textarea', 'radio', 'checkbox', 'selectbox', 'multiselectbox', 'datebox' ) ); 148 149 if ( function_exists( 'bp_wire_install' ) )150 $bp->profile->table_name_wire = $wpdb->base_prefix . 'bp_xprofile_wire';151 124 152 125 do_action( 'xprofile_setup_globals' ); … … 420 393 } 421 394 422 /**423 * xprofile_screen_notification_settings()424 *425 * Loads the notification settings for the xprofile component.426 * Settings are hooked into the function: bp_core_screen_notification_settings_content()427 * in bp-core/bp-core-settings.php428 *429 * @package BuddyPress Xprofile430 * @global $current_user WordPress global variable containing current logged in user information431 */432 function xprofile_screen_notification_settings() {433 global $current_user; ?>434 <?php if ( function_exists('bp_wire_install') ) { ?>435 <table class="notification-settings" id="profile-notification-settings">436 <tr>437 <th class="icon"></th>438 <th class="title"><?php _e( 'Profile', 'buddypress' ) ?></th>439 <th class="yes"><?php _e( 'Yes', 'buddypress' ) ?></th>440 <th class="no"><?php _e( 'No', 'buddypress' )?></th>441 </tr>442 443 <tr>444 <td></td>445 <td><?php _e( 'A member posts on your wire', 'buddypress' ) ?></td>446 <td class="yes"><input type="radio" name="notifications[notification_profile_wire_post]" value="yes" <?php if ( !get_usermeta( $current_user->id, 'notification_profile_wire_post' ) || 'yes' == get_usermeta( $current_user->id, 'notification_profile_wire_post' ) ) { ?>checked="checked" <?php } ?>/></td>447 <td class="no"><input type="radio" name="notifications[notification_profile_wire_post]" value="no" <?php if ( 'no' == get_usermeta( $current_user->id, 'notification_profile_wire_post' ) ) { ?>checked="checked" <?php } ?>/></td>448 </tr>449 450 <?php do_action( 'xprofile_screen_notification_settings' ) ?>451 </table>452 <?php } ?>453 <?php454 }455 add_action( 'bp_notification_settings', 'xprofile_screen_notification_settings', 1 );456 457 458 395 /******************************************************************************** 459 396 * Action Functions … … 499 436 add_action( 'wp', 'xprofile_action_delete_avatar', 3 ); 500 437 501 /**502 * xprofile_action_new_wire_post()503 *504 * Posts a new wire post to the users profile wire.505 *506 * @package BuddyPress XProfile507 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()508 * @uses bp_wire_new_post() Adds a new wire post to a specific wire using the ID of the item passed and the table name.509 * @uses bp_core_add_message() Adds an error/success message to the session to be displayed on the next page load.510 * @uses bp_core_redirect() Safe redirects to a new page using the wp_redirect() function511 */512 function xprofile_action_new_wire_post() {513 global $bp;514 515 if ( $bp->current_component != $bp->wire->slug )516 return false;517 518 if ( 'post' != $bp->current_action )519 return false;520 521 /* Check the nonce */522 if ( !check_admin_referer( 'bp_wire_post' ) )523 return false;524 525 if ( !$wire_post = bp_wire_new_post( $bp->displayed_user->id, $_POST['wire-post-textarea'], $bp->profile->id ) ) {526 bp_core_add_message( __( 'Wire message could not be posted. Please try again.', 'buddypress' ), 'error' );527 } else {528 bp_core_add_message( __( 'Wire message successfully posted.', 'buddypress' ) );529 530 /* Record the notification for the reciever if it's not on their own wire */531 if ( !bp_is_home() )532 bp_core_add_notification( $bp->loggedin_user->id, $bp->displayed_user->id, $bp->profile->id, 'new_wire_post' );533 534 /* Record this on the poster's activity screen */535 if ( ( $wire_post->item_id == $bp->loggedin_user->id && $wire_post->user_id == $bp->loggedin_user->id ) || ( $wire_post->item_id == $bp->displayed_user->id && $wire_post->user_id == $bp->displayed_user->id ) ) {536 $from_user_link = bp_core_get_userlink($wire_post->user_id);537 $content = sprintf( __('%s wrote on their own wire', 'buddypress'), $from_user_link ) . ': <span class="time-since">%s</span>';538 $primary_link = bp_core_get_userlink( $wire_post->user_id, false, true );539 } else if ( ( $wire_post->item_id != $bp->loggedin_user->id && $wire_post->user_id == $bp->loggedin_user->id ) || ( $wire_post->item_id != $bp->displayed_user->id && $wire_post->user_id == $bp->displayed_user->id ) ) {540 $from_user_link = bp_core_get_userlink($wire_post->user_id);541 $to_user_link = bp_core_get_userlink( $wire_post->item_id, false, false, true, true );542 $content = sprintf( __('%s wrote on %s wire', 'buddypress'), $from_user_link, $to_user_link ) . ': <span class="time-since">%s</span>';543 $primary_link = bp_core_get_userlink( $wire_post->item_id, false, true );544 }545 546 $content .= '<blockquote>' . bp_create_excerpt($wire_post->content) . '</blockquote>';547 548 /* Now write the values */549 xprofile_record_activity( array(550 'user_id' => $bp->loggedin_user->id,551 'content' => apply_filters( 'xprofile_activity_new_wire_post', $content, &$wire_post ),552 'primary_link' => apply_filters( 'xprofile_activity_new_wire_post_primary_link', $primary_link ),553 'component_action' => 'new_wire_post',554 'item_id' => $wire_post->id555 ) );556 557 do_action( 'xprofile_new_wire_post', &$wire_post );558 }559 560 if ( !strpos( wp_get_referer(), $bp->wire->slug ) ) {561 bp_core_redirect( $bp->displayed_user->domain );562 } else {563 bp_core_redirect( $bp->displayed_user->domain . $bp->wire->slug );564 }565 }566 add_action( 'wp', 'xprofile_action_new_wire_post', 3 );567 568 /**569 * xprofile_action_delete_wire_post()570 *571 * Deletes a wire post from the users profile wire.572 *573 * @package BuddyPress XProfile574 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()575 * @uses bp_wire_delete_post() Deletes a wire post for a specific wire using the ID of the item passed and the table name.576 * @uses xprofile_delete_activity() Deletes an activity item for the xprofile component and a particular user.577 * @uses bp_core_add_message() Adds an error/success message to the session to be displayed on the next page load.578 * @uses bp_core_redirect() Safe redirects to a new page using the wp_redirect() function579 */580 function xprofile_action_delete_wire_post() {581 global $bp;582 583 if ( $bp->current_component != $bp->wire->slug )584 return false;585 586 if ( $bp->current_action != 'delete' )587 return false;588 589 if ( !check_admin_referer( 'bp_wire_delete_link' ) )590 return false;591 592 $wire_post_id = $bp->action_variables[0];593 594 if ( bp_wire_delete_post( $wire_post_id, $bp->profile->slug, $bp->profile->table_name_wire ) ) {595 bp_core_add_message( __('Wire message successfully deleted.', 'buddypress') );596 597 /* Delete the post from activity streams */598 xprofile_delete_activity( array( 'item_id' => $wire_post_id, 'component_action' => 'new_wire_post' ) );599 600 do_action( 'xprofile_delete_wire_post', $wire_post_id );601 } else {602 bp_core_add_message( __('Wire post could not be deleted, please try again.', 'buddypress'), 'error' );603 }604 605 if ( !strpos( wp_get_referer(), $bp->wire->slug ) ) {606 bp_core_redirect( $bp->displayed_user->domain );607 } else {608 bp_core_redirect( $bp->displayed_user->domain. $bp->wire->slug );609 }610 }611 add_action( 'wp', 'xprofile_action_delete_wire_post', 3 );612 613 614 438 /******************************************************************************** 615 439 * Activity & Notification Functions … … 628 452 bp_activity_set_action( $bp->profile->id, 'new_member', __( 'New member registered', 'buddypress' ) ); 629 453 bp_activity_set_action( $bp->profile->id, 'updated_profile', __( 'Updated Profile', 'buddypress' ) ); 630 bp_activity_set_action( $bp->profile->id, 'new_wire_post', __( 'New profile wire post', 'buddypress' ) );631 454 632 455 do_action( 'xprofile_register_activity_actions' ); … … 696 519 697 520 return apply_filters( 'xprofile_register_activity_action', bp_activity_set_action( $bp->profile->id, $key, $value ), $key, $value ); 698 }699 700 /**701 * xprofile_format_notifications()702 *703 * Format notifications into something that can be read and displayed704 *705 * @package BuddyPress Xprofile706 * @param $item_id The ID of the specific item for which the activity is recorded (could be a wire post id, user id etc)707 * @param $action The component action name e.g. 'new_wire_post' or 'updated_profile'708 * @param $total_items The total number of identical notification items (used for grouping)709 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()710 * @uses bp_core_global_user_fullname() Returns the display name for the user711 * @return The readable notification item712 */713 function xprofile_format_notifications( $action, $item_id, $secondary_item_id, $total_items ) {714 global $bp;715 716 if ( 'new_wire_post' == $action ) {717 if ( (int)$total_items > 1 ) {718 return apply_filters( 'bp_xprofile_multiple_new_wire_post_notification', '<a href="' . $bp->loggedin_user->domain . $bp->wire->slug . '" title="' . __( 'Wire', 'buddypress' ) . '">' . sprintf( __( 'You have %d new posts on your wire', 'buddypress' ), (int)$total_items ) . '</a>', $total_items );719 } else {720 $user_fullname = bp_core_get_user_displayname( $item_id );721 return apply_filters( 'bp_xprofile_single_new_wire_post_notification', '<a href="' . $bp->loggedin_user->domain . $bp->wire->slug . '" title="' . __( 'Wire', 'buddypress' ) . '">' . sprintf( __( '%s posted on your wire', 'buddypress' ), $user_fullname ) . '</a>', $user_fullname );722 }723 }724 725 do_action( 'xprofile_format_notifications', $action, $item_id, $secondary_item_id, $total_items );726 727 return false;728 521 } 729 522 … … 1089 882 1090 883 bp_core_delete_notifications_for_user_by_type( $bp->loggedin_user->id, $bp->profile->id, 'new_at_mention' ); 1091 bp_core_delete_notifications_for_user_by_type( $bp->loggedin_user->id, $bp->profile->id, 'new_wire_post' ); 1092 } 1093 add_action( 'bp_wire_screen_latest', 'xprofile_remove_screen_notifications' ); 884 } 1094 885 add_action( 'bp_activity_screen_my_activity', 'xprofile_remove_screen_notifications' ); 1095 886 add_action( 'bp_activity_screen_single_activity_permalink', 'xprofile_remove_screen_notifications' );
Note: See TracChangeset
for help on using the changeset viewer.