]> _ Git - pmi.git/commitdiff
done #2755 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 14 Aug 2019 13:55:18 +0000 (15:55 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 14 Aug 2019 13:55:18 +0000 (15:55 +0200)
app/Templates/News.php
resources/views/components/link-button.blade.php

index b90c2dd891d116a79fa0258e7e5f4ae627ac1645..a2b8b66857064f07a23e83c2495e8eb6e93395a0 100644 (file)
@@ -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);
     }
 
 }
index 6a5a63a14d3f3cbb71fd58f9a736010b4caa75fd..38081d43655e3530a3ccf567741ce4e85b5e15b1 100644 (file)
         }
         $text=$data['label'];
     }
-
 @endphp
 
-@if($enabled)
+@if($enabled && $text)
     <a href="{{ $href ?? '#' }}" class="btn {{ $class ?? '' }}">
         <span class="btn-text">{{ $text }}</span>
     </a>