Changes in branches/1.2/bp-themes/bp-default [3124:3296]
- Location:
- branches/1.2/bp-themes/bp-default
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.2/bp-themes/bp-default/_inc/ajax.php
r3124 r3296 184 184 <li id="acomment-<?php bp_activity_id() ?>"> 185 185 <div class="acomment-avatar"> 186 <?php bp_activity_avatar( array( 'width' => 25, 'height' => 25 )) ?>186 <?php bp_activity_avatar() ?> 187 187 </div> 188 188 189 189 <div class="acomment-meta"> 190 <?php echo bp_core_get_userlink( bp_get_activity_user_id() ) ?> · <?php printf( __( '%s ago', 'buddypress' ), bp_core_time_since( gmdate( "Y-m-d H:i:s") ) ) ?> ·191 <a class="acomment-reply" href="#acomment-<?php bp_activity_id() ?>" id="acomment-reply-<?php echo attribute_escape( $_POST['form_id'] ) ?>"><?php _e( 'Reply', 'buddypress' ) ?></a>190 <?php echo bp_core_get_userlink( bp_get_activity_user_id() ) ?> · <?php printf( __( '%s ago', 'buddypress' ), bp_core_time_since( bp_core_current_time() ) ) ?> · 191 <a class="acomment-reply" href="#acomment-<?php bp_activity_id() ?>" id="acomment-reply-<?php echo esc_attr( $_POST['form_id'] ) ?>"><?php _e( 'Reply', 'buddypress' ) ?></a> 192 192 · <a href="<?php echo wp_nonce_url( $bp->root_domain . '/' . $bp->activity->slug . '/delete/' . bp_get_activity_id() . '?cid=' . $comment_id, 'bp_activity_delete_link' ) ?>" class="delete acomment-delete confirm"><?php _e( 'Delete', 'buddypress' ) ?></a> 193 193 </div> … … 217 217 218 218 /* Check access */ 219 if ( !is_s ite_admin() && $activity->user_id != $bp->loggedin_user->id )219 if ( !is_super_admin() && $activity->user_id != $bp->loggedin_user->id ) 220 220 return false; 221 221 … … 250 250 251 251 /* Check access */ 252 if ( !is_s ite_admin() && $comment->user_id != $bp->loggedin_user->id )252 if ( !is_super_admin() && $comment->user_id != $bp->loggedin_user->id ) 253 253 return false; 254 254 … … 313 313 echo '<span class="activity">' . esc_attr( $user->last_active ) . '</span>'; 314 314 echo '<div class="action"> 315 <a class="remove" href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id, 'groups_invite_uninvite_user' ) . '" id="uid-' . attribute_escape( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>315 <a class="remove" href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->groups->slug . '/' . $_POST['group_id'] . '/invites/remove/' . $user->id, 'groups_invite_uninvite_user' ) . '" id="uid-' . esc_attr( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a> 316 316 </div>'; 317 317 echo '</li>'; … … 405 405 _e( 'Error joining group', 'buddypress' ); 406 406 } else { 407 echo '<a id="group-' . attribute_escape( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';407 echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 408 408 } 409 409 … … 415 415 _e( 'Error requesting membership', 'buddypress' ); 416 416 } else { 417 echo '<a id="group-' . attribute_escape( $group->id ) . '" class="membership-requested" rel="membership-requested" title="' . __( 'Membership Requested', 'buddypress' ) . '" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Membership Requested', 'buddypress' ) . '</a>';417 echo '<a id="group-' . esc_attr( $group->id ) . '" class="membership-requested" rel="membership-requested" title="' . __( 'Membership Requested', 'buddypress' ) . '" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Membership Requested', 'buddypress' ) . '</a>'; 418 418 } 419 419 } … … 427 427 } else { 428 428 if ( 'public' == $group->status ) { 429 echo '<a id="group-' . attribute_escape( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';429 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 430 430 } else if ( 'private' == $group->status ) { 431 echo '<a id="group-' . attribute_escape( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';431 echo '<a id="group-' . esc_attr( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; 432 432 } 433 433 } … … 443 443 echo "-1<div id='message' class='error'><p>" . __('There was a problem closing the notice.', 'buddypress') . '</p></div>'; 444 444 } else { 445 $notice_ids = get_user meta( $userdata->ID, 'closed_notices');445 $notice_ids = get_user_meta( $userdata->ID, 'closed_notices', true ); 446 446 447 447 $notice_ids[] = (int) $_POST['notice_id']; 448 448 449 update_user meta( $userdata->ID, 'closed_notices', $notice_ids );449 update_user_meta( $userdata->ID, 'closed_notices', $notice_ids ); 450 450 } 451 451 } … … 466 466 <?php echo bp_loggedin_user_avatar( 'type=thumb&width=30&height=30' ); ?> 467 467 468 <strong><a href="<?php echo $bp->loggedin_user->domain ?>"><?php echo $bp->loggedin_user->fullname ?></a> <span class="activity"><?php printf( __( 'Sent %s ago', 'buddypress' ), bp_core_time_since( time() ) ) ?></span></strong>468 <strong><a href="<?php echo $bp->loggedin_user->domain ?>"><?php echo $bp->loggedin_user->fullname ?></a> <span class="activity"><?php printf( __( 'Sent %s ago', 'buddypress' ), bp_core_time_since( bp_core_current_time() ) ) ?></span></strong> 469 469 470 470 <?php do_action( 'bp_after_message_meta' ) ?> -
branches/1.2/bp-themes/bp-default/_inc/css/default.css
r3124 r3296 226 226 227 227 div#sidebar ul.item-list img.avatar { 228 width: 2 5px;229 height: 2 5px;228 width: 20px; 229 height: 20px; 230 230 margin-right: 10px; 231 231 } … … 400 400 } 401 401 ul.single-line li { border: none; } 402 body.activity-permalink ul.item-list li { padding-top: 0; }403 402 404 403 ul.item-list li img.avatar { … … 575 574 576 575 div.pagination { 577 margin: - 15px -20px 9px -20px;576 margin: -20px -20px 9px -20px; 578 577 border-bottom: 1px solid #eaeaea; 579 578 padding: 10px 20px 10px 20px; … … 604 603 font-weight: bold; 605 604 } 605 606 div#pag-bottom { 607 margin-top: 0; 608 } 606 609 607 610 /* > Error / Success Messages … … 998 1001 form#whats-new-form textarea { 999 1002 width: 100%; 1000 height: 60px;1003 height: 50px; 1001 1004 font-size: 14px; 1002 1005 font-family: inherit; … … 1113 1116 1114 1117 .activity-list .activity-avatar img { 1115 width: 60px;1116 height: 60px;1118 width: 50px; 1119 height: 50px; 1117 1120 } 1118 1121 body.activity-permalink .activity-list .activity-avatar img { … … 1152 1155 line-height: 220%; 1153 1156 } 1157 1158 .activity-list .activity-content .activity-header img.avatar { 1159 float: none !important; 1160 margin: 0 5px -8px 0 !important; 1161 } 1154 1162 1155 1163 .activity-list .activity-header a:first-child, span.highlight { … … 1282 1290 -moz-border-radius: 4px; 1283 1291 -webkit-border-radius: 4px; 1292 padding: 0 10px 0; 1284 1293 } 1285 1294 div.activity-comments ul, div.activity-comments ul li { … … 1294 1303 div.activity-comments ul li { 1295 1304 border-top: 2px solid #fff; 1296 padding: 10px 15px 10px 0; 1297 margin-left: 15px; 1305 padding: 10px 0 0; 1298 1306 } 1299 1307 body.activity-permalink div.activity-comments ul li { 1300 1308 border-width: 1px; 1301 padding: 1 5px 0 15px0;1309 padding: 10px 0 0; 1302 1310 } 1303 1311 1304 1312 div.activity-comments ul li p:last-child { 1305 margin-bottom: 0;1313 margin-bottom: 10px; 1306 1314 } 1307 1315 … … 1315 1323 1316 1324 div.activity-comments ul li > ul { 1317 margin-top: 5px;1318 margin-left: 2 5px;1325 margin-top: 0; 1326 margin-left: 20px; 1319 1327 } 1320 1328 body.activity-permalink div.activity-comments ul li > ul { … … 1349 1357 display: none; 1350 1358 margin: 10px 0 10px 33px; 1351 background: #eee; 1352 border-bottom: 1px solid #ddd; 1353 border-right: 1px solid #ddd; 1359 background: #fafafa; 1360 border: 1px solid #ddd; 1354 1361 -moz-border-radius: 4px; 1355 1362 -webkit-border-radius: 4px; … … 1406 1413 1407 1414 div.activity-comments form div.ac-reply-content { 1408 margin-left: 25px;1415 margin-left: 50px; 1409 1416 padding-left: 15px; 1410 1417 color: #888; -
branches/1.2/bp-themes/bp-default/_inc/global.js
r3124 r3296 169 169 if ( 'fav' == type ) { 170 170 if ( !jq('div.item-list-tabs li#activity-favorites').length ) 171 jq('div.item-list-tabs ul li#activity-mentions').before( '<li id="activity-favorites"><a href="#">' + bp_terms_my_favs + ' (<span>0</span>)</a></li>');171 jq('div.item-list-tabs ul li#activity-mentions').before( '<li id="activity-favorites"><a href="#">' + BP_DTheme.my_favs + ' (<span>0</span>)</a></li>'); 172 172 173 173 target.removeClass('fav'); … … 461 461 jq('span.highlight span').click( function() { 462 462 if ( !jq('div.help').length ) { 463 jq(this).parent().after( '<div id="message" class="info help"><p>' + bp_terms_mention_explain + '</p></div>' );463 jq(this).parent().after( '<div id="message" class="info help"><p>' + BP_DTheme.mention_explain + '</p></div>' ); 464 464 jq('div.help').hide().slideDown(200); 465 465 } else { … … 713 713 button.fadeOut( 100, function() { 714 714 if ( jq(this).hasClass('accept') ) { 715 jq(this).html( bp_terms_accepted ).fadeIn(50);715 jq(this).html( BP_DTheme.accepted ).fadeIn(50); 716 716 jq(this).addClass('accepted'); 717 717 } else { 718 jq(this).html( bp_terms_rejected ).fadeIn(50);718 jq(this).html( BP_DTheme.rejected ).fadeIn(50); 719 719 jq(this).addClass('rejected'); 720 720 } … … 1167 1167 jq(this).html(response.contents); 1168 1168 jq(this).fadeIn(100); 1169 1170 /* Selectively hide comments */ 1171 bp_dtheme_hide_comments(); 1169 1172 }); 1170 1173 … … 1174 1177 1175 1178 jq('div.item-list-tabs li.selected').removeClass('loading'); 1176 1177 /* Selectively hide comments */1178 bp_dtheme_hide_comments();1179 1179 1180 1180 }, 'json' ); … … 1206 1206 1207 1207 if ( !i ) 1208 jq(this).before( '<li class="show-all"><a href="#' + parent_li.attr('id') + '/show-all/" title="' + bp_terms_show_all_comments + '">' + bp_terms_show_all + ' ' + comment_count + ' ' + bp_terms_comments + '</a></li>' );1208 jq(this).before( '<li class="show-all"><a href="#' + parent_li.attr('id') + '/show-all/" title="' + BP_DTheme.show_all_comments + '">' + BP_DTheme.show_all + ' ' + comment_count + ' ' + BP_DTheme.comments + '</a></li>' ); 1209 1209 } 1210 1210 }); -
branches/1.2/bp-themes/bp-default/activity/entry.php
r3124 r3296 56 56 <?php if ( is_user_logged_in() ) : ?> 57 57 <form action="<?php bp_activity_comment_form_action() ?>" method="post" id="ac-form-<?php bp_activity_id() ?>" class="ac-form"<?php bp_activity_comment_form_nojs_display() ?>> 58 <div class="ac-reply-avatar"><?php bp_loggedin_user_avatar( 'width= 25&height=25') ?></div>58 <div class="ac-reply-avatar"><?php bp_loggedin_user_avatar( 'width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT ) ?></div> 59 59 <div class="ac-reply-content"> 60 60 <div class="ac-textarea"> -
branches/1.2/bp-themes/bp-default/activity/index.php
r3124 r3296 58 58 <div class="item-list-tabs no-ajax" id="subnav"> 59 59 <ul> 60 <li class="feed"><a href="<?php bp_sitewide_activity_feed_link() ?>" title=" RSS Feed"><?php _e( 'RSS', 'buddypress' ) ?></a></li>60 <li class="feed"><a href="<?php bp_sitewide_activity_feed_link() ?>" title="<?php _e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ) ?></a></li> 61 61 62 62 <?php do_action( 'bp_activity_syndication_options' ) ?> -
branches/1.2/bp-themes/bp-default/activity/post-form.php
r3124 r3296 11 11 <div id="whats-new-avatar"> 12 12 <a href="<?php echo bp_loggedin_user_domain() ?>"> 13 <?php bp_loggedin_user_avatar( 'width= 60&height=60') ?>13 <?php bp_loggedin_user_avatar( 'width=' . BP_AVATAR_THUMB_WIDTH . '&height=' . BP_AVATAR_THUMB_HEIGHT ) ?> 14 14 </a> 15 15 </div> -
branches/1.2/bp-themes/bp-default/blogs/blogs-loop.php
r3124 r3296 5 5 <?php if ( bp_has_blogs( bp_ajax_querystring( 'blogs' ) ) ) : ?> 6 6 7 <div class="pagination">7 <div id="pag-top" class="pagination"> 8 8 9 <div class="pag-count" id="blog-dir-count ">9 <div class="pag-count" id="blog-dir-count-top"> 10 10 <?php bp_blogs_pagination_count() ?> 11 11 </div> 12 12 13 <div class="pagination-links" id="blog-dir-pag ">13 <div class="pagination-links" id="blog-dir-pag-top"> 14 14 <?php bp_blogs_pagination_links() ?> 15 15 </div> 16 16 17 17 </div> 18 19 <?php do_action( 'bp_before_directory_blogs_list' ) ?> 18 20 19 21 <ul id="blogs-list" class="item-list"> … … 33 35 34 36 <div class="action"> 35 <div class="generic-button blog-button visit"> 36 <a href="<?php bp_blog_permalink() ?>" class="visit" title="<?php _e( 'Visit Blog', 'buddypress' ) ?>"><?php _e( 'Visit Blog', 'buddypress' ) ?></a> 37 </div> 37 38 <?php do_action( 'bp_directory_blogs_actions' ) ?> 38 39 39 40 <div class="meta"> … … 41 42 </div> 42 43 43 <?php do_action( 'bp_directory_blogs_actions' ) ?>44 44 </div> 45 45 … … 54 54 <?php bp_blog_hidden_fields() ?> 55 55 56 <div id="pag-bottom" class="pagination"> 57 58 <div class="pag-count" id="blog-dir-count-bottom"> 59 <?php bp_blogs_pagination_count() ?> 60 </div> 61 62 <div class="pagination-links" id="blog-dir-pag-bottom"> 63 <?php bp_blogs_pagination_links() ?> 64 </div> 65 66 </div> 67 56 68 <?php else: ?> 57 69 -
branches/1.2/bp-themes/bp-default/comments.php
r3124 r3296 15 15 16 16 <?php 17 $numTrackBacks = 0; $numComments = 0; 18 foreach ( (array)$comments as $comment ) if ( get_comment_type() != "comment") $numTrackBacks++; else $numComments++; 17 // Only include comments 18 $numTrackBacks = 0; $numComments = 0; 19 foreach ( (array)$comments as $comment ) 20 if ( 'comment' != get_comment_type() ) 21 $numTrackBacks++; 22 else 23 $numComments++; 19 24 ?> 20 25 21 <span class="title"><?php the_title() ?></span> 22 <h3 id="comments"><?php comments_number( '', '', $numComments );?></h3> 26 <h3 id="comments"> 27 <?php 28 printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', $numComments, 'buddypress' ), 29 number_format_i18n( $numComments ), '<em>' . get_the_title() . '</em>' ); 30 ?> 31 </h3> 23 32 24 33 <?php do_action( 'bp_before_blog_comment_list' ) ?> … … 96 105 <?php do_action( 'bp_before_blog_comment_form' ) ?> 97 106 98 <form action="<?php echo get_option( 'siteurl' ); ?>/wp-comments-post.php" method="post" id="commentform" class="standard-form">107 <form action="<?php echo site_url( 'wp-comments-post.php' ) ?>" method="post" id="commentform" class="standard-form"> 99 108 100 109 <?php if ( $user_ID ) : ?> -
branches/1.2/bp-themes/bp-default/forums/forums-loop.php
r3124 r3296 1 <?php /* Querystring is set via AJAX in _inc/ajax.php - bp_dtheme_object_filter() */ ?> 2 3 <?php do_action( 'bp_before_forums_loop' ) ?> 4 1 5 <?php if ( bp_has_forum_topics( bp_ajax_querystring( 'forums' ) ) ) : ?> 2 6 3 <div class="pagination">7 <div id="pag-top" class="pagination"> 4 8 5 <div id="post-count" class="pag-count">9 <div class="pag-count" id="topic-count-top"> 6 10 <?php bp_forum_pagination_count() ?> 7 11 </div> 8 12 9 <div class="pagination-links" id="topic-pag ">13 <div class="pagination-links" id="topic-pag-top"> 10 14 <?php bp_forum_pagination() ?> 11 15 </div> … … 74 78 <?php do_action( 'bp_after_directory_forums_list' ) ?> 75 79 80 <div id="pag-bottom" class="pagination"> 81 82 <div class="pag-count" id="topic-count-bottom"> 83 <?php bp_forum_pagination_count() ?> 84 </div> 85 86 <div class="pagination-links" id="topic-pag-bottom"> 87 <?php bp_forum_pagination() ?> 88 </div> 89 90 </div> 91 76 92 <?php else: ?> 77 93 … … 81 97 82 98 <?php endif;?> 99 100 <?php do_action( 'bp_after_forums_loop' ) ?> -
branches/1.2/bp-themes/bp-default/functions.php
r3124 r3296 1 1 <?php 2 2 3 / * Stop the theme from killing WordPress if BuddyPress is not enabled. */3 // Stop the theme from killing WordPress if BuddyPress is not enabled. 4 4 if ( !class_exists( 'BP_Core_User' ) ) 5 5 return false; 6 6 7 / * Register the widget columns */7 // Register the widget columns 8 8 register_sidebars( 1, 9 9 array( 10 'name' => 'Sidebar',10 'name' => 'Sidebar', 11 11 'before_widget' => '<div id="%1$s" class="widget %2$s">', 12 'after_widget' => '</div>',13 'before_title' => '<h3 class="widgettitle">',14 'after_title' => '</h3>'12 'after_widget' => '</div>', 13 'before_title' => '<h3 class="widgettitle">', 14 'after_title' => '</h3>' 15 15 ) 16 16 ); 17 17 18 / * Load the AJAX functions for the theme */18 // Load the AJAX functions for the theme 19 19 require_once( TEMPLATEPATH . '/_inc/ajax.php' ); 20 20 21 / * Load the javascript for the theme */21 // Load the javascript for the theme 22 22 wp_enqueue_script( 'dtheme-ajax-js', get_template_directory_uri() . '/_inc/global.js', array( 'jquery' ) ); 23 23 24 /* Add the JS needed for blog comment replies */ 24 // Add words that we need to use in JS to the end of the page so they can be translated and still used. 25 $params = array( 26 'my_favs' => __( 'My Favorites', 'buddypress' ), 27 'accepted' => __( 'Accepted', 'buddypress' ), 28 'rejected' => __( 'Rejected', 'buddypress' ), 29 'show_all_comments' => __( 'Show all comments for this thread', 'buddypress' ), 30 'show_all' => __( 'Show all', 'buddypress' ), 31 'comments' => __( 'comments', 'buddypress' ), 32 'close' => __( 'Close', 'buddypress' ), 33 'mention_explain' => sprintf( __( "%s is a unique identifier for %s that you can type into any message on this site. %s will be sent a notification and a link to your message any time you use it.", 'buddypress' ), '@' . bp_get_displayed_user_username(), bp_get_user_firstname( bp_get_displayed_user_fullname() ), bp_get_user_firstname( bp_get_displayed_user_fullname() ) ) 34 ); 35 wp_localize_script( 'dtheme-ajax-js', 'BP_DTheme', $params ); 36 37 /** 38 * Add the JS needed for blog comment replies 39 * 40 * @package BuddyPress Theme 41 * @since 1.2 42 */ 25 43 function bp_dtheme_add_blog_comments_js() { 26 44 if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); … … 28 46 add_action( 'template_redirect', 'bp_dtheme_add_blog_comments_js' ); 29 47 30 /* HTML for outputting blog comments as defined by the WP comment API */ 48 /** 49 * HTML for outputting blog comments as defined by the WP comment API 50 * 51 * @param mixed $comment Comment record from database 52 * @param array $args Arguments from wp_list_comments() call 53 * @param int $depth Comment nesting level 54 * @see wp_list_comments() 55 * @package BuddyPress Theme 56 * @since 1.2 57 */ 31 58 function bp_dtheme_blog_comments( $comment, $args, $depth ) { 32 59 $GLOBALS['comment'] = $comment; ?> … … 66 93 67 94 </div> 68 </li>69 95 <?php 70 96 } 71 97 72 /* Filter the dropdown for selecting the page to show on front to include "Activity Stream" */ 98 /** 99 * Filter the dropdown for selecting the page to show on front to include "Activity Stream" 100 * 101 * @param string $page_html A list of pages as a dropdown (select list) 102 * @see wp_dropdown_pages() 103 * @return string 104 * @package BuddyPress Theme 105 * @since 1.2 106 */ 73 107 function bp_dtheme_wp_pages_filter( $page_html ) { 74 108 if ( !bp_is_active( 'activity' ) ) … … 89 123 add_filter( 'wp_dropdown_pages', 'bp_dtheme_wp_pages_filter' ); 90 124 91 /* Hijack the saving of page on front setting to save the activity stream setting */ 125 /** 126 * Hijack the saving of page on front setting to save the activity stream setting 127 * 128 * @param $string $oldvalue Previous value of get_option( 'page_on_front' ) 129 * @param $string $oldvalue New value of get_option( 'page_on_front' ) 130 * @return string 131 * @package BuddyPress Theme 132 * @since 1.2 133 */ 92 134 function bp_dtheme_page_on_front_update( $oldvalue, $newvalue ) { 93 if ( !is_admin() || !is_s ite_admin() )135 if ( !is_admin() || !is_super_admin() ) 94 136 return false; 95 137 … … 101 143 add_action( 'pre_update_option_page_on_front', 'bp_dtheme_page_on_front_update', 10, 2 ); 102 144 103 /* Load the activity stream template if settings allow */ 145 /** 146 * Load the activity stream template if settings allow 147 * 148 * @param string $template Absolute path to the page template 149 * @return string 150 * @global WP_Query $wp_query WordPress query object 151 * @package BuddyPress Theme 152 * @since 1.2 153 */ 104 154 function bp_dtheme_page_on_front_template( $template ) { 105 155 global $wp_query; … … 112 162 add_filter( 'page_template', 'bp_dtheme_page_on_front_template' ); 113 163 114 /* Return the ID of a page set as the home page. */ 164 /** 165 * Return the ID of a page set as the home page. 166 * 167 * @return false|int ID of page set as the home page 168 * @package BuddyPress Theme 169 * @since 1.2 170 */ 115 171 function bp_dtheme_page_on_front() { 116 172 if ( 'page' != get_option( 'show_on_front' ) ) … … 120 176 } 121 177 122 /* Force the page ID as a string to stop the get_posts query from kicking up a fuss. */ 178 /** 179 * Force the page ID as a string to stop the get_posts query from kicking up a fuss. 180 * 181 * @global WP_Query $wp_query WordPress query object 182 * @package BuddyPress Theme 183 * @since 1.2 184 */ 123 185 function bp_dtheme_fix_get_posts_on_activity_front() { 124 186 global $wp_query; … … 129 191 add_action( 'pre_get_posts', 'bp_dtheme_fix_get_posts_on_activity_front' ); 130 192 131 /* WP 3.0 requires there to be a non-null post in the posts array */ 193 /** 194 * WP 3.0 requires there to be a non-null post in the posts array 195 * 196 * @param array $posts Posts as retrieved by WP_Query 197 * @global WP_Query $wp_query WordPress query object 198 * @return array 199 * @package BuddyPress Theme 200 * @since 1.2.5 201 */ 132 202 function bp_dtheme_fix_the_posts_on_activity_front( $posts ) { 133 203 global $wp_query; … … 141 211 add_filter( 'the_posts', 'bp_dtheme_fix_the_posts_on_activity_front' ); 142 212 143 /**** 213 /** 214 * Add secondary avatar image to this activity stream's record, if supported 215 * 216 * @param string $action The text of this activity 217 * @param BP_Activity_Activity $activity Activity object 218 * @return string 219 * @package BuddyPress Theme 220 * @since 1.2.6 221 */ 222 function bp_dtheme_activity_secondary_avatars( $action, $activity ) { 223 switch ( $activity->component ) { 224 case 'groups' : 225 case 'blogs' : 226 case 'friends' : 227 // Only insert avatar if one exists 228 if ( $secondary_avatar = bp_get_activity_secondary_avatar() ) { 229 $reverse_content = strrev( $action ); 230 $position = strpos( $reverse_content, 'a<' ); 231 $action = substr_replace( $action, $secondary_avatar, -$position - 2, 0 ); 232 } 233 break; 234 } 235 236 return $action; 237 } 238 add_filter( 'bp_get_activity_action_pre_meta', 'bp_dtheme_activity_secondary_avatars', 10, 2 ); 239 240 /** 144 241 * Custom header image support. You can remove this entirely in a child theme by adding this line 145 242 * to your functions.php: define( 'BP_DTHEME_DISABLE_CUSTOM_HEADER', true ); 243 * 244 * @package BuddyPress Theme 245 * @since 1.2 146 246 */ 147 247 function bp_dtheme_add_custom_header_support() { 148 / * Set the defaults for the custom header image (http://ryan.boren.me/2007/01/07/custom-image-header-api/) */248 // Set the defaults for the custom header image (http://ryan.boren.me/2007/01/07/custom-image-header-api/) 149 249 define( 'HEADER_TEXTCOLOR', 'FFFFFF' ); 150 250 define( 'HEADER_IMAGE', '%s/_inc/images/default_header.jpg' ); // %s is theme dir uri … … 218 318 add_action( 'init', 'bp_dtheme_add_custom_header_support' ); 219 319 220 /* Show a notice when the theme is activated - workaround by Ozh (http://old.nabble.com/Activation-hook-exist-for-themes--td25211004.html) */ 320 /** 321 * Show a notice when the theme is activated - workaround by Ozh (http://old.nabble.com/Activation-hook-exist-for-themes--td25211004.html) 322 * 323 * @package BuddyPress Theme 324 * @since 1.2 325 */ 221 326 function bp_dtheme_show_notice() { ?> 222 327 <div id="message" class="updated fade"> … … 230 335 add_action( 'admin_notices', 'bp_dtheme_show_notice' ); 231 336 232 /* Add words that we need to use in JS to the end of the page so they can be translated and still used. */ 233 function bp_dtheme_js_terms() { ?> 234 <script type="text/javascript"> 235 var bp_terms_my_favs = '<?php _e( "My Favorites", "buddypress" ) ?>'; 236 var bp_terms_accepted = '<?php _e( "Accepted", "buddypress" ) ?>'; 237 var bp_terms_rejected = '<?php _e( "Rejected", "buddypress" ) ?>'; 238 var bp_terms_show_all_comments = '<?php _e( "Show all comments for this thread", "buddypress" ) ?>'; 239 var bp_terms_show_all = '<?php _e( "Show all", "buddypress" ) ?>'; 240 var bp_terms_comments = '<?php _e( "comments", "buddypress" ) ?>'; 241 var bp_terms_close = '<?php _e( "Close", "buddypress" ) ?>'; 242 var bp_terms_mention_explain = '<?php printf( __( "%s is a unique identifier for %s that you can type into any message on this site. %s will be sent a notification and a link to your message any time you use it.", "buddypress" ), '@' . bp_get_displayed_user_username(), bp_get_user_firstname(bp_get_displayed_user_fullname()), bp_get_user_firstname(bp_get_displayed_user_fullname()) ); ?>'; 243 </script> 244 <?php 245 } 246 add_action( 'wp_footer', 'bp_dtheme_js_terms' ); 337 338 // Member Buttons 339 if ( bp_is_active( 'friends' ) ) 340 add_action( 'bp_member_header_actions', 'bp_add_friend_button' ); 341 342 if ( bp_is_active( 'activity' ) ) 343 add_action( 'bp_member_header_actions', 'bp_send_public_message_button' ); 344 345 if ( bp_is_active( 'messages' ) ) 346 add_action( 'bp_member_header_actions', 'bp_send_private_message_button' ); 347 348 // Group Buttons 349 if ( bp_is_active( 'groups' ) ) { 350 add_action( 'bp_group_header_actions', 'bp_group_join_button' ); 351 add_action( 'bp_group_header_actions', 'bp_group_new_topic_button' ); 352 add_action( 'bp_directory_groups_actions', 'bp_group_join_button' ); 353 } 354 355 // Blog Buttons 356 if ( bp_is_active( 'blogs' ) ) 357 add_action( 'bp_directory_blogs_actions', 'bp_blogs_visit_blog_button' ); 247 358 248 359 ?> -
branches/1.2/bp-themes/bp-default/groups/create.php
r3124 r3296 53 53 </div> 54 54 <?php else : ?> 55 <?php if ( is_s ite_admin() ) : ?>55 <?php if ( is_super_admin() ) : ?> 56 56 <div class="checkbox"> 57 57 <label><input type="checkbox" disabled="disabled" name="disabled" id="disabled" value="0" /> <?php printf( __('<strong>Attention Site Admin:</strong> Group forums require the <a href="%s">correct setup and configuration</a> of a bbPress installation.', 'buddypress' ), bp_get_root_domain() . '/wp-admin/admin.php?page=bb-forums-setup' ) ?></label> -
branches/1.2/bp-themes/bp-default/groups/groups-loop.php
r3124 r3296 5 5 <?php if ( bp_has_groups( bp_ajax_querystring( 'groups' ) ) ) : ?> 6 6 7 <div class="pagination">7 <div id="pag-top" class="pagination"> 8 8 9 <div class="pag-count" id="group-dir-count ">9 <div class="pag-count" id="group-dir-count-top"> 10 10 <?php bp_groups_pagination_count() ?> 11 11 </div> 12 12 13 <div class="pagination-links" id="group-dir-pag ">13 <div class="pagination-links" id="group-dir-pag-top"> 14 14 <?php bp_groups_pagination_links() ?> 15 15 </div> 16 16 17 17 </div> 18 19 <?php do_action( 'bp_before_directory_groups_list' ) ?> 18 20 19 21 <ul id="groups-list" class="item-list"> … … 32 34 33 35 <?php do_action( 'bp_directory_groups_item' ) ?> 36 34 37 </div> 35 38 36 39 <div class="action"> 37 <?php bp_group_join_button() ?> 40 41 <?php do_action( 'bp_directory_groups_actions' ) ?> 38 42 39 43 <div class="meta"> 44 40 45 <?php bp_group_type() ?> / <?php bp_group_member_count() ?> 46 41 47 </div> 42 48 43 <?php do_action( 'bp_directory_groups_actions' ) ?>44 49 </div> 45 50 … … 50 55 </ul> 51 56 52 <?php do_action( 'bp_after_groups_loop' ) ?> 57 <?php do_action( 'bp_after_directory_groups_list' ) ?> 58 59 <div id="pag-bottom" class="pagination"> 60 61 <div class="pag-count" id="group-dir-count-bottom"> 62 <?php bp_groups_pagination_count() ?> 63 </div> 64 65 <div class="pagination-links" id="group-dir-pag-bottom"> 66 <?php bp_groups_pagination_links() ?> 67 </div> 68 69 </div> 53 70 54 71 <?php else: ?> … … 59 76 60 77 <?php endif; ?> 78 79 <?php do_action( 'bp_after_groups_loop' ) ?> -
branches/1.2/bp-themes/bp-default/groups/single/activity.php
r3124 r3296 1 1 <div class="item-list-tabs no-ajax" id="subnav"> 2 2 <ul> 3 <li class="feed"><a href="<?php bp_group_activity_feed_link() ?>" title=" RSS Feed"><?php _e( 'RSS', 'buddypress' ) ?></a></li>3 <li class="feed"><a href="<?php bp_group_activity_feed_link() ?>" title="<?php _e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ) ?></a></li> 4 4 5 5 <?php do_action( 'bp_group_activity_syndication_options' ) ?> -
branches/1.2/bp-themes/bp-default/groups/single/admin.php
r3124 r3296 117 117 118 118 <?php if ( bp_get_group_has_avatar() ) : ?> 119 119 120 <p><?php _e( "If you'd like to remove the existing avatar but not upload a new one, please use the delete avatar button.", 'buddypress' ) ?></p> 120 121 121 <div class="generic-button" id="delete-group-avatar-button"> 122 <a class="edit" href="<?php bp_group_avatar_delete_link() ?>" title="<?php _e( 'Delete Avatar', 'buddypress' ) ?>"><?php _e( 'Delete Avatar', 'buddypress' ) ?></a> 123 </div> 122 <?php bp_button( array( 'id' => 'delete_group_avatar', 'component' => 'groups', 'wrapper_id' => 'delete-group-avatar-button', 'link_class' => 'edit', 'link_href' => bp_get_group_avatar_delete_link(), 'link_title' => __( 'Delete Avatar', 'buddypress' ), 'link_text' => __( 'Delete Avatar', 'buddypress' ) ) ); ?> 123 124 124 <?php endif; ?> 125 125 … … 195 195 <?php while ( bp_group_members() ) : bp_group_the_member(); ?> 196 196 197 <?php if ( bp_get_group_member_is_banned() ) : ?> 198 199 <li class="banned-user"> 200 <?php bp_group_member_avatar_mini() ?> 201 202 <h5><?php bp_group_member_link() ?> <?php _e( '(banned)', 'buddypress') ?> <span class="small"> - <a href="<?php bp_group_member_unban_link() ?>" class="confirm" title="<?php _e( 'Kick and ban this member', 'buddypress' ) ?>"><?php _e( 'Remove Ban', 'buddypress' ); ?></a> </h5> 203 204 <?php else : ?> 205 206 <li> 207 <?php bp_group_member_avatar_mini() ?> 208 <h5><?php bp_group_member_link() ?> <span class="small"> - <a href="<?php bp_group_member_ban_link() ?>" class="confirm" title="<?php _e( 'Kick and ban this member', 'buddypress' ); ?>"><?php _e( 'Kick & Ban', 'buddypress' ); ?></a> | <a href="<?php bp_group_member_promote_mod_link() ?>" class="confirm" title="<?php _e( 'Promote to Mod', 'buddypress' ); ?>"><?php _e( 'Promote to Mod', 'buddypress' ); ?></a> | <a href="<?php bp_group_member_promote_admin_link() ?>" class="confirm" title="<?php _e( 'Promote to Admin', 'buddypress' ); ?>"><?php _e( 'Promote to Admin', 'buddypress' ); ?></a></span></h5> 209 210 <?php endif; ?> 211 212 <?php do_action( 'bp_group_manage_members_admin_item' ); ?> 213 </li> 197 <li class="<?php bp_group_member_css_class(); ?>"> 198 <?php bp_group_member_avatar_mini() ?> 199 200 <h5> 201 <?php bp_group_member_link() ?> 202 203 <?php if ( bp_get_group_member_is_banned() ) _e( '(banned)', 'buddypress'); ?> 204 205 <span class="small"> - 206 207 <?php if ( bp_get_group_member_is_banned() ) : ?> 208 209 <a href="<?php bp_group_member_unban_link() ?>" class="confirm" title="<?php _e( 'Unban this member', 'buddypress' ) ?>"><?php _e( 'Remove Ban', 'buddypress' ); ?></a> 210 211 <?php else : ?> 212 213 <a href="<?php bp_group_member_ban_link() ?>" class="confirm" title="<?php _e( 'Kick and ban this member', 'buddypress' ); ?>"><?php _e( 'Kick & Ban', 'buddypress' ); ?></a> 214 | <a href="<?php bp_group_member_promote_mod_link() ?>" class="confirm" title="<?php _e( 'Promote to Mod', 'buddypress' ); ?>"><?php _e( 'Promote to Mod', 'buddypress' ); ?></a> 215 | <a href="<?php bp_group_member_promote_admin_link() ?>" class="confirm" title="<?php _e( 'Promote to Admin', 'buddypress' ); ?>"><?php _e( 'Promote to Admin', 'buddypress' ); ?></a> 216 217 <?php endif; ?> 218 219 | <a href="<?php bp_group_member_remove_link() ?>" class="confirm" title="<?php _e( 'Remove this member', 'buddypress' ); ?>"><?php _e( 'Remove from group', 'buddypress' ); ?></a> 220 221 <?php do_action( 'bp_group_manage_members_admin_item' ); ?> 222 223 </span> 224 </h5> 225 </li> 214 226 215 227 <?php endwhile; ?> … … 249 261 <div class="action"> 250 262 251 <div class="generic-button accept"> 252 <a href="<?php bp_group_request_accept_link() ?>"><?php _e( 'Accept', 'buddypress' ); ?></a> 253 </div> 254 255 256 257 <div class="generic-button reject"> 258 <a href="<?php bp_group_request_reject_link() ?>"><?php _e( 'Reject', 'buddypress' ); ?></a> 259 </div> 263 <?php bp_button( array( 'id' => 'group_membership_accept', 'component' => 'groups', 'wrapper_class' => 'accept', 'link_href' => bp_get_group_request_accept_link(), 'link_title' => __( 'Accept', 'buddypress' ), 'link_text' => __( 'Accept', 'buddypress' ) ) ); ?> 264 265 <?php bp_button( array( 'id' => 'group_membership_reject', 'component' => 'groups', 'wrapper_class' => 'reject', 'link_href' => bp_get_group_request_reject_link(), 'link_title' => __( 'Reject', 'buddypress' ), 'link_text' => __( 'Reject', 'buddypress' ) ) ); ?> 260 266 261 267 <?php do_action( 'bp_group_membership_requests_admin_item_action' ); ?> -
branches/1.2/bp-themes/bp-default/groups/single/forum.php
r3124 r3296 26 26 <?php do_action( 'bp_before_group_forum_post_new' ) ?> 27 27 28 <?php if ( !bp_group_is_member() ) : ?>28 <?php if ( bp_groups_auto_join() && !bp_group_is_member() ) : ?> 29 29 <p><?php _e( 'You will auto join this group when you start a new topic.', 'buddypress' ) ?></p> 30 30 <?php endif; ?> -
branches/1.2/bp-themes/bp-default/groups/single/forum/topic.php
r3124 r3296 84 84 <p id="post-reply"></p> 85 85 86 <?php if ( !bp_group_is_member() ) : ?>86 <?php if ( bp_groups_auto_join() && !bp_group_is_member() ) : ?> 87 87 <p><?php _e( 'You will auto join this group when you reply to this topic.', 'buddypress' ) ?></p> 88 88 <?php endif; ?> -
branches/1.2/bp-themes/bp-default/groups/single/group-header.php
r3124 r3296 36 36 <?php bp_group_description() ?> 37 37 38 <?php if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() ) : ?> 39 <div class="generic-button group-button"> 40 <a href="#post-new" class=""><?php _e( 'New Topic', 'buddypress' ) ?></a> 41 </div> 42 <?php endif; ?> 38 <div id="item-buttons"> 43 39 44 <?php bp_group_join_button() ?> 40 <?php do_action( 'bp_group_header_actions' ); ?> 41 42 </div><!-- #item-buttons --> 45 43 46 44 <?php do_action( 'bp_group_header_meta' ) ?> -
branches/1.2/bp-themes/bp-default/members/members-loop.php
r3124 r3296 5 5 <?php if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : ?> 6 6 7 <div class="pagination">7 <div id="pag-top" class="pagination"> 8 8 9 <div class="pag-count" id="member-dir-count ">9 <div class="pag-count" id="member-dir-count-top"> 10 10 <?php bp_members_pagination_count() ?> 11 11 </div> 12 12 13 <div class="pagination-links" id="member-dir-pag ">13 <div class="pagination-links" id="member-dir-pag-top"> 14 14 <?php bp_members_pagination_links() ?> 15 15 </div> … … 30 30 <div class="item-title"> 31 31 <a href="<?php bp_member_permalink() ?>"><?php bp_member_name() ?></a> 32 32 33 <?php if ( bp_get_member_latest_update() ) : ?> 34 33 35 <span class="update"> - <?php bp_member_latest_update( 'length=10' ) ?></span> 36 34 37 <?php endif; ?> 38 35 39 </div> 40 36 41 <div class="item-meta"><span class="activity"><?php bp_member_last_active() ?></span></div> 37 42 … … 42 47 * If you want to show specific profile fields here you can, 43 48 * but it'll add an extra query for each member in the loop 44 * (only one rega dless of the number of fields you show):49 * (only one regardless of the number of fields you show): 45 50 * 46 51 * bp_member_profile_data( 'field=the field name' ); … … 50 55 51 56 <div class="action"> 52 <?php bp_member_add_friend_button() ?>53 57 54 <?php do_action( 'bp_directory_members_actions' ) ?> 58 <?php do_action( 'bp_directory_members_actions' ); ?> 59 55 60 </div> 56 61 … … 65 70 <?php bp_member_hidden_fields() ?> 66 71 72 <div id="pag-bottom" class="pagination"> 73 74 <div class="pag-count" id="member-dir-count-bottom"> 75 <?php bp_members_pagination_count() ?> 76 </div> 77 78 <div class="pagination-links" id="member-dir-pag-bottom"> 79 <?php bp_members_pagination_links() ?> 80 </div> 81 82 </div> 83 67 84 <?php else: ?> 68 85 -
branches/1.2/bp-themes/bp-default/members/single/member-header.php
r3124 r3296 22 22 23 23 <div id="item-buttons"> 24 <?php if ( function_exists( 'bp_add_friend_button' ) ) : ?>25 <?php bp_add_friend_button() ?>26 <?php endif; ?>27 24 28 <?php if ( is_user_logged_in() && !bp_is_my_profile() && function_exists( 'bp_send_public_message_link' ) ) : ?> 29 <div class="generic-button" id="post-mention"> 30 <a href="<?php bp_send_public_message_link() ?>" title="<?php _e( 'Mention this user in a new public message, this will send the user a notification to get their attention.', 'buddypress' ) ?>"><?php _e( 'Mention this User', 'buddypress' ) ?></a> 31 </div> 32 <?php endif; ?> 25 <?php do_action( 'bp_member_header_actions' ); ?> 33 26 34 <?php if ( is_user_logged_in() && !bp_is_my_profile() && function_exists( 'bp_send_private_message_link' ) ) : ?>35 <div class="generic-button" id="send-private-message">36 <a href="<?php bp_send_private_message_link() ?>" title="<?php _e( 'Send a private message to this user.', 'buddypress' ) ?>"><?php _e( 'Send Private Message', 'buddypress' ) ?></a>37 </div>38 <?php endif; ?>39 27 </div><!-- #item-buttons --> 40 28 -
branches/1.2/bp-themes/bp-default/members/single/messages/compose.php
r3124 r3296 11 11 </ul> 12 12 13 <?php if ( is_s ite_admin() ) : ?>13 <?php if ( is_super_admin() ) : ?> 14 14 <input type="checkbox" id="send-notice" name="send-notice" value="1" /> <?php _e( "This is a notice to all users.", "buddypress" ) ?> 15 15 <?php endif; ?> -
branches/1.2/bp-themes/bp-default/registration/register.php
r3124 r3296 208 208 209 209 <div class="submit"> 210 <input type="submit" name="signup_submit" id="signup_submit" value="<?php _e( 'Complete Sign Up', 'buddypress' ) ?> →" />210 <input type="submit" name="signup_submit" id="signup_submit" value="<?php _e( 'Complete Sign Up', 'buddypress' ) ?> →" /> 211 211 </div> 212 212 -
branches/1.2/bp-themes/bp-default/sidebar.php
r3124 r3296 15 15 </a> 16 16 17 <h4><?php bp_loggedinuser_link()?></h4>17 <h4><?php echo bp_core_get_userlink( bp_loggedin_user_id() ); ?></h4> 18 18 <a class="button logout" href="<?php echo wp_logout_url( bp_get_root_domain() ) ?>"><?php _e( 'Log Out', 'buddypress' ) ?></a> 19 19 … … 40 40 <form name="login-form" id="sidebar-login-form" class="standard-form" action="<?php echo site_url( 'wp-login.php', 'login_post' ) ?>" method="post"> 41 41 <label><?php _e( 'Username', 'buddypress' ) ?><br /> 42 <input type="text" name="log" id="sidebar-user-login" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" /></label>42 <input type="text" name="log" id="sidebar-user-login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" /></label> 43 43 44 44 <label><?php _e( 'Password', 'buddypress' ) ?><br /> -
branches/1.2/bp-themes/bp-default/single.php
r3124 r3296 27 27 <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e( 'Permanent Link to', 'buddypress' ) ?> <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 28 28 29 <p class="date"><?php the_time() ?> <em><?php _e( 'in', 'buddypress' ) ?> <?php the_category(', ') ?> <?php printf( __( 'by %s', 'buddypress' ), bp_core_get_userlink( $post->post_author ) ) ?></em> </p>29 <p class="date"><?php the_time() ?> <em><?php _e( 'in', 'buddypress' ) ?> <?php the_category(', ') ?> <?php printf( __( 'by %s', 'buddypress' ), bp_core_get_userlink( $post->post_author ) ) ?></em> <?php edit_post_link( __( 'Edit this entry', 'buddypress' ), '<em class="edit-link">', '</em>' ); ?></p> 30 30 31 31 <div class="entry"> -
branches/1.2/bp-themes/bp-default/style.css
r3124 r3296 3 3 Theme URI: http://buddypress.org/extend/themes/ 4 4 Description: The default theme for BuddyPress. 5 Version: 1.2. 5.25 Version: 1.2.6 6 6 Author: BuddyPress.org 7 7 Author URI: http://buddypress.org
Note: See TracChangeset
for help on using the changeset viewer.