diff options
-rwxr-xr-x | docs/CHANGELOG | 1 | ||||
-rw-r--r-- | templates/show_recently_played.inc.php | 60 |
2 files changed, 34 insertions, 27 deletions
diff --git a/docs/CHANGELOG b/docs/CHANGELOG index f17de45d..527367a3 100755 --- a/docs/CHANGELOG +++ b/docs/CHANGELOG @@ -4,6 +4,7 @@ -------------------------------------------------------------------------- v.3.6-Alpha2 + - Fixed pluralisation issue in Recently Played - Added support for extracting MBIDs from M4A files - Fixed parsing of some tag types (most notably M4A) - Corrected PLS output to work with more players (reported by bhassel) diff --git a/templates/show_recently_played.inc.php b/templates/show_recently_played.inc.php index 8a4da36c..a1b08604 100644 --- a/templates/show_recently_played.inc.php +++ b/templates/show_recently_played.inc.php @@ -26,8 +26,6 @@ * @link http://www.ampache.org/ */ -/* Define the time places starting at 0 */ -$time_unit = array('',_('seconds ago'),_('minutes ago'),_('hours ago'),_('days ago'),_('weeks ago'),_('months ago'),_('years ago')); $link = Config::get('use_rss') ? ' ' . AmpacheRSS::get_display('recently_played') : ''; show_box_top(_('Recently Played') . $link, 'box box_recently_played'); ?> @@ -51,34 +49,42 @@ show_box_top(_('Recently Played') . $link, 'box box_recently_played'); <?php foreach ($data as $row) { $row_user = new User($row['user']); $song = new Song($row['object_id']); - $amount = intval(time() - $row['date']+2); - $time_place = '0'; + $interval = intval(time() - $row['date']); - while ($amount >= 1) { - $final = $amount; - $time_place++; - if ($time_place <= 2) { - $amount = floor($amount/60); - } - if ($time_place == '3') { - $amount = floor($amount/24); - } - if ($time_place == '4') { - $amount = floor($amount/7); - } - if ($time_place == '5') { - $amount = floor($amount/4); - } - if ($time_place == '6') { - $amount = floor ($amount/12); - } - if ($time_place > '6') { - $final = $amount . '+'; - break; - } + if ($interval < 60) { + $unit = 'seconds'; + } + else if ($interval < 3600) { + $interval = floor($interval / 60); + $unit = 'minutes'; + } + else if ($interval < 86400) { + $interval = floor($interval / 60); + $unit = 'hours'; + } + else if ($interval < 604800) { + $interval = floor($interval / 86400); + $unit = 'days'; + } + else if ($interval < 2592000) { + $interval = floor($interval / 604800); + $unit = 'weeks'; + } + else if ($interval < 31556926) { + $interval = floor($interval / 2592000); + $unit = 'months'; + } + else if ($interval < 631138519) { + $interval = floor($interval / 31556926); + $unit = 'years'; + } + else { + $interval = floor($interval / 315569260); + $unit = 'decades'; } - $time_string = $final . ' ' . $time_unit[$time_place]; + // I wonder how smart gettext is? + $time_string = sprintf(ngettext('%d ' . rtrim($unit, 's') . ' ago', '%d ' . $unit . ' ago', $interval), $interval); $song->format(); ?> |