}
$this->data['title'] = $newsItem->title;
- $this->data['image'] = $newsItem->getFirstMediaUrl($newsItem->image, 'thumb');
+ $this->data['image'] = $newsItem->getFirstMediaUrl($newsItem->image, 'details');
$this->data['news'] = $newsItem;
$this->data['page'] = $newsItem->getPageData();
parent::registerMediaConversions($media);
$this->addMediaConversion('thumb')
- ->crop('crop-center', 348, 232);
+ ->width(600);
}
public function setFields()
namespace App\Models;
+use Spatie\Image\Manipulations;
+use Spatie\MediaLibrary\Conversion\Conversion;
use Spatie\MediaLibrary\Models\Media;
class News extends \Cubist\Backpack\app\Magic\Models\News
{
- public function registerMediaConversions(Media $media = null) {
+ public function registerMediaConversions(Media $media = null)
+ {
parent::registerMediaConversions($media);
- $this->addMediaConversion('thumb')
- ->crop('crop-center', 348, 232);
+ $this->addMediaConversion('details')
+ ->width(600);
+
+ $this->addMediaConversion('index_thumb')
+ ->crop(Manipulations::CROP_CENTER, 600, 400);
}
// Display compact date range in localised human readable format
// Ref: https://codereview.stackexchange.com/a/78303
// Alternative: https://github.com/flack/ranger
- public function formatDateRange($start, $end) {
+ public function formatDateRange($start, $end)
+ {
if ($start->format('Y-m-d') === $end->format('Y-m-d')) {
# Same day
--- /dev/null
+.application-post
+ &-layout
+ display: grid
+ constrain(grid-gap, 2.5vw)
+ grid-template: "image body" auto / 1fr 3fr
+ grid-template-rows: max-content
+ grid-template-columns: auto
+
+ +below(700px)
+ grid-template-areas: "image" "body"
+ grid-row-gap: 5vw
+
+ &-image
+ max-width: 349px
+ grid-area: image
+ +below(700px)
+ max-width: 100%
+
+ &-body
+ grid-area: body
grid-area: articles
// Internal grid for each article
+
&-article
display: grid
constrain(grid-gap, 2.5vw)
&-sidebar
grid-area: sidebar
+ max-width: 348px
+ .event img
+ width 100%;
+
//=== Individual News Post
grid-row-gap: 5vw
&-image
+ max-width: 349px
grid-area: image
+ +below(700px)
+ max-width: 100%
&-body
grid-area: body
<content>
<text-block :title="$page->title" title-tag="h1"/>
- <div class="news-post-layout">
+ <div class="application-post-layout">
{{-- Todo: use larger image + srcset here --}}
- <img src="{{ $page->getImageURL('image','thumb') }}" alt="{{ $page->title }}" class="news-post-image">
+ <img src="{{ $page->getImageURL('image','thumb') }}" alt="{{ $page->title }}" class="application-post-image">
- <div class="news-post-body">
+ <div class="application-post-body">
@markdown($page->content)
</div>
</div>
@extends('layouts.app')
@section('content')
-
+ @intro(['padding' => 'pb-4v'])
<full-width padding="pb-3v">
<content>
<a href="{{ $newsURL }}" class="news-index-article-image">
{{--Todo: handle missing images + get correct image size--}}
- <img src="{{ $newsItem->getFirstMediaUrl($newsItem->image, 'thumb') }}" alt="{{ $newsItem->title }}">
+ <img src="{{ $newsItem->getFirstMediaUrl($newsItem->image, 'index_thumb') }}" alt="{{ $newsItem->title }}">
</a>
<div class="news-index-article-text">
<div class="event @if(!$loop->last) mb-8 @endif">
<a href="{{ $eventURL }}">
- <img src="{{ $event->getFirstMediaUrl($event->image, 'thumb') }}" alt="{{ $event->title }}" style="max-width:252px" class="mb-3">
+ <img src="{{ $event->getFirstMediaUrl($event->image, 'details') }}" alt="{{ $event->title }}" style="max-width:252px" class="mb-3">
</a>
<h4 class="font-medium mb-1">{{ $event->title }}</h4>
<p>{{ $event->formatDateRange($event->event_start, $event->event_end) }}, {{ $event->event_place }}</p>