Smarty
[ class tree: Smarty ] [ index: Smarty ] [ all elements ]

Source for file modifier.reltime.php

Documentation is available at modifier.reltime.php

  1. <?php
  2. /**
  3.  * Smarty plugin
  4.  * @package Smarty
  5.  * @subpackage plugins
  6.  */
  7.  
  8. /**
  9.  * smarty_modifier_reltime
  10.  */
  11. function smarty_modifier_reltime$pTimeStamp$pMode 'long'$pFallback 'bit_short_datetime' {
  12.     global $gBitSystem$gBitSmarty;
  13.  
  14.     // if this feature is not desired, we simply don't use it.
  15.     if!$gBitSystem->isFeatureActive'site_display_reltime' ) ) {
  16.         $gBitSmarty->loadPlugin"smarty_modifier_$pFallback);
  17.         $pFallback "smarty_modifier_$pFallback";
  18.         return $pFallback$pTimeStamp );
  19.     }
  20.  
  21.     $min   60;
  22.     $hour  $min  60;
  23.     $day   $hour 24;
  24.     $week  $day  7;
  25.  
  26.     $strf  "H:i";
  27.  
  28.     if!is_numeric$pTimeStamp ) ) {
  29.         return $pTimeStamp;
  30.     }
  31.  
  32.     $delta $gBitSystem->mServerTimestamp->getUTCTime($pTimeStamp;
  33.  
  34.     if$delta {
  35.         $delta = -$delta;
  36.         return tra"In the future" ).": ";
  37.     }
  38.  
  39.     if$delta {
  40.         // seconds
  41.         return tra"within the last second" );
  42.     elseif$delta $min {
  43.         // minutes
  44.         return tra"within the last minute" );
  45.     elseif$delta $hour {
  46.         // hours
  47.         if$delta $min {
  48.             return tra"one minute ago" );
  49.         else {
  50.             return round$delta $min )." ".tra"minutes ago" );
  51.         }
  52.     elseif$delta $day {
  53.         // up to a day
  54.         if$delta $hour 1.1 {
  55.             return tra"one hour ago" );
  56.         elseif$delta $day {
  57.             $delta_hours floor( ( $delta floor$delta $hour $hour ) ) $min );
  58.             if$pMode == 'short' {
  59.                 return floor$delta $hour )."h {$delta_hours}m ago";
  60.             }
  61.             iffloor$delta $hour ){
  62.                 if$delta_hours ){
  63.                     return floor$delta $hour )." hours {$delta_hours} minutes ago";
  64.                 else {
  65.                     return floor$delta $hour )." hours {$delta_hours} minute ago";
  66.                 }
  67.             else {
  68.                 if$delta_hours ){
  69.                     return floor$delta $hour )." hour {$delta_hours} minutes ago";
  70.                 else {
  71.                     return floor$delta $hour )." hour {$delta_hours} minute ago";
  72.                 }
  73.             }
  74.  
  75.         else {
  76.  
  77.             return round$delta $hour )." ".tra"hour(s) ago" );
  78.         }
  79.     elseif$delta $week {
  80.         // up to a week
  81.         if$delta $day {
  82.             return tra"Yesterday" )." ".date$strf$pTimeStamp );
  83.         else {
  84.             if$pMode == 'short' {
  85.                 return date'D '.$strf$pTimeStamp );
  86.             }
  87.             return tradate'l'$pTimeStamp ) )." ".date$strf$pTimeStamp );
  88.         }
  89.     else {
  90.         // anything longer than a week
  91.         $gBitSmarty->loadPlugin"smarty_modifier_$pFallback);
  92.         $pFallback "smarty_modifier_$pFallback";
  93.         return $pFallback$pTimeStamp );
  94.     }
  95. }
  96. ?>

Documentation generated on Wed, 29 Jul 2015 13:57:10 +0000 by phpDocumentor 1.5.0-lsces