Skip to:
Content

BuddyPress.org

Ticket #5015: 5015.patch

File 5015.patch, 3.8 KB (added by SergeyBiryukov, 11 years ago)
  • bp-core/bp-core-functions.php

     
    591591
    592592        // array of time period chunks
    593593        $chunks = array(
    594                 array( 60 * 60 * 24 * 365 , __( 'year',   'buddypress' ), __( 'years',   'buddypress' ) ),
    595                 array( 60 * 60 * 24 * 30 ,  __( 'month',  'buddypress' ), __( 'months',  'buddypress' ) ),
    596                 array( 60 * 60 * 24 * 7,    __( 'week',   'buddypress' ), __( 'weeks',   'buddypress' ) ),
    597                 array( 60 * 60 * 24 ,       __( 'day',    'buddypress' ), __( 'days',    'buddypress' ) ),
    598                 array( 60 * 60 ,            __( 'hour',   'buddypress' ), __( 'hours',   'buddypress' ) ),
    599                 array( 60 ,                 __( 'minute', 'buddypress' ), __( 'minutes', 'buddypress' ) ),
    600                 array( 1,                   __( 'second', 'buddypress' ), __( 'seconds', 'buddypress' ) )
     594                YEAR_IN_SECONDS,
     595                30 * DAY_IN_SECONDS,
     596                WEEK_IN_SECONDS,
     597                DAY_IN_SECONDS,
     598                HOUR_IN_SECONDS,
     599                MINUTE_IN_SECONDS,
     600                1
    601601        );
    602602
    603603        if ( !empty( $older_date ) && !is_numeric( $older_date ) ) {
     
    630630
    631631                // Step one: the first chunk
    632632                for ( $i = 0, $j = count( $chunks ); $i < $j; ++$i ) {
    633                         $seconds = $chunks[$i][0];
     633                        $seconds = $chunks[$i];
    634634
    635635                        // Finding the biggest chunk (if the chunk fits, break)
    636636                        $count = floor( $since / $seconds );
     
    646646                } else {
    647647
    648648                        // Set output var
    649                         $output = ( 1 == $count ) ? '1 '. $chunks[$i][1] : $count . ' ' . $chunks[$i][2];
     649                        switch ( $seconds ) {
     650                                case YEAR_IN_SECONDS :
     651                                        $output = sprintf( _n( '%s year',   '%s years',   $count, 'buddypress' ), $count );
     652                                        break;
     653                                case 30 * DAY_IN_SECONDS :
     654                                        $output = sprintf( _n( '%s month',  '%s months',  $count, 'buddypress' ), $count );
     655                                        break;
     656                                case WEEK_IN_SECONDS :
     657                                        $output = sprintf( _n( '%s week',   '%s weeks',   $count, 'buddypress' ), $count );
     658                                        break;
     659                                case DAY_IN_SECONDS :
     660                                        $output = sprintf( _n( '%s day',    '%s days',    $count, 'buddypress' ), $count );
     661                                        break;
     662                                case HOUR_IN_SECONDS :
     663                                        $output = sprintf( _n( '%s hour',   '%s hours',   $count, 'buddypress' ), $count );
     664                                        break;
     665                                case MINUTE_IN_SECONDS :
     666                                        $output = sprintf( _n( '%s minute', '%s minutes', $count, 'buddypress' ), $count );
     667                                        break;
     668                                default:
     669                                        $output = sprintf( _n( '%s second', '%s seconds', $count, 'buddypress' ), $count );
     670                        }
    650671
    651672                        // Step two: the second chunk
    652673                        if ( $i + 2 < $j ) {
    653                                 $seconds2 = $chunks[$i + 1][0];
    654                                 $name2    = $chunks[$i + 1][1];
     674                                $seconds2 = $chunks[$i + 1];
    655675                                $count2   = floor( ( $since - ( $seconds * $count ) ) / $seconds2 );
    656676
    657677                                // Add to output var
    658678                                if ( 0 != $count2 ) {
    659                                         $output .= ( 1 == $count2 ) ? _x( ',', 'Separator in time since', 'buddypress' ) . ' 1 '. $name2 : _x( ',', 'Separator in time since', 'buddypress' ) . ' ' . $count2 . ' ' . $chunks[$i + 1][2];
     679                                        $output .= _x( ',', 'Separator in time since', 'buddypress' ) . ' ';
     680
     681                                        switch ( $seconds2 ) {
     682                                                case 30 * DAY_IN_SECONDS :
     683                                                        $output .= sprintf( _n( '%s month',  '%s months',  $count2, 'buddypress' ), $count2 );
     684                                                        break;
     685                                                case WEEK_IN_SECONDS :
     686                                                        $output .= sprintf( _n( '%s week',   '%s weeks',   $count2, 'buddypress' ), $count2 );
     687                                                        break;
     688                                                case DAY_IN_SECONDS :
     689                                                        $output .= sprintf( _n( '%s day',    '%s days',    $count2, 'buddypress' ), $count2 );
     690                                                        break;
     691                                                case HOUR_IN_SECONDS :
     692                                                        $output .= sprintf( _n( '%s hour',   '%s hours',   $count2, 'buddypress' ), $count2 );
     693                                                        break;
     694                                                case MINUTE_IN_SECONDS :
     695                                                        $output .= sprintf( _n( '%s minute', '%s minutes', $count2, 'buddypress' ), $count2 );
     696                                                        break;
     697                                                default:
     698                                                        $output .= sprintf( _n( '%s second', '%s seconds', $count2, 'buddypress' ), $count2 );
     699                                        }
    660700                                }
    661701                        }
    662702