streaming-website/template/overview.phtml
2024-02-03 14:12:23 +01:00

184 lines
5.2 KiB
PHTML

<? include("$assemblies/banner.phtml") ?>
<div class="container">
<? $i = 0; foreach($overview->getGroups() as $group => $rooms): ?>
<? if($group): ?>
<div class="row group group-<?=h(slugify($group))?>">
<div class="col-xs-12">
<h2><span><?=h($group)?></span></h2>
</div>
</div>
<? endif ?>
<div class="row room-group room-group-n<?=h($i++)?> room-group-<?=h(slugify($group))?>">
<?
// remove rooms without talks
if ($conference->get('hide_rooms_without_talks')) {
$rooms = array_filter($rooms, function($r) {
global $upcomingTalksPerRoom;
$upcoming = @$upcomingTalksPerRoom[ $r->getSlug() ];
return isset($upcoming['next']);
});
}
$count = count($rooms);
$idx = 0;
usort($rooms, function ($r_a, $r_b) {
global $upcomingTalksPerRoom;
$u_a = $upcomingTalksPerRoom[ $r_a->getSlug() ];
$a = @$u_a['current'] && !($u_a['current']['special'] ?? false) ? $u_a['current'] : $u_a['next'];
$u_b = $upcomingTalksPerRoom[ $r_b->getSlug() ];
$b = @$u_b['current'] && !($u_b['current']['special'] ?? false) ? $u_b['current'] : $u_b['next'];
// sort rooms without remaining schedule to end
if ( $u_a['next'] === null || $u_b['next'] === null) {
return -($u_a['next'] <=> $u_b['next']);
}
return @$a['start'] <=> @$b['start'];
});
foreach($rooms as $room):
$is_wide = 0;
/* when the count is odd and this is the last item - make it full width */
if (false && ($count % 2 == 1) && ($idx == $count - 1)) {
$is_wide = 1;
}
elseif ($room->requestsWide()) {
$is_wide = 1;
$count++;
/* Increase the index if we are using a whole line, this means when the room is
* an even entry. Odd entries on the other hand steal one index from the
* "previous" row which they originally belong to. */
if ($idx % 2 != 1) {
$idx++;
}
}
?>
<div class="
room
room-<?=h($room->getSlug())?>
clearfix
<? if ($is_wide): ?>
wide
col-xs-12
<? else: ?>
narrow
col-md-4
col-lg-2
<? endif ?>
<? if($room->hasPreview()): ?>
has-preview
<? endif ?>
<? if($room->hasSchedule()): ?>
has-schedule
<? endif ?>
">
<a href="<?=h($room->getLink())?>">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<span class="roomtitle regular"><?=h($room->getDisplay())?></span>
<span class="roomtitle short"><?=h($room->getDisplayShort())?></span>
</div>
</div>
<div class="panel-body">
<? if($room->hasPreview()): ?>
<img
class="preview"
src="<?=h($room->getThumb())?>"
alt="<?=h($room->getDisplay())?>"
width="213" height="120"
/>
<? else: ?>
<h2><?=h($room->getDisplay())?></h2>
<? endif ?>
<? if($room->hasSchedule()):
$upcoming = @$upcomingTalksPerRoom[ $room->getSlug() ] ?: [];
$current = @$upcoming['current'];
$next = @$upcoming['next'];
$current_is_special = $current['special'] ?? false;
$next_is_special = $next['special'] ?? false;
if($conference->get('show_track_in_overview')):
?>
<h5 class="track"><?=h( @$current['track'] ?: @$next['track']) ?></h5>
<? endif ?>
<div class="program-schedule">
<? if($current && !$current_is_special): ?>
<div class="talk current-talk" title="<?=h(@$current['title'] ?: 'none') ?>">
<strong>Now (since <?=date('G:i', @$current['start']) ?>):</strong><br/>
<span class="t"><?=h(@$current['title'] ?: 'none') ?></span>
</div>
<? endif; if($next && !$next_is_special): ?>
<div class="talk next-talk" title="<?=h(@$next['title'] ?: 'none') ?>">
<strong>Next (<?=date('G:i', @$next['start']) ?>):</strong><br/>
<span class="t"><?=h(@$next['title'] ?: 'none') ?></span>
</div>
<? endif ?>
</div>
<? endif ?>
</div>
</div>
</a>
</div>
<? $idx++ ?>
<? if ($is_wide): ?>
<div class="clearfix"></div>
<? endif ?>
<? endforeach ?>
</div>
<? endforeach ?>
<? if($conference->hasReleases() || $conference->hasRelive()): ?>
<?
$class = ($conference->hasReleases() && $conference->hasRelive()) ?
// both enabled
'col-sm-6 col-xs-12' :
// only one of both enabled
'col-xs-12';
?>
<div class="row recordings">
<div class="col-xs-12">
<h2><span>Recordings</span></h2>
</div>
<? if($conference->hasReleases()): ?>
<div class="<?=h($class)?>">
<div class="panel panel-primary">
<div class="panel-body">
<a href="<?=h($conference->getReleasesUrl())?>">
<span class="fa fa-video-camera"></span> Releases
</a>
</div>
</div>
</div>
<? endif ?>
<? if($conference->hasRelive()): ?>
<div class="<?=h($class)?>">
<div class="panel panel-primary">
<div class="panel-body">
<a href="<?=h($conference->getReliveUrl())?>">
<span class="fa fa-play-circle"></span> ReLive
</a>
</div>
</div>
</div>
<? endif ?>
</div>
<? endif ?>
</div>