Liveblog - start work

This commit is contained in:
NH Gooi
2026-02-08 20:43:55 +01:00
parent 733e18531f
commit b78379f268
7 changed files with 375 additions and 353 deletions

View File

@@ -9,22 +9,25 @@ class HomeController extends Controller
{
public function show(Request $request)
{
$page = (int)$request->get('pagina', 1);
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=10');
$page = (int) $request->get('pagina', 1);
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=10');
$news = [];
foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
}
}
$apiResult = $this->API('nieuws/liveblogs');
$liveblogs = $apiResult->liveblogs;
$populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5');
foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem);
}
$apiResult = $this->API('podcast/overzicht?aantal=15');
$index = array_rand($apiResult->podcasts);
$apiResult = $this->API('podcast/overzicht?aantal=15');
$index = array_rand($apiResult->podcasts);
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'liveblogs' => $liveblogs, 'searchURL' => 'nieuws/zoeken']);
}
}

View File

@@ -18,7 +18,7 @@ class NewsController extends Controller
{
parent::registerView($request, 'nieuws', $id);
$preview = "";
if(request()->get('preview', null) != null) {
if (request()->get('preview', null) != null) {
$preview = "?preview=" . request()->get('preview');
}
$apiResult = $this->API('nieuws/bericht/' . $id . $preview);
@@ -26,21 +26,22 @@ class NewsController extends Controller
switch ($apiResult->version) {
case 1:
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
if (!$newsItem->content)
return redirect('//nhnieuws.nl/gooi');
case 2:
if(isset($apiResult->source->article)) {
$source = $apiResult->source->article;
$newsItem->published = self::TimestampToDateTime($source->created);
$newsItem->edited = self::TimestampToDateTime($source->updated);
$newsItem->author = $source->author;
$newsItem->images = null; // Images will be embedded
$newsItem->video = null; // Videos will be embedded
$newsItem->content = $source->blocks;
} elseif(isset($apiResult->source->blocks)) {
$newsItem->content = $apiResult->source->blocks;
}
return view('newsitem', array_merge($this->getSidebareData(), ['type' => $apiResult->type, 'news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
case 2:
if (isset($apiResult->source->article)) {
$source = $apiResult->source->article;
$newsItem->published = self::TimestampToDateTime($source->created);
$newsItem->edited = self::TimestampToDateTime($source->updated);
$newsItem->author = $source->author;
$newsItem->images = null; // Images will be embedded
$newsItem->video = null; // Videos will be embedded
$newsItem->content = $source->blocks;
} elseif (isset($apiResult->source->blocks)) {
$newsItem->content = $apiResult->source->blocks;
}
return view('newsitem', array_merge($this->getSidebareData(), ['type' => $apiResult->type, 'news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
}
}
@@ -51,9 +52,9 @@ class NewsController extends Controller
public function more(Request $request)
{
$page = (int)$request->get('pagina', 1);
$page = (int) $request->get('pagina', 1);
$id = $request->get('id', '');
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=5');
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=5');
$news = [];
foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
@@ -64,10 +65,10 @@ class NewsController extends Controller
public function populair(Request $request)
{
$page = (int)$request->get('pagina', 1);
$page = (int) $request->get('pagina', 1);
$id = $request->get('id', '');
$populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5');
foreach ($apiResult->news as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem);
}
@@ -109,30 +110,19 @@ class NewsController extends Controller
return abort(404);
}
public function blog(Request $request, $id)
public function liveblog(Request $request, $id)
{
parent::registerView($request, 'blog', $id);
$page = (int)$request->get('pagina', 1);
$hasNext = true;
while ($page > 0) {
$apiResult = $this->API('blog/overzicht/' . (int)$id . '?pagina=' . (int)max(1, $page));
$blog = new \Model\Blog($apiResult->blog);
$items = [];
foreach ($apiResult->items as $blogItem) {
$items[] = new \Model\NewsItem($blogItem);
}
if (count($items) || ($page == 1)) {
return view('blog', ['blog' => $blog, 'pagina' => $page, 'items' => $items, 'hasNext' => $hasNext && count($items) == 15]);
}
$hasNext = false;
--$page;
$blog = $this->API('nieuws/liveblog/' . (int) $id);
foreach( $blog->artikelen as &$item ) {
$item = new \Model\NewsItem( $item );
}
if (count($blog->artikelen)) {
return view('blog', ['blog' => $blog]);
}
return abort(404);
return abort();
}
private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null)
@@ -140,11 +130,11 @@ class NewsController extends Controller
if ($request->ajax()) {
$total = 5;
}
$page = (int)$request->get('pagina', 1);
$page = (int) $request->get('pagina', 1);
if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) {
$url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null);
}
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int) max(1, $page) . ($total ? '&aantal=' . $total : ''));
$news = [];
foreach ($apiResult->news ?? [] as $newsItem) {
$news[] = new \Model\NewsItem($newsItem);
@@ -154,8 +144,10 @@ class NewsController extends Controller
if ($title == null) {
$total = 5;
}
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
$page) . ($total ? '&aantal=' . $total : ''));
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(
1,
$page
) . ($total ? '&aantal=' . $total : ''));
foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem);
}
@@ -192,15 +184,15 @@ class NewsController extends Controller
public function regionieuws()
{
$data = $this->API('nieuws/regionieuws.json');
$data = $this->API('nieuws/regionieuws.json');
return view('listen', [
'source' => $this->API_URL . 'nieuws/regionieuws.mp3',
'title' => 'Regionieuws',
'content' => 'het laatste nieuws uit de regio',
'isStream' => false,
'canDownload' => true,
'lengte' => $data->length * 0.25,
'waveform' => $data
]);
'canDownload' => true,
'lengte' => $data->length * 0.25,
'waveform' => $data
]);
}
}

