Added feature #1333: stdWrap.age should differenciate between singular/plural
authorSusanne Moog <typo3@susannemoog.de>
Thu, 4 Nov 2010 19:39:46 +0000 (19:39 +0000)
committerSusanne Moog <typo3@susannemoog.de>
Thu, 4 Nov 2010 19:39:46 +0000 (19:39 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@9278 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/cms/tslib/class.tslib_content.php

index 46ae92a..78c9e0b 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-04  Susanne Moog <typo3@susanne-moog.de>
+
+       * Added feature #1333: stdWrap.age should differenciate between singular/plural
+
 2010-11-04  Steffen Gebert  <steffen@steffen-gebert.de>
 
        * Fixed bug #15537: Rename "Shortcuts" to "Bookmarks"
index ad5e6f1..49f8ec0 100644 (file)
@@ -6260,21 +6260,29 @@ class tslib_cObj {
         */
        function calcAge($seconds, $labels) {
                if (t3lib_div::testInt($labels)) {
-                       $labels = ' min| hrs| days| yrs';
+                       $labels = ' min| hrs| days| yrs| min| hour| day| year';
                } else {
                        $labels = str_replace('"', '', $labels);
                }
 
                $labelArr = explode('|', $labels);
+               if (count($labelArr) == 4) {
+                       $labelArr = array_merge($labelArr, $labelArr);
+               }
                $absSeconds = abs($seconds);
+               $sign = ($seconds > 0 ? 1 : -1);
                if ($absSeconds < 3600) {
-                       $seconds = round($seconds / 60) . $labelArr[0];
+                       $val = round($absSeconds / 60);
+                       $seconds = ($sign * $val) . ($val == 1 ? $labelArr[4] : $labelArr[0]);
                } elseif ($absSeconds < 24 * 3600) {
-                       $seconds = round($seconds / 3600) . $labelArr[1];
+                       $val = round($absSeconds / 3600);
+                       $seconds = ($sign * $val) . ($val == 1 ? $labelArr[5] : $labelArr[1]);
                } elseif ($absSeconds < 365 * 24 * 3600) {
-                       $seconds = round($seconds / (24 * 3600)) . $labelArr[2];
+                       $val = round($absSeconds / (24 * 3600));
+                       $seconds = ($sign * $val) . ($val == 1 ? $labelArr[6] : $labelArr[2]);
                } else {
-                       $seconds = round($seconds / (365 * 24 * 3600)) . $labelArr[3];
+                       $val = round($absSeconds / (365 * 24 * 3600));
+                       $seconds = ($sign * $val) . ($val == 1 ? $labelArr[7] : $labelArr[3]);
                }
                return $seconds;
        }