diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index c0f8cf98..a8f0fdbc 100755 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -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']); } } diff --git a/app/Http/Controllers/NewsController.php b/app/Http/Controllers/NewsController.php index 362993cc..5b0f900f 100755 --- a/app/Http/Controllers/NewsController.php +++ b/app/Http/Controllers/NewsController.php @@ -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 + ]); } } diff --git a/app/Models/NewsItem.php b/app/Models/NewsItem.php index da3aba41..710794a6 100755 --- a/app/Models/NewsItem.php +++ b/app/Models/NewsItem.php @@ -24,7 +24,7 @@ class NewsItem extends Model { public $podcast; public $images; public $video; - + public $type; public $url; public $metadata; diff --git a/resources/views/blog.blade.php b/resources/views/blog.blade.php index c4dae9da..323748f8 100755 --- a/resources/views/blog.blade.php +++ b/resources/views/blog.blade.php @@ -1,52 +1,58 @@ @extends('layouts/sidebar') -@section('title') - @if($blog->title) {{$blog->title}} | Live blog @endif +@section('title') +@if($blog->titel) {{$blog->titel}} | Live blog @endif @endsection -@section('controls') -

- Verversen (nieuwste) +@section('page_class')news_post post_container @endsection + + +{{-- @section('controls') +

+ Verversen (nieuwste) @if($pagina > 1) - Terug (nieuwer) + Terug (nieuwer) @else - Terug (nieuwere berichten) + Terug (nieuwere + berichten) @endif @if($hasNext) - Verder (ouder) + Verder (ouder) @else - Verder (ouder) + Verder (ouder) @endif -

-@endsection +

+@endsection --}} @section('content') -

- {!!$blog->description!!} - - @if($blog->is_active) - - Nu live! - - @else - - Archief - - @endif - -

+

+ @if($blog->is_actief) + + Nu live! + + @else + + Archief + + @endif + +

- @yield('controls') +{{-- @yield('controls') --}} -
- @include('partial/blogitems', ['items' => $items]) -
+
+ @include('partial/blogitems', ['items' => $blog->artikelen]) +
- @yield('controls') -

(Pagina {{$pagina}})

- -@endsection +{{-- @yield('controls') +

(Pagina {{$pagina}})

--}} +@endsection \ No newline at end of file diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index e3be4c8e..88a268d8 100755 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -1,40 +1,51 @@ @extends('layouts.master') @section('title') - Home +Home @endsection @section('content') -
-
- {{-- Desktop --}} -
-
-
- @if($item = current($news)) -
- - @if($item->video) - - @elseif($item->images && count($item->images) > 1) - - @endif - img - -
- -

{!!$item->title!!}

- + {{-- Liveblogs --}} + @if(count($liveblogs)) +
+ @foreach($liveblogs as $liveblog) + + + Liveblog: {{$liveblog->titel}} + + @endforeach +
+ @endif + +
+ {{-- Desktop --}} +
+
+
+ @if($item = current($news)) +
+ + @if($item->video) + + @elseif($item->images && count($item->images) > 1) + + @endif + img + +
+ +

{!!$item->title!!}

+ 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'; } ?> - -
-
- @endif - @if($item = next($news)) -
- - @if($item->video) - - @elseif($item->images && count($item->images) > 1) - - @endif - img - -
- -

{!!$item->title!!}

- 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'; - } - ?> - -
-
- @endif + +
-
-
- @php(prev($news)) - @for($i = 0; ($i < 5) && ($item = next($news)); ++$i) -
- - @if($item->video) - - @elseif($item->images && count($item->images) > 1) - - @endif - img - -
- -
{!!$item->title!!}
- + + @if($item->video) + + @elseif($item->images && count($item->images) > 1) + + @endif + img + +
+ +

{!!$item->title!!}

