diff options
Diffstat (limited to 'model/Relive.php')
-rw-r--r-- | model/Relive.php | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/model/Relive.php b/model/Relive.php index 671f1cb..3dfe823 100644 --- a/model/Relive.php +++ b/model/Relive.php @@ -20,10 +20,22 @@ class Relive extends ModelBase $mapping = $this->getScheduleToRoomMapping(); - usort($talks, function($a, $b) { - $sort = array('live', 'recorded', 'released'); - return array_search($a['status'], $sort) > array_search($b['status'], $sort); - }); + usort($talks, function($a, $b) { + // first, make sure that live talks are always on top + if($a['status'] == 'live' && $b['status'] != 'live') { + return -1; + } else if($a['status'] != 'live' && $b['status'] == 'live') { + return 1; + } else if($a['status'] == 'live' && $b['status'] == 'live') { + // sort live talks by room + + return strcmp($a['room'], $b['room']); + } + + // all other talks get sorted by their name + + return strcmp($a['title'], $b['title']); + }); $talks_by_id = array(); foreach ($talks as $talk) |