Skip to:
Content

BuddyPress.org

Changeset 7756


Ignore:
Timestamp:
01/24/2014 11:48:48 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Replace BP_PLUGIN_DIR and BP_PLUGIN_URL constant usages with plugin_dir and plugin_url BuddyPress variables, respectively. Also replaces $bp global touches with buddypress() calls within the above scopes.

Location:
trunk
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-activity/bp-activity-admin.php

    r7580 r7756  
    190190 */
    191191function bp_activity_admin_load() {
    192     global $bp, $bp_activity_list_table;
     192    global $bp_activity_list_table;
     193
     194    $bp = buddypress();
    193195
    194196    // Decide whether to load the dev version of the CSS and JavaScript
     
    277279
    278280    // Enqueue CSS and JavaScript
    279     wp_enqueue_script( 'bp_activity_admin_js', BP_PLUGIN_URL . "bp-activity/admin/js/admin.{$min}js",   array( 'jquery', 'wp-ajax-response' ), bp_get_version(), true );
    280     wp_enqueue_style( 'bp_activity_admin_css', BP_PLUGIN_URL . "bp-activity/admin/css/admin.{$min}css", array(),                               bp_get_version()       );
     281    wp_enqueue_script( 'bp_activity_admin_js', $bp->plugin_url . "bp-activity/admin/js/admin.{$min}js",   array( 'jquery', 'wp-ajax-response' ), bp_get_version(), true );
     282    wp_enqueue_style( 'bp_activity_admin_css', $bp->plugin_url . "bp-activity/admin/css/admin.{$min}css", array(),                               bp_get_version()       );
    281283
    282284    // Handle spam/un-spam/delete of activities
  • trunk/bp-activity/bp-activity-loader.php

    r7454 r7756  
    2525     * @since BuddyPress (1.5)
    2626     */
    27     function __construct() {
     27    public function __construct() {
    2828        parent::start(
    2929            'activity',
    3030            __( 'Activity Streams', 'buddypress' ),
    31             BP_PLUGIN_DIR,
     31            buddypress()->plugin_dir,
    3232            array(
    3333                'adminbar_myaccount_order' => 10
  • trunk/bp-activity/bp-activity-template.php

    r7751 r7756  
    17781778                // have the new template) will still work.
    17791779                if ( !$template ) {
    1780                     $template = BP_PLUGIN_DIR . '/bp-themes/bp-default/activity/comment.php';
     1780                    $template = buddypress()->plugin_dir . '/bp-themes/bp-default/activity/comment.php';
    17811781                }
    17821782
  • trunk/bp-blogs/bp-blogs-loader.php

    r7555 r7756  
    2020     * @since BuddyPress (1.5.0)
    2121     */
    22     function __construct() {
     22    public function __construct() {
    2323        parent::start(
    2424            'blogs',
    2525            __( 'Site Tracking', 'buddypress' ),
    26             BP_PLUGIN_DIR,
     26            buddypress()->plugin_dir,
    2727            array(
    2828                'adminbar_myaccount_order' => 30
  • trunk/bp-core/admin/bp-core-components.php

    r7614 r7756  
    248248
    249249        // Save settings and upgrade schema
    250         require_once( BP_PLUGIN_DIR . '/bp-core/admin/bp-core-schema.php' );
     250        require_once( $bp->plugin_dir . '/bp-core/admin/bp-core-schema.php' );
    251251
    252252        $submitted = stripslashes_deep( $_POST['bp_components'] );
  • trunk/bp-core/bp-core-adminbar.php

    r7720 r7756  
    103103
    104104    // Toolbar styles
    105     $stylesheet = BP_PLUGIN_URL . "bp-core/css/admin-bar{$min}.css";
     105    $stylesheet = buddypress()->plugin_url . "bp-core/css/admin-bar{$min}.css";
    106106
    107107    wp_enqueue_style( 'bp-admin-bar', apply_filters( 'bp_core_admin_bar_css', $stylesheet ), array( 'admin-bar' ), bp_get_version() );
  • trunk/bp-core/bp-core-avatars.php

    r7585 r7756  
    1313function bp_core_set_avatar_constants() {
    1414
     15    $bp = buddypress();
     16
    1517    if ( !defined( 'BP_AVATAR_THUMB_WIDTH' ) )
    1618        define( 'BP_AVATAR_THUMB_WIDTH', 50 );
     
    2931
    3032    if ( !defined( 'BP_AVATAR_ORIGINAL_MAX_FILESIZE' ) ) {
    31 
    32         $bp = buddypress();
    3333
    3434        if ( !isset( $bp->site_options['fileupload_maxk'] ) ) {
     
    4040
    4141    if ( !defined( 'BP_AVATAR_DEFAULT' ) )
    42         define( 'BP_AVATAR_DEFAULT', BP_PLUGIN_URL . 'bp-core/images/mystery-man.jpg' );
     42        define( 'BP_AVATAR_DEFAULT', $bp->plugin_url . 'bp-core/images/mystery-man.jpg' );
    4343
    4444    if ( !defined( 'BP_AVATAR_DEFAULT_THUMB' ) )
    45         define( 'BP_AVATAR_DEFAULT_THUMB', BP_PLUGIN_URL . 'bp-core/images/mystery-man-50.jpg' );
     45        define( 'BP_AVATAR_DEFAULT_THUMB', $bp->plugin_url . 'bp-core/images/mystery-man-50.jpg' );
    4646
    4747    if ( ! defined( 'BP_SHOW_AVATARS' ) ) {
     
    472472    // No avatar was found, and we've been told not to use a gravatar.
    473473    } else {
    474         $gravatar = apply_filters( "bp_core_default_avatar_$object", BP_PLUGIN_URL . 'bp-core/images/mystery-man.jpg', $params );
     474        $gravatar = apply_filters( "bp_core_default_avatar_$object", $bp->plugin_url . 'bp-core/images/mystery-man.jpg', $params );
    475475    }
    476476
  • trunk/bp-core/bp-core-buddybar.php

    r7434 r7756  
    700700    $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    701701
    702     if ( file_exists( get_stylesheet_directory() . '/_inc/css/adminbar.css' ) ) // Backwards compatibility
     702    if ( file_exists( get_stylesheet_directory() . '/_inc/css/adminbar.css' ) ) { // Backwards compatibility
    703703        $stylesheet = get_stylesheet_directory_uri() . '/_inc/css/adminbar.css';
    704     else
    705         $stylesheet = BP_PLUGIN_URL . "bp-core/css/buddybar{$min}.css";
     704    } else {
     705        $stylesheet = buddypress()->plugin_url . "bp-core/css/buddybar{$min}.css";
     706    }
    706707
    707708    wp_enqueue_style( 'bp-admin-bar', apply_filters( 'bp_core_buddybar_rtl_css', $stylesheet ), array(), bp_get_version() );
  • trunk/bp-core/bp-core-loader.php

    r7521 r7756  
    2222     * @uses BP_Core::bootstrap()
    2323     */
    24     function __construct() {
     24    public function __construct() {
    2525        parent::start(
    2626            'core',
    27             __( 'BuddyPress Core', 'buddypress' )
    28             , BP_PLUGIN_DIR
     27            __( 'BuddyPress Core', 'buddypress' ),
     28            buddypress()->plugin_dir
    2929        );
    3030
     
    9696
    9797        // Loop through optional components
    98         foreach( $bp->optional_components as $component )
    99             if ( bp_is_active( $component ) && file_exists( BP_PLUGIN_DIR . '/bp-' . $component . '/bp-' . $component . '-loader.php' ) )
    100                 include( BP_PLUGIN_DIR . '/bp-' . $component . '/bp-' . $component . '-loader.php' );
     98        foreach( $bp->optional_components as $component ) {
     99            if ( bp_is_active( $component ) && file_exists( $bp->plugin_dir . '/bp-' . $component . '/bp-' . $component . '-loader.php' ) ) {
     100                include( $bp->plugin_dir . '/bp-' . $component . '/bp-' . $component . '-loader.php' );
     101            }
     102        }
    101103
    102104        // Loop through required components
    103         foreach( $bp->required_components as $component )
    104             if ( file_exists( BP_PLUGIN_DIR . '/bp-' . $component . '/bp-' . $component . '-loader.php' ) )
    105                 include( BP_PLUGIN_DIR . '/bp-' . $component . '/bp-' . $component . '-loader.php' );
     105        foreach( $bp->required_components as $component ) {
     106            if ( file_exists( $bp->plugin_dir . '/bp-' . $component . '/bp-' . $component . '-loader.php' ) ) {
     107                include( $bp->plugin_dir . '/bp-' . $component . '/bp-' . $component . '-loader.php' );
     108            }
     109        }
    106110
    107111        // Add Core to required components
  • trunk/bp-core/bp-core-update.php

    r7551 r7756  
    195195    ) );
    196196
    197     require_once( BP_PLUGIN_DIR . '/bp-core/admin/bp-core-schema.php' );
     197    require_once( buddypress()->plugin_dir . '/bp-core/admin/bp-core-schema.php' );
    198198
    199199    // Install BP schema and activate only Activity and XProfile
  • trunk/bp-core/bp-core-widgets.php

    r7485 r7756  
    157157        if ( is_active_widget( false, false, $this->id_base ) && !is_admin() && !is_network_admin() ) {
    158158            $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    159             wp_enqueue_script( 'bp_core_widget_members-js', BP_PLUGIN_URL . "bp-core/js/widget-members{$min}.js", array( 'jquery' ), bp_get_version() );
     159            wp_enqueue_script( 'bp_core_widget_members-js', buddypress()->plugin_url . "bp-core/js/widget-members{$min}.js", array( 'jquery' ), bp_get_version() );
    160160        }
    161161    }
  • trunk/bp-forums/bp-forums-bbpress-sa.php

    r7468 r7756  
    1616 */
    1717function bp_forums_load_bbpress() {
    18     global $bp, $wpdb, $wp_roles, $current_user, $wp_users_object;
     18    global $wpdb, $wp_roles, $current_user, $wp_users_object;
    1919    global $bb, $bbdb, $bb_table_prefix, $bb_current_user;
    2020    global $bb_roles, $wp_taxonomy_object, $bb_queries;
    21 
     21   
    2222    // Return if we've already run this function.
    2323    if ( is_object( $bbdb ) )
     
    2727        return false;
    2828
    29     define( 'BB_PATH', BP_PLUGIN_DIR . '/bp-forums/bbpress/' );
    30     define( 'BACKPRESS_PATH', BP_PLUGIN_DIR . '/bp-forums/bbpress/bb-includes/backpress/' );
    31     define( 'BB_URL', BP_PLUGIN_URL . 'bp-forums/bbpress/' );
     29    $bp = buddypress();
     30
     31    define( 'BB_PATH',        $bp->plugin_dir . '/bp-forums/bbpress/' );
     32    define( 'BACKPRESS_PATH', $bp->plugin_dir . '/bp-forums/bbpress/bb-includes/backpress/' );
     33    define( 'BB_URL',         $bp->plugin_url . 'bp-forums/bbpress/' );
    3234    define( 'BB_INC', 'bb-includes/' );
    3335
  • trunk/bp-forums/bp-forums-loader.php

    r7554 r7756  
    2323     * @since BuddyPress (1.5.0)
    2424     */
    25     function __construct() {
     25    public function __construct() {
    2626        parent::start(
    2727            'forums',
    2828            __( 'Discussion Forums', 'buddypress' ),
    29             BP_PLUGIN_DIR,
     29            buddypress()->plugin_dir,
    3030            array(
    3131                'adminbar_myaccount_order' => 80
  • trunk/bp-forums/deprecated/1.6.php

    r7213 r7756  
    192192
    193193        default:
    194             if ( !file_exists( BP_PLUGIN_DIR . '/bp-forums/bbpress/' ) ) { ?>
     194            if ( !file_exists( buddypress()->plugin_dir . '/bp-forums/bbpress/' ) ) { ?>
    195195
    196196                <div id="message" class="error">
  • trunk/bp-forums/deprecated/1.7.php

    r7213 r7756  
    5555
    5656function bp_forums_bbpress_install( $location = '' ) {
    57     global $wpdb, $bbdb, $bp;
     57    global $wpdb, $bbdb;
    5858
    5959    check_admin_referer( 'bp_forums_new_install_init' );
     
    6363    }
    6464
     65    $bp = buddypress();
     66
    6567    // Create the bb-config.php file
    6668    $initial_write = bp_forums_bbpress_write(
    67         BP_PLUGIN_DIR . '/bp-forums/bbpress/bb-config-sample.php',
     69        $bp->plugin_dir . '/bp-forums/bbpress/bb-config-sample.php',
    6870        $location,
    6971        array(
     
    9799    $file .= "\n" .   '$bb->custom_user_table = \'' . $wpdb->users . '\';';
    98100    $file .= "\n" .   '$bb->custom_user_meta_table = \'' . $wpdb->usermeta . '\';';
    99     $file .= "\n\n" . '$bb->uri = \'' . BP_PLUGIN_URL . '/bp-forums/bbpress/\';';
     101    $file .= "\n\n" . '$bb->uri = \'' . $bp->plugin_url . '/bp-forums/bbpress/\';';
    100102    $file .= "\n" .   '$bb->name = \'' . get_blog_option( bp_get_root_blog_id(), 'blogname' ) . ' ' . __( 'Forums', 'buddypress' ) . '\';';
    101103
  • trunk/bp-friends/bp-friends-loader.php

    r7558 r7756  
    1919     * @since BuddyPress (1.5.0)
    2020     */
    21     function __construct() {
     21    public function __construct() {
    2222        parent::start(
    2323            'friends',
    2424            __( 'Friend Connections', 'buddypress' ),
    25             BP_PLUGIN_DIR,
     25            buddypress()->plugin_dir,
    2626            array(
    2727                'adminbar_myaccount_order' => 60
  • trunk/bp-friends/bp-friends-widgets.php

    r7644 r7756  
    6060
    6161        $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    62         wp_enqueue_script( 'bp_core_widget_friends-js', BP_PLUGIN_URL . "bp-friends/js/widget-friends{$min}.js", array( 'jquery' ), bp_get_version() );
     62        wp_enqueue_script( 'bp_core_widget_friends-js', buddypress()->plugin_url . "bp-friends/js/widget-friends{$min}.js", array( 'jquery' ), bp_get_version() );
    6363
    6464        $user_id = bp_displayed_user_id();
  • trunk/bp-groups/bp-groups-admin.php

    r7720 r7756  
    6969 * @since BuddyPress (1.7.0)
    7070 *
    71  * @global object $bp BuddyPress global settings
    7271 * @global BP_Groups_List_Table $bp_groups_list_table Groups screen list table
    7372 */
     
    167166    }
    168167
     168    $bp = buddypress();
     169
    169170    // Enqueue CSS and JavaScript
    170     wp_enqueue_script( 'bp_groups_admin_js', BP_PLUGIN_URL . "bp-groups/admin/js/admin.{$min}js", array( 'jquery', 'wp-ajax-response', 'jquery-ui-autocomplete' ), bp_get_version(), true );
    171     wp_enqueue_style( 'bp_groups_admin_css', BP_PLUGIN_URL . "bp-groups/admin/css/admin.{$min}css", array(), bp_get_version() );
     171    wp_enqueue_script( 'bp_groups_admin_js', $bp->plugin_url . "bp-groups/admin/js/admin.{$min}js", array( 'jquery', 'wp-ajax-response', 'jquery-ui-autocomplete' ), bp_get_version(), true );
     172    wp_enqueue_style( 'bp_groups_admin_css', $bp->plugin_url . "bp-groups/admin/css/admin.{$min}css", array(), bp_get_version() );
    172173
    173174    wp_localize_script( 'bp_groups_admin_js', 'BP_Group_Admin', array(
  • trunk/bp-groups/bp-groups-loader.php

    r7745 r7756  
    7878     * @since BuddyPress (1.5)
    7979     */
    80     function __construct() {
     80    public function __construct() {
    8181        parent::start(
    8282            'groups',
    8383            __( 'User Groups', 'buddypress' ),
    84             BP_PLUGIN_DIR,
     84            buddypress()->plugin_dir,
    8585            array(
    8686                'adminbar_myaccount_order' => 70
  • trunk/bp-groups/bp-groups-widgets.php

    r7379 r7756  
    2929        if ( is_active_widget( false, false, $this->id_base ) && !is_admin() && !is_network_admin() ) {
    3030            $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    31             wp_enqueue_script( 'groups_widget_groups_list-js', BP_PLUGIN_URL . "bp-groups/js/widget-groups{$min}.js", array( 'jquery' ), bp_get_version() );
     31            wp_enqueue_script( 'groups_widget_groups_list-js', buddypress()->plugin_url . "bp-groups/js/widget-groups{$min}.js", array( 'jquery' ), bp_get_version() );
    3232        }
    3333    }
  • trunk/bp-loader.php

    r7753 r7756  
    410410
    411411        // Load the WP abstraction file so BuddyPress can run on all WordPress setups.
    412         require( BP_PLUGIN_DIR . '/bp-core/bp-core-wpabstraction.php' );
     412        require( $this->plugin_dir . '/bp-core/bp-core-wpabstraction.php' );
    413413
    414414        // Setup the versions (after we include multisite abstraction above)
  • trunk/bp-members/bp-members-loader.php

    r7738 r7756  
    1919     * @since BuddyPress (1.5)
    2020     */
    21     function __construct() {
     21    public function __construct() {
    2222        parent::start(
    2323            'members',
    2424            __( 'Members', 'buddypress' ),
    25             BP_PLUGIN_DIR,
     25            buddypress()->plugin_dir,
    2626            array(
    2727                'adminbar_myaccount_order' => 20
  • trunk/bp-members/bp-members-template.php

    r7751 r7756  
    11391139}
    11401140    function bp_get_signup_avatar( $args = '' ) {
    1141         global $bp;
     1141        $bp = buddypress();
    11421142
    11431143        $defaults = array(
     
    11701170                $default_grav = 'wavatar';
    11711171            else if ( 'mystery' == $bp->grav_default->user )
    1172                 $default_grav = BP_PLUGIN_URL . 'bp-core/images/mystery-man.jpg';
     1172                $default_grav = $bp->plugin_url . 'bp-core/images/mystery-man.jpg';
    11731173            else
    11741174                $default_grav = $bp->grav_default->user;
  • trunk/bp-messages/bp-messages-cssjs.php

    r6342 r7756  
    1919        add_action( 'wp_head', 'messages_autocomplete_init_jsblock' );
    2020
     21        $bp  = buddypress();
    2122        $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    22         wp_enqueue_script( 'bp-jquery-autocomplete',    BP_PLUGIN_URL . "bp-messages/js/autocomplete/jquery.autocomplete{$min}.js",   array( 'jquery' ), bp_get_version() );
    23         wp_enqueue_script( 'bp-jquery-autocomplete-fb', BP_PLUGIN_URL . "bp-messages/js/autocomplete/jquery.autocompletefb{$min}.js", array(),           bp_get_version() );
    24         wp_enqueue_script( 'bp-jquery-bgiframe',        BP_PLUGIN_URL . "bp-messages/js/autocomplete/jquery.bgiframe{$min}.js",       array(),           bp_get_version() );
    25         wp_enqueue_script( 'bp-jquery-dimensions',      BP_PLUGIN_URL . "bp-messages/js/autocomplete/jquery.dimensions{$min}.js",     array(),           bp_get_version() );
     23        wp_enqueue_script( 'bp-jquery-autocomplete',    $bp->plugin_url . "bp-messages/js/autocomplete/jquery.autocomplete{$min}.js",   array( 'jquery' ), bp_get_version() );
     24        wp_enqueue_script( 'bp-jquery-autocomplete-fb', $bp->plugin_url . "bp-messages/js/autocomplete/jquery.autocompletefb{$min}.js", array(),           bp_get_version() );
     25        wp_enqueue_script( 'bp-jquery-bgiframe',        $bp->plugin_url . "bp-messages/js/autocomplete/jquery.bgiframe{$min}.js",       array(),           bp_get_version() );
     26        wp_enqueue_script( 'bp-jquery-dimensions',      $bp->plugin_url . "bp-messages/js/autocomplete/jquery.dimensions{$min}.js",     array(),           bp_get_version() );
    2627    }
    2728}
     
    3233    if ( bp_is_messages_component() && bp_is_current_action( 'compose' ) ) {
    3334        $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    34         wp_enqueue_style( 'bp-messages-autocomplete', BP_PLUGIN_URL . "bp-messages/css/autocomplete/jquery.autocompletefb{$min}.css", array(), bp_get_version() );
     35        wp_enqueue_style( 'bp-messages-autocomplete', buddypress()->plugin_url . "bp-messages/css/autocomplete/jquery.autocompletefb{$min}.css", array(), bp_get_version() );
    3536
    3637        wp_print_styles();
  • trunk/bp-messages/bp-messages-loader.php

    r7454 r7756  
    2828     * @since BuddyPress (1.5)
    2929     */
    30     function __construct() {
     30    public function __construct() {
    3131        parent::start(
    3232            'messages',
    3333            __( 'Private Messages', 'buddypress' ),
    34             BP_PLUGIN_DIR,
     34            buddypress()->plugin_dir,
    3535            array(
    3636                'adminbar_myaccount_order' => 50
  • trunk/bp-notifications/bp-notifications-loader.php

    r7593 r7756  
    2121     * @since BuddyPress (1.9.0)
    2222     */
    23     function __construct() {
     23    public function __construct() {
    2424        parent::start(
    2525            'notifications',
    2626            __( 'Notifications', 'buddypress' ),
    27             BP_PLUGIN_DIR,
     27            buddypress()->plugin_dir,
    2828            array(
    2929                'adminbar_myaccount_order' => 30
  • trunk/bp-settings/bp-settings-loader.php

    r7602 r7756  
    2222            'settings',
    2323            __( 'Settings', 'buddypress' ),
    24             BP_PLUGIN_DIR,
     24            buddypress()->plugin_dir,
    2525            array(
    2626                'adminbar_myaccount_order' => 100
  • trunk/bp-themes/bp-default/_inc/ajax.php

    r7570 r7756  
    353353     */
    354354    if ( empty( $template ) )
    355         $template = BP_PLUGIN_DIR . '/bp-themes/bp-default/activity/comment.php';
     355        $template = buddypress()->plugin_dir . '/bp-themes/bp-default/activity/comment.php';
    356356
    357357    load_template( $template, false );
  • trunk/bp-xprofile/bp-xprofile-cssjs.php

    r6342 r7756  
    1919    if ( !empty( $_GET['page'] ) && strpos( $_GET['page'], 'bp-profile-setup' ) !== false ) {
    2020        $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    21         wp_enqueue_style( 'xprofile-admin-css', BP_PLUGIN_URL . "bp-xprofile/admin/css/admin{$min}.css", array(), bp_get_version() );
     21        wp_enqueue_style( 'xprofile-admin-css', buddypress()->plugin_url . "bp-xprofile/admin/css/admin{$min}.css", array(), bp_get_version() );
    2222    }
    2323}
     
    3939
    4040        $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    41         wp_enqueue_script( 'xprofile-admin-js', BP_PLUGIN_URL . "bp-xprofile/admin/js/admin{$min}.js", array( 'jquery', 'jquery-ui-sortable' ), bp_get_version() );
     41        wp_enqueue_script( 'xprofile-admin-js', buddypress()->plugin_url . "bp-xprofile/admin/js/admin{$min}.js", array( 'jquery', 'jquery-ui-sortable' ), bp_get_version() );
    4242    }
    4343}
  • trunk/bp-xprofile/bp-xprofile-loader.php

    r7747 r7756  
    3636     * @since BuddyPress (1.5)
    3737     */
    38     function __construct() {
     38    public function __construct() {
    3939        parent::start(
    4040            'xprofile',
    4141            __( 'Extended Profiles', 'buddypress' ),
    42             BP_PLUGIN_DIR,
     42            buddypress()->plugin_dir,
    4343            array(
    4444                'adminbar_myaccount_order' => 20
Note: See TracChangeset for help on using the changeset viewer.