View File

@@ -24,7 +24,7 @@ class NewsItem extends Model {
public $podcast;
public $images;
public $video;
public $type;
public $url;
public $metadata;

View File

@@ -1,52 +1,58 @@
@extends('layouts/sidebar')
@section('title')
@if($blog->title) {{$blog->title}} | Live blog @endif
@if($blog->titel) {{$blog->titel}} | Live blog @endif
@endsection
@section('controls')
<p>
<a href="{{Request::url()}}" class="action_button"><span class="fa fa-undo" class="action_button"></span><span>Verversen (nieuwste)</span></a>
@section('page_class')news_post post_container @endsection
{{-- @section('controls')
<p>
<a href="{{Request::url()}}" class="action_button"><span class="fa fa-undo"
class="action_button"></span><span>Verversen (nieuwste)</span></a>
@if($pagina > 1)
<a href="{{Request::url()}}?pagina={{$pagina - 1}}" class="action_button"><span class="fa fa-arrow-left"></span><span>Terug (nieuwer)</span></a>
<a href="{{Request::url()}}?pagina={{$pagina - 1}}" class="action_button"><span
class="fa fa-arrow-left"></span><span>Terug (nieuwer)</span></a>
@else
<a href="#" class="action_button disabled"><span class="fa fa-arrow-left"></span><span>Terug (nieuwere berichten)</span></a>
<a href="#" class="action_button disabled"><span class="fa fa-arrow-left"></span><span>Terug (nieuwere
berichten)</span></a>
@endif
@if($hasNext)
<a href="{{Request::url()}}?pagina={{$pagina + 1}}" class="action_button"><span class="fa fa-arrow-right"></span><span>Verder (ouder)</span></a>
<a href="{{Request::url()}}?pagina={{$pagina + 1}}" class="action_button"><span
class="fa fa-arrow-right"></span><span>Verder (ouder)</span></a>
@else
<a href="#" class="action_button disabled"><span class="fa fa-arrow-right"></span><span>Verder (ouder)</span></a>
<a href="#" class="action_button disabled"><span class="fa fa-arrow-right"></span><span>Verder (ouder)</span></a>
@endif
</p>
@endsection
</p>
@endsection --}}
@section('content')
<h3 class="excerpt">
{!!$blog->description!!}
<span style="font-size: 75%; margin: 5px; text-align: center">
@if($blog->is_active)
<span style="padding: 3px; color: white; background-color: #BD0013; border-radius: 5px;" title="Dit blog wordt momenteel actief bijgewerkt.">
Nu live!
</span>
@else
<span style="padding: 3px; background-color: #BDBDBD; border-radius: 5px;" title="Dit blog is gesloten en wordt hier getoond als archief.">
Archief
</span>
@endif
</span>
</h3>
<h3 class="excerpt">
@if($blog->is_actief)
<span style="font-family: sans-serif; padding: 3px; color: white; background-color: #BD0013; border-radius: 5px;"
titel="Dit blog wordt momenteel actief bijgewerkt.">
Nu live!
</span>
@else
<span style="font-family: sans-serif; padding: 3px; background-color: #BDBDBD; border-radius: 5px;"
titel="Dit blog is gesloten en wordt hier getoond als archief.">
Archief
</span>
@endif
</span>
</h3>
@yield('controls')
{{-- @yield('controls') --}}
<div id="items">
@include('partial/blogitems', ['items' => $items])
</div>
<div id="items">
@include('partial/blogitems', ['items' => $blog->artikelen])
</div>
@yield('controls')
<p class="center">(Pagina {{$pagina}})</p>
{{-- @yield('controls')
<p class="center">(Pagina {{$pagina}})</p> --}}
@endsection

View File

@@ -1,40 +1,51 @@
@extends('layouts.master')
@section('title')
Home
Home
@endsection
@section('content')
<div class="clearfix">
<div class="blog_grid" data-snapto="{}">
{{-- Desktop --}}
<div class="grid_view">
<div class="row">
<div class="col-4 col-md-6">
@if($item = current($news))
<div class="post large">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '/images/noimage.png'}}'
alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}"
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h2><a href="{{url($item->url)}}"
title="{{$item->title}}">{!!$item->title!!}</a></h2>
<?php
<div class="clearfix">
{{-- Liveblogs --}}
@if(count($liveblogs))
<div class="box full-width">
@foreach($liveblogs as $liveblog)
<a href="/nieuws/liveblog/{{ $liveblog->id }}/{{ $liveblog->slug }}" class="liveblog"
title="{{$liveblog->titel}}">
<span class="bi bi-blog"></span>
<b>Liveblog: {{$liveblog->titel}}</b>
</a>
@endforeach
</div>
@endif
<div class="blog_grid" data-snapto="{}">
{{-- Desktop --}}
<div class="grid_view">
<div class="row">
<div class="col-4 col-md-6">
@if($item = current($news))
<div class="post large">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '
/images/noimage.png'}}' alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}" href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h2><a href="{{url($item->url)}}" title="{{$item->title}}">{!!$item->title!!}</a></h2>
<?php
$time = Formatter::relativeDate($item->published) . ' om ' . $item->published->format('H:i');
if ($item->edited && ($item->edited->format('d m H i') != $item->published->format('d m H i'))) {
$time .= ' | bijgewerkt: '
@@ -42,77 +53,74 @@
. ' ' . $item->edited->format('H:i') . ' uur';
}
?>
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
@endif
@if($item = next($news))
<div class="post large d-block d-md-none">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '/images/noimage.png'}}'
alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}"
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h2><a href="{{url($item->url)}}"
title="{{$item->title}}">{!!$item->title!!}</a></h2>
<?php
$time = Formatter::relativeDate($item->published) . ' om ' . $item->published->format('H:i');
if ($item->edited && ($item->edited->format('d m H i') != $item->published->format('d m H i'))) {
$time .= ' | bijgewerkt: '
. ($item->edited->format('d m') != $item->published->format('d m') ? strtolower(Formatter::relativeDate($item->edited)) : '')
. ' ' . $item->edited->format('H:i') . ' uur';
}
?>
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
@endif
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
<div class="col-8 col-md-6">
<div class="row">
@php(prev($news))
@for($i = 0; ($i < 5) && ($item = next($news)); ++$i)
<div class="post small col-6{{$i == 0 ? ' d-none d-md-block' : ''}}{{$i == 4 ? ' d-block d-md-none' : ''}}">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '/images/noimage.png'}}'
alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}"
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h5 class="post_title"><a href="{{url($item->url)}}"
title="{{$item->title}}">{!!$item->title!!}</a></h5>
<?php
@endif
@if($item = next($news))
<div class="post large d-block d-md-none">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '
/images/noimage.png'}}' alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}" href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h2><a href="{{url($item->url)}}" title="{{$item->title}}">{!!$item->title!!}</a></h2>
<?php
$time = Formatter::relativeDate($item->published) . ' om ' . $item->published->format('H:i');
if ($item->edited && ($item->edited->format('d m H i') != $item->published->format('d m H i'))) {
$time .= ' | bijgewerkt: '
. ($item->edited->format('d m') != $item->published->format('d m') ? strtolower(Formatter::relativeDate($item->edited)) : '')
. ' ' . $item->edited->format('H:i') . ' uur';
}
?>
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
@endif
</div>
<div class="col-8 col-md-6">
<div class="row">
@php(prev($news))
@for($i = 0; ($i < 5) && ($item=next($news)); ++$i) <div
class="post small col-6{{$i == 0 ? ' d-none d-md-block' : ''}}{{$i == 4 ? ' d-block d-md-none' : ''}}">
<a href="{{url($item->url)}}" title="{{$item->title}}">
@if($item->video)
<span class="icon video"></span>
@elseif($item->images && count($item->images) > 1)
<span class="icon gallery"></span>
@endif
<img src='{{$item->images && count($item->images) ? $imgBase . $item->images[0]->url : '
/images/noimage.png'}}' alt='img'>
</a>
<div class="slider_content_box">
<ul class="post_details simple">
@foreach($item->tags as $tag)
<li class="category">
<a title="{{$tag->titel}}" href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
class="over_image">{{$tag->titel}}</a>
</li>
@endforeach
</ul>
<h5 class="post_title"><a href="{{url($item->url)}}"
title="{{$item->title}}">{!!$item->title!!}</a></h5>
<?php
$time = Formatter::relativeDate($item->published) . ' om ' . $item->published->format('H:i');
if ($item->edited && ($item->edited->format('d m H i') != $item->published->format('d m H i'))) {
$time .= ' | bijgewerkt: '
@@ -120,61 +128,63 @@
. ' ' . $item->edited->format('H:i') . ' uur';
}
?>
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
@endfor
</div>
<span class="post_date" title="{{$time}}">
<i class="fa-regular fa-clock"></i> {{$time}}
</span>
</div>
</div>
@endfor
</div>
</div>
</div>
</div>
</div>
{{-- body --}}
<div class="grey_background">
<div class="body_container row">
@if(!isset($disableBanners) || !$disableBanners)
<div class="homepage-body-banners d-none d-md-flex justify-content-center mb-4">
<ins data-revive-zoneid="3" data-revive-id="{{ env('REVIVE_ID') }}"></ins>
<ins data-revive-zoneid="4" data-revive-id="{{ env('REVIVE_ID') }}"></ins>
{{-- body --}}
<div class="grey_background">
<div class="body_container row">
@if(!isset($disableBanners) || !$disableBanners)
<div class="homepage-body-banners d-none d-md-flex justify-content-center mb-4">
<ins data-revive-zoneid="3" data-revive-id="{{ env('REVIVE_ID') }}"></ins>
<ins data-revive-zoneid="4" data-revive-id="{{ env('REVIVE_ID') }}"></ins>
</div>
@endif
<div class="col-12 col-md content_container">
<div class="row">
<div class="col-md-6 col-12">
<h4 class="box_header"><span>Meer nieuws</span></h4>
<div class="box full-width">
@include('partial/newslist_small', ['id' => 'items-more-news', 'news' => array_slice($news, 5,
5)])
</div>
@endif
<div class="col-12 col-md content_container">
<div class="row">
<div class="col-md-6 col-12">
<h4 class="box_header"><span>Meer nieuws</span></h4>
<div class="box full-width">
@include('partial/newslist_small', ['id' => 'items-more-news', 'news' => array_slice($news, 5, 5)])
</div>
</div>
</div>
<div class="col-md-6 col-12">
<h4 class="box_header"><span>Meest gelezen</span></h4>
<div class="box full-width">
@include('partial/newslist_small', ['id' => 'items-most-read', 'news' => $populair])
</div>
</div>
</div>
<div class="row mb-4">
<div class="col-12">
<a class="btn auto_width" id="meer-nieuws" href="{{route('nieuws')}}">
Klik hier voor meer nieuws
</a>
</div>
<div class="col-md-6 col-12">
<h4 class="box_header"><span>Meest gelezen</span></h4>
<div class="box full-width">
@include('partial/newslist_small', ['id' => 'items-most-read', 'news' => $populair])
</div>
</div>
</div>
<div class="row mb-4">
<div class="col-12">
<a class="btn auto_width" id="meer-nieuws" href="{{route('nieuws')}}">
Klik hier voor meer nieuws
</a>
</div>
</div>
@if ($podcast)
<?php $url = route('gemist.fragment') . $podcast->url; ?>
<h4 class="box_header"><span>Uitgelicht fragment</span></h4>
<div class="box featured">
<div class="row">
<div class="col-12 col-md-6">
<a href="{{$url}}" title="{{$podcast->title}}">
<img src="{{($hasImage = $podcast->image && $podcast->image->url) ? $imgBase . $podcast->image->url : '/images/noimage.png'}}"/>
<div class="sentence">
<?php
@if ($podcast)
<?php $url = route('gemist.fragment') . $podcast->url; ?>
<h4 class="box_header"><span>Uitgelicht fragment</span></h4>
<div class="box featured">
<div class="row">
<div class="col-12 col-md-6">
<a href="{{$url}}" title="{{$podcast->title}}">
<img
src="{{($hasImage = $podcast->image && $podcast->image->url) ? $imgBase . $podcast->image->url : '/images/noimage.png'}}" />
<div class="sentence">
<?php
$sentence = [];
if ($hasImage) {
$sentence[] = '<span class="text">' . $podcast->image->title . '</span>';
@@ -186,42 +196,40 @@
}
$sentence = join('<span class="separator">|</span>', $sentence);
?>
{!!$sentence!!}
</div>
</a>
</div>
<div class="col-12 col-md-6">
<h2 class="post_title"><a href="{{$url}}"
title="{{$podcast->title}}">{!!$podcast->title!!}</a></h2>
<div class="sub_title">
@if ($podcast->program)
<a class="program_name"
href="{{ route('programma') . $podcast->program->url }}"
title="{{$podcast->program->name}}">{{$podcast->program->name}}</a>
@endif
<span class="post_date" title="{{Formatter::relativeDate($podcast->created)}}">
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($podcast->created)}}
</span>
</div>
<p class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
{!!$podcast->content!!}
</p>
</div>
{!!$sentence!!}
</div>
</a>
</div>
<div class="col-12 col-md-6">
<h2 class="post_title"><a href="{{$url}}" title="{{$podcast->title}}">{!!$podcast->title!!}</a>
</h2>
<div class="sub_title">
@if ($podcast->program)
<a class="program_name" href="{{ route('programma') . $podcast->program->url }}"
title="{{$podcast->program->name}}">{{$podcast->program->name}}</a>
@endif
<span class="post_date" title="{{Formatter::relativeDate($podcast->created)}}">
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($podcast->created)}}
</span>
</div>
@endif
</div>
<div class="col-12 col-md-auto sidebar">
@include('widgets/nhgooiradiotv', ['headerClass' => 'small'])
@include('widgets.banner_sidebar')
@include('widgets/contact', [])
<p class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
{!!$podcast->content!!}
</p>
</div>
</div>
</div>
@endif
</div>
<div class="col-12 col-md-auto sidebar">
@include('widgets/nhgooiradiotv', ['headerClass' => 'small'])
@include('widgets.banner_sidebar')
@include('widgets/contact', [])
</div>
</div>
</div>
</div>
@endsection

