From: Stephen Cameron Date: Thu, 25 Jul 2019 19:14:44 +0000 (+0200) Subject: News pages. WIP #2751 @7 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=de8eaa961c7f57c0cb2f1004acf60cfe6f4d8418;p=pmi.git News pages. WIP #2751 @7 --- diff --git a/app/Http/Controllers/NewsController.php b/app/Http/Controllers/NewsController.php new file mode 100644 index 0000000..e7c73e3 --- /dev/null +++ b/app/Http/Controllers/NewsController.php @@ -0,0 +1,24 @@ +_404(); + } + + $this->data['title'] = $newsItem->title; + $this->data['news'] = $newsItem->getPageData(); + $this->data['image'] = $this->data['news']->getImageURL('image', 'thumb'); + + return view('pages.news-detail', $this->data); + } +} diff --git a/app/Models/News.php b/app/Models/News.php index ceabc08..c52af1f 100644 --- a/app/Models/News.php +++ b/app/Models/News.php @@ -7,6 +7,9 @@ use Spatie\MediaLibrary\Models\Media; class News extends \Cubist\Backpack\app\Magic\Models\News { public function registerMediaConversions(Media $media = null) { + + parent::registerMediaConversions($media); + $this->addMediaConversion('thumb') ->crop('crop-center', 348, 232); } diff --git a/app/Templates/Catalog.php b/app/Templates/Catalog.php index bfe4776..c37ea76 100644 --- a/app/Templates/Catalog.php +++ b/app/Templates/Catalog.php @@ -8,6 +8,7 @@ use App\Models\ProductType; use Cubist\Backpack\app\Magic\Menu\Item; use Cubist\Backpack\app\Magic\Menu\VirtualItem; use Cubist\Backpack\app\Template\TemplateAbstract; +use Barryvdh\Debugbar\Facade as Debugbar; class Catalog extends TemplateAbstract { @@ -20,19 +21,19 @@ class Catalog extends TemplateAbstract public function setMenuChildren($menu) { - \Barryvdh\Debugbar\Facade::startMeasure('nav_catalog', 'Make Products sub navigation'); + Debugbar::startMeasure('nav_catalog', 'Make Products sub navigation'); parent::setMenuChildren($menu); $families = ['captor' => __('Capteurs'), 'system' => __('Systèmes de mesure')]; - \Barryvdh\Debugbar\Facade::startMeasure('nav_catalog_models', 'Request catalog models'); - \Barryvdh\Debugbar\Facade::startMeasure('nav_catalog_models_types', 'Request catalog models (types)'); + Debugbar::startMeasure('nav_catalog_models', 'Request catalog models'); + Debugbar::startMeasure('nav_catalog_models_types', 'Request catalog models (types)'); $productTypes = ProductType::all(); - \Barryvdh\Debugbar\Facade::stopMeasure('nav_catalog_models_types'); - \Barryvdh\Debugbar\Facade::startMeasure('nav_catalog_models_products', 'Request catalog models (products)'); + Debugbar::stopMeasure('nav_catalog_models_types'); + Debugbar::startMeasure('nav_catalog_models_products', 'Request catalog models (products)'); $products = Product::all(); - \Barryvdh\Debugbar\Facade::stopMeasure('nav_catalog_models_products'); - \Barryvdh\Debugbar\Facade::stopMeasure('nav_catalog_models'); + Debugbar::stopMeasure('nav_catalog_models_products'); + Debugbar::stopMeasure('nav_catalog_models'); $menu->setType('mega'); @@ -74,7 +75,7 @@ class Catalog extends TemplateAbstract } } } - \Barryvdh\Debugbar\Facade::stopMeasure('nav_catalog'); + Debugbar::stopMeasure('nav_catalog'); } } diff --git a/app/Templates/News.php b/app/Templates/News.php index 79e321a..3a7a88a 100644 --- a/app/Templates/News.php +++ b/app/Templates/News.php @@ -1,13 +1,41 @@ status != 1) { + continue; + } + + $item = new Item(); + $item->setTitle($newsItem->title); + $item->setHref($newsItem->slug); // Todo: consider having a configurable / translatable prefix for news URLs + $item->setId('news/' . $newsItem->id); + $item->setController(['controller' => 'NewsController', 'action' => 'view', 'params' => ['id' => $newsItem->id]]); + $menu->addChild($item); + } + + Debugbar::stopMeasure('nav_news'); + } + } diff --git a/resources/styles/components/news.styl b/resources/styles/components/news.styl new file mode 100644 index 0000000..c7b341f --- /dev/null +++ b/resources/styles/components/news.styl @@ -0,0 +1,24 @@ +.news + // 3 column layout with image / text / sidebar + &-layout + display: grid + constrain(grid-gap, 2.5vw) + grid-template: "image body sidebar" auto / 1fr 2fr 1fr + + +below(1200px) + grid-template: "image sidebar" "body sidebar" + grid-column-gap: 5vw + + +below(700px) + grid-template: "image" "body" "sidebar" + grid-row-gap: 5vw + + &-image + grid-area: image + + &-body + grid-area: body + + &-sidebar + grid-area: sidebar + min-width: 260px diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index bbcd549..90e10a0 100644 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -124,16 +124,19 @@ @foreach ($news as $newsItem) + @php + $newsURL = $nav->getHrefByID("news/{$newsItem->id}"); + @endphp
- {{--Todo: handle missing images + get correct image size--}} - {{ $newsItem->title }} + + {{--Todo: handle missing images + get correct image size--}} + {{ $newsItem->title }} +

{{ $newsItem->title }}

{{ $newsItem['chapo'] }}

- {{--Todo: set up news URLs in nav--}} -

Lire la suite

+

Lire la suite

@endforeach
diff --git a/resources/views/pages/news-detail.blade.php b/resources/views/pages/news-detail.blade.php new file mode 100644 index 0000000..af4af25 --- /dev/null +++ b/resources/views/pages/news-detail.blade.php @@ -0,0 +1,28 @@ +@extends('layouts/app') + +@section('content') + + + + + +
+ @if ($image) + {{-- Todo: use larger image + srcset here --}} + {{ $title }} + @endif + +
+

{{ date('d/m/y', strtotime($news->date['date'])) }}

+ @markdown($news->content) +
+ +
+ (Newsletter Form) +
+ +
+
+
+ +@endsection