+ 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'; + } + ?> + +
+
+ @endif +
+
+
+ @php(prev($news)) + @for($i = 0; ($i < 5) && ($item=next($news)); ++$i)
+ + @if($item->video) + + @elseif($item->images && count($item->images) > 1) + + @endif + img + +
+ +
{!!$item->title!!}
+ 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'; } ?> - -
-
- @endfor -
+ +
+ @endfor
+
+
- {{-- body --}} -
-
- @if(!isset($disableBanners) || !$disableBanners) -
- - +{{-- body --}} +
+
+ @if(!isset($disableBanners) || !$disableBanners) +
+ + +
+ @endif +
+
+
+

Meer nieuws

+
+ @include('partial/newslist_small', ['id' => 'items-more-news', 'news' => array_slice($news, 5, + 5)])
- @endif -
-
-
-

Meer nieuws

-
- @include('partial/newslist_small', ['id' => 'items-more-news', 'news' => array_slice($news, 5, 5)]) -
-
+
-
-

Meest gelezen

-
- @include('partial/newslist_small', ['id' => 'items-most-read', 'news' => $populair]) -
-
-
-
- +
+

Meest gelezen

+
+ @include('partial/newslist_small', ['id' => 'items-most-read', 'news' => $populair])
+
+
+ - @if ($podcast) - url; ?> -

Uitgelicht fragment

- -@endsection - +
+
+@endsection \ No newline at end of file diff --git a/resources/views/partial/blogitems.blade.php b/resources/views/partial/blogitems.blade.php index 75f066ee..1d882a1c 100755 --- a/resources/views/partial/blogitems.blade.php +++ b/resources/views/partial/blogitems.blade.php @@ -1,89 +1,101 @@ -@foreach($items as $item) -
-
-
    -
  • - - {{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"))) - | bijgewerkt: - @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 -
  • - @if($item->author) -
  • {{$item->author}}
  • +@foreach($items as $news) +
    +

    {{ $news->title }}

    +
      +
    • + + {{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 -
    - - -
    -
    - @if($item->images) - @if(count($item->images) == 1) - @if(!$item->images[0]->title) @php($item->images[0]->title = $item->title) @endif -
    - - {{$item->images[0]->title}} - -
    - {{$item->images[0]->title}} - @if(isset($item->images[0]->author)) - {{$item->images[0]->author}} - @endif -
    -
    - @else - - @endif - @endif - -

    {{$item->title}}

    - - @if(is_array($item->content)) - @include("partial/nh_story", ["content" => $item->content]); - @else -
    -

    {!!$item->content!!}

    -
    - @endif - - @if($item->video) - @include('widgets/mediaplayer') - @php(createVideoElement($item->video)) - @endif - - @if($item->source && $item->source->show) -
    -

    Bron: {{$item->source->title}}

    -
    - @endif -
    -
    - @if($item->podcast) - @include("widgets/mediaplayer") -
    -
    - -
    -
    + om {{$news->edited->format('H:i')}} uur + @endif + + @if($news->author) +
  • {{$news->author}}
  • @endif +
+ + +
+
+ @if($news->images) + @if(count($news->images) == 1) +
+ + {{$news->images[0]->title}} + +
+ {{$news->images[0]->title}} + @if(isset($news->images[0]->author)) + {{$news->images[0]->author}} + @endif +
+
+ @else + +
+
    + @foreach($news->images as $image) +
  • + + + {{$image->title}} + +
  • +
+ @endforeach +
+ @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 --}} +
+

{!!$news->content!!}

+
+ {{-- @endif --}} + + @if($news->podcast) + @include('widgets/podcastplayer', ['podcast' => $news->podcast]) + @endif + + @if($news->source && $news->source->show) +
+

Bron: {{$news->source->title}}

+
+ @endif + + {{-- + @include('widgets/share') + --}} + + {{-- --}} +
- -@endforeach +
+@endforeach \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 5ba501c4..ac0088a9 100755 --- a/routes/web.php +++ b/routes/web.php @@ -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');