View File

@@ -1,89 +1,101 @@
@foreach($items as $item)
<div class="row">
<div class="post single small_image">
<ul class="post_details clearfix">
<li class="detail date">
<i class="fa-regular fa-clock"></i>
{{Formatter::relativeDate($item->published)}} om {{$item->published->format("H:i")}}
@if($item->edited && ($item->edited->format("d m H i") != $item->published->format("d m H i")))
| <em>bijgewerkt</em>:
@if($item->edited->format("d m") != $item->published->format("d m"))
{{strtolower(Formatter::relativeDate($item->edited))}}
@endif
om {{$item->edited->format("H:i")}} uur
@endif
</li>
@if($item->author)
<li class="detail author">{{$item->author}}</li>
@foreach($items as $news)
<div class="post_body">
<h2>{{ $news->title }}</h2>
<ul class="post_details clearfix">
<li class="detail date">
<i class="fa-regular fa-clock"></i>
{{Formatter::relativeDate($news->published)}} om {{$news->published->format('H:i')}}
@if($news->edited && ($news->edited->format('d m H i') != $news->published->format('d m H i')))
| bijgewerkt:
@if($news->edited->format('d m') != $news->published->format('d m'))
{{strtolower(Formatter::relativeDate($news->edited))}}
@endif
</ul>
<div class="post_content page_margin_top clearfix">
<div class="content_box">
@if($item->images)
@if(count($item->images) == 1)
@if(!$item->images[0]->title) @php($item->images[0]->title = $item->title) @endif
<div class="post_image_box">
<a href="{{$imgBase . $item->images[0]->url}}" class="post_image prettyPhoto" rel="prettyPhoto" title="{{$item->images[0]->title}}">
<img src="{{$imgBase . $item->images[0]->url}}" alt="{{$item->images[0]->title}}">
</a>
<div class="sentence">
<span class="text">{{$item->images[0]->title}}</span>
@if(isset($item->images[0]->author))
<span class="author">{{$item->images[0]->author}}</span>
@endif
</div>
</div>
@else
<div class="horizontal_carousel_container gallery">
<ul class="horizontal_carousel visible-5 autoplay-1 scroll-1 navigation-1 easing-easeInOutQuint duration-750">
@foreach($item->images as $image)
@if(!$image->title) @php($image->title = $item->title) @endif
<li>
<a href="{{$imgBase . $image->url}}" class="post_image prettyPhoto" rel="prettyPhoto[gallery-{{$item->id}}]" title="{{$image->title}}">
<img src="{{$imgBase . $image->url}}" alt="{{$image->title}}" title="{{$image->title}}">
</a>
</li>
@endforeach
</ul>
</div>
@endif
@endif
<h3>{{$item->title}}</h3>
@if(is_array($item->content))
@include("partial/nh_story", ["content" => $item->content]);
@else
<div class="text">
<p>{!!$item->content!!}</p>
</div>
@endif
@if($item->video)
@include('widgets/mediaplayer')
@php(createVideoElement($item->video))
@endif
@if($item->source && $item->source->show)
<div class="post-source">
<p>Bron: {{$item->source->title}}</p>
</div>
@endif
</div>
</div>
@if($item->podcast)
@include("widgets/mediaplayer")
<div class="announcement">
<div>
<audio controls>
<source src="{{ $url = url( $apiUrl . "podcast/stream" . $item->podcast->url . "?auth=" . $item->podcast->auth )}}" type="audio/mpeg" />
</audio>
</div>
</div>
om {{$news->edited->format('H:i')}} uur
@endif
</li>
@if($news->author)
<li class="detail author"><i class="fa-solid fa-pen"></i> {{$news->author}}</li>
@endif
</ul>
<div class="post_content clearfix">
<div class="content_box">
@if($news->images)
@if(count($news->images) == 1)
<div class="post_image_box">
<a href="{{$imgBase . $news->images[0]->url}}" class="post_image prettyPhoto" rel="prettyPhoto"
title="{{$news->images[0]->title}}">
<img src='{{$imgBase . $news->images[0]->url}}' alt='{{$news->images[0]->title}}'>
</a>
<div class="sentence">
<span class="text">{{$news->images[0]->title}}</span>
@if(isset($news->images[0]->author))
<span class="author">{{$news->images[0]->author}}</span>
@endif
</div>
</div>
@else
<div class="horizontal_carousel_container thin page_margin_top gallery_control">
<ul
class="horizontal_carousel control-for-post-gallery visible-5 autoplay-0 scroll-1 navigation-1 easing-easeInOutQuint duration-750">
@foreach($news->images as $image)
<li>
<a href="#"><img src='{{$imgBase . $image->url}}'></a>
</li>
@endforeach
</ul>
</div>
<div id="control-by-post-gallery" class="horizontal_carousel_container big margin_top_10">
<ul id="post-gallery"
class="horizontal_carousel visible-1 autoplay-0 scroll-1 navigation-1 easing-easeInOutQuint duration-750">
@foreach($news->images as $image)
<li>
<a href="{{$imgBase . $image->url}}" data-rel="gallery" title="{{$image->title}}">
<span class="icon fullscreen animated"></span>
<img src='{{$imgBase . $image->url}}' alt='{{$image->title}}'>
</a>
</li>
</ul>
@endforeach
</div>
@endif
@endif
{{-- @if($news->type == "nhnieuws") --}}
{{-- @include('partial/nh_story', ['content' => $news->content]) --}}
{{-- @elseif($news->type == "artikel") --}}
{{-- @include('partial/block_story', ['content' => $news->content]) --}}
{{-- @else --}}
<div class="text">
<p>{!!$news->content!!}</p>
</div>
{{-- @endif --}}
@if($news->podcast)
@include('widgets/podcastplayer', ['podcast' => $news->podcast])
@endif
@if($news->source && $news->source->show)
<div class="post-source">
<p>Bron: {{$news->source->title}}</p>
</div>
@endif
{{--
@include('widgets/share')
--}}
{{-- <div class="share_buttons row">
<div class="col-12 col-md-auto">
<a data-share="native" href="javascript:void(0)" class="btn">
<i class="fa-solid fa-share"></i>
Delen
</a>
</div>
</div> --}}
</div>
</div>
</div>
<hr />
@endforeach

View File

@@ -27,6 +27,7 @@ Route::get('/nieuws/zoeken', function(Illuminate\Http\Request $request) {
}
return redirect('/nieuws');
});
Route::get('/nieuws/liveblog/{id}/{title}', 'NewsController@liveblog')->where(['id' => '\d+'])->name('nieuws.liveblog');
Route::get('/blog/{id}/{title}', 'NewsController@blog')->where(['id' => '\d+'])->name('blog');
Route::get('/blog', 'NewsController@activeblog');