From 93bf9a1a4124817baa6f9afedda8325c887de723 Mon Sep 17 00:00:00 2001 From: Florian Larysch Date: Mon, 4 Jan 2016 15:48:00 +0100 Subject: improve sorting of relive talks --- model/Relive.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'model/Relive.php') 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) -- cgit v1.2.3