From: Vincent Vanwaelscappel Date: Wed, 14 Aug 2019 13:55:18 +0000 (+0200) Subject: done #2755 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=6e5adedea5c1bf4242a784feb67d306a19efe632;p=pmi.git done #2755 @0.5 --- diff --git a/app/Templates/News.php b/app/Templates/News.php index b90c2dd..a2b8b66 100644 --- a/app/Templates/News.php +++ b/app/Templates/News.php @@ -3,6 +3,7 @@ namespace App\Templates; use App\Models\News as NewsModel; +use Carbon\Carbon; use Cubist\Backpack\app\Magic\Menu\Item; use Barryvdh\Debugbar\Facade as Debugbar; @@ -55,6 +56,7 @@ class News extends Base $news = NewsModel::with('media') ->where('type', 'news') ->where('status', 1) + ->whereDate('date', '<=', Carbon::now()) ->orderBy('date', 'desc') ->get(); @@ -68,22 +70,52 @@ class News extends Base protected function _getEvents() { + $limit = 2; + $now = Carbon::now(); $eventItems = []; + // Get all events $events = NewsModel::with('media') ->where('type', 'event') ->where('status', 1) - ->orderBy('date', 'desc') - ->take(2) + ->whereDate('date', '<=', $now) + ->orderBy('event_start', 'asc') ->get(); + $currentEvents = []; + $pastEvents = []; + $futureEvents = []; + foreach ($events as $eventItem) { - $eventItems[$eventItem->id] = $eventItem; + if ($eventItem->event_start < $now && $eventItem->event_end > $now) { + $currentEvents[$eventItem->id] = $eventItem; + } else if ($eventItem->event_start > $now) { + $futureEvents[$eventItem->id] = $eventItem; + } else { + $pastEvents[$eventItem->id] = $eventItem; + } } - return $eventItems; + // First we look at current events + $res = $currentEvents; + + // We display all current events + if (count($res) >= $limit) { + return $currentEvents; + } + + // If there is not enough current events, we append future events + $res = array_merge($res, $futureEvents); + // And only return the $limit events of $current+$future + if (count($res) >= $limit) { + return array_slice($res, 0, $limit, true); + } + // If there is not current+future events, we prepend past events + $res = array_merge($pastEvents, $res); + // And only display the $limit last events of $past+$current+$future + return array_slice($res, $limit * -1, $limit, true); } } diff --git a/resources/views/components/link-button.blade.php b/resources/views/components/link-button.blade.php index 6a5a63a..38081d4 100644 --- a/resources/views/components/link-button.blade.php +++ b/resources/views/components/link-button.blade.php @@ -13,10 +13,9 @@ } $text=$data['label']; } - @endphp -@if($enabled) +@if($enabled && $text) {{ $text }}