]> _ Git - pmi.git/commitdiff
WIP #2751 @4
authorStephen Cameron <stephen@cubedesigners.com>
Thu, 1 Aug 2019 15:44:39 +0000 (17:44 +0200)
committerStephen Cameron <stephen@cubedesigners.com>
Thu, 1 Aug 2019 15:44:39 +0000 (17:44 +0200)
app/Templates/Home.php
app/Templates/News.php
resources/styles/components/news.styl
resources/views/pages/home.blade.php
resources/views/pages/news.blade.php [new file with mode: 0644]
tailwind.config.js

index 73600d7d094e5ad3053be81d03305a7e568ba744..ade9ed529b06414359746d4b71bf04091f44a61b 100644 (file)
@@ -2,7 +2,6 @@
 
 namespace App\Templates;
 
-use App\Models\ProductType;
 use App\Models\News;
 
 class Home extends Base
index 3a7a88a75c5aaa2631f3256064637a62547066d7..83c2530368d4ef21b057b242113e697c07f62594 100644 (file)
@@ -38,4 +38,52 @@ class News extends Base
         Debugbar::stopMeasure('nav_news');
     }
 
+    // Set extra data for News blade view
+    public function setData(&$data)
+    {
+        $data['news'] = $this->_getNews();
+        $data['events'] = $this->_getEvents();
+    }
+
+    protected function _getNews()
+    {
+
+        $newsItems = [];
+
+        $news = NewsModel::where([
+            ['type', '=', 'news'],
+            ['status', '=', 1],
+        ])
+            ->orderBy('date', 'desc')
+            ->get();
+
+        foreach ($news as $newsItem) {
+            $newsItems[$newsItem->id] = $newsItem;
+        }
+
+        return $newsItems;
+
+    }
+
+    protected function _getEvents()
+    {
+
+        $eventItems = [];
+
+        $events = NewsModel::where([
+            ['type', '=', 'event'],
+            ['status', '=', 1],
+        ])
+            ->orderBy('date', 'desc')
+            ->take(2)
+            ->get();
+
+        foreach ($events as $eventItem) {
+            $eventItems[$eventItem->id] = $eventItem;
+        }
+
+        return $eventItems;
+
+    }
+
 }
index c7b341fec2939fe4c16dde535203507da1ad63a7..5bb6a53ba2aa056ca15ceaa615d380e8488eff93 100644 (file)
@@ -4,13 +4,15 @@
     display: grid
     constrain(grid-gap, 2.5vw)
     grid-template: "image body sidebar" auto / 1fr 2fr 1fr
+    grid-template-rows: max-content
+    grid-template-columns: auto
 
     +below(1200px)
-      grid-template: "image sidebar" "body sidebar"
+      grid-template-areas: "image sidebar" "body sidebar"
       grid-column-gap: 5vw
 
     +below(700px)
-      grid-template: "image" "body" "sidebar"
+      grid-template-areas: "image" "body" "sidebar"
       grid-row-gap: 5vw
 
   &-image
index 90e10a08903d414a997760bc9fe95bb1207705ea..58f34d573378bf8097afe9635459f8a8622d6a48 100644 (file)
                             $newsURL = $nav->getHrefByID("news/{$newsItem->id}");
                         @endphp
 
-                        <div>
+                        <article>
                             <a href="{{ $newsURL }}">
                                 {{--Todo: handle missing images + get correct image size--}}
                                 <img class="mb-4" src="{{ $newsItem->getFirstMediaUrl($newsItem->image, 'thumb') }}" alt="{{ $newsItem->title }}">
                             <h4 class="font-display">{{ $newsItem->title }}</h4>
                             <p>{{ $newsItem['chapo'] }}</p>
 
-                            <p><a href="{{ $newsURL }}">Lire la suite</a></p>
-                        </div>
+                            <p><a href="{{ $newsURL }}">{{ __('Lire la suite') }}</a></p>
+                        </article>
                     @endforeach
                 </grid>
             </content>
diff --git a/resources/views/pages/news.blade.php b/resources/views/pages/news.blade.php
new file mode 100644 (file)
index 0000000..9f78ea1
--- /dev/null
@@ -0,0 +1,50 @@
+@extends('layouts.app')
+
+@section('content')
+
+    <full-width padding="pb-3v">
+        <content>
+
+            {{-- Todo: use grid for main (generic?) sidebar layout and utilise minmax for content? --}}
+            <div class="news-index-layout flex">
+
+                <div class="news-items">
+                    @foreach ($news as $newsItem)
+                        @php
+                            $newsURL = $nav->getHrefByID("news/{$newsItem->id}");
+                        @endphp
+
+                        {{-- Todo: use smaller grid for each article: 1fr image, 2fr content with a minmax on image to auto wrap --}}
+                        <article class="flex">
+
+                            <a href="{{ $newsURL }}" class="news-item-image">
+                                {{--Todo: handle missing images + get correct image size--}}
+                                <img class="mb-1v mr-1v" src="{{ $newsItem->getFirstMediaUrl($newsItem->image, 'thumb') }}" alt="{{ $newsItem->title }}">
+                            </a>
+
+                            <div class="news-item-text">
+                                <h4 class="font-display">{{ $newsItem->title }}</h4>
+                                <p>{{ $newsItem['chapo'] }}</p>
+
+                                <p><a href="{{ $newsURL }}">{{ __('En savoir plus') }}</a></p>
+                            </div>
+
+                        </article>
+                    @endforeach
+                </div>
+
+                <div class="news-sidebar">
+                    <div class="bg-grey-100 p-1v mb-1v">
+                        Events
+                    </div>
+
+                    <div class="bg-grey-100 p-1v">
+                        Newsletter subscribe
+                    </div>
+                </div>
+
+            </div>
+
+        </content>
+    </full-width>
+@endsection
index 3650b54132944dc7dea71a6f4a3b420292a59b09..e44e51735d65792f6b1a15e986b4c45068a853fe 100644 (file)
@@ -7,8 +7,8 @@ module.exports = {
             // the sm: prefix in Tailwind. Maybe there's a better name for this breakpoint but for now it's 'sm'.
             // Sizes should be listed largest to smallest so they are generated in this order, allowing smaller
             // breakpoints to take precedence over larger ones (eg. xs:p-1 should override sm:p-2)
-            'xl': {'max': '1450px'}, // => @media (max-width: 1450px) { ... }
-            'lg': {'max': '1280px'}, // => @media (max-width: 1280px) { ... }
+            //'xl': {'max': '1450px'}, // => @media (max-width: 1450px) { ... }
+            //'lg': {'max': '1280px'}, // => @media (max-width: 1280px) { ... }
             'md': {'max': '1023px'}, // => @media (max-width: 1023px) { ... }
             'sm': {'max': '767px'}, // => @media (max-width: 767px) { ... }
             'xs': {'max': '499px'}, // => @media (max-width: 499px) { ... }