Exemple #1
0
 /**
  * Render upcoming episode HTML
  *
  * @param bool $wrap Whether to output the wrapper elements
  *
  * @return string
  */
 static function getSidebarUpcoming($wrap = WRAP)
 {
     global $Database, $PREFIX_REGEX;
     /** @var $Upcoming Episode[] */
     $Upcoming = $Database->where('airs > NOW()')->orderBy('airs', 'ASC')->get('episodes');
     if (empty($Upcoming)) {
         return;
     }
     $HTML = '';
     foreach ($Upcoming as $Episode) {
         $airtime = strtotime($Episode->airs);
         $airs = date('c', $airtime);
         $month = date('M', $airtime);
         $day = date('j', $airtime);
         $diff = Time::difference(time(), $airtime);
         $time = 'in ';
         if ($diff['time'] < Time::$IN_SECONDS['month']) {
             $tz = "(" . date('T', $airtime) . ")";
             if (!empty($diff['day'])) {
                 $time .= "{$diff['day']} day" . ($diff['day'] !== 1 ? 's' : '') . ' & ';
             }
             if (!empty($diff['hour'])) {
                 $time .= "{$diff['hour']}:";
             }
             foreach (array('minute', 'second') as $k) {
                 $diff[$k] = CoreUtils::pad($diff[$k]);
             }
             $time = "<time datetime='{$airs}'>{$time}{$diff['minute']}:{$diff['second']} {$tz}</time>";
         } else {
             $time = Time::tag($Episode->airs);
         }
         $title = !$Episode->isMovie ? $Episode->title : ($PREFIX_REGEX->match($Episode->title) ? Episodes::shortenTitlePrefix($Episode->title) : "Movie: {$Episode->title}");
         $HTML .= "<li><div class='calendar'><span class='top'>{$month}</span><span class='bottom'>{$day}</span></div>" . "<div class='meta'><span class='title'>{$title}</span><span class='time'>Airs {$time}</span></div></li>";
     }
     return $wrap ? "<section id='upcoming'><h2>Upcoming episodes</h2><ul>{$HTML}</ul></section>" : $HTML;
 }