From 3b8c85215fe5984e9542b98b0300c3bc6bca21a4 Mon Sep 17 00:00:00 2001 From: Mischa Spelt Date: Sun, 22 Mar 2020 19:44:44 +0100 Subject: [PATCH] Add blog functionality --- api-dev | 1 - app/Console/Kernel.php | 5 ++ app/Http/Controllers/Controller.php | 1 + app/Http/Controllers/NewsController.php | 42 +++++++++- public/css/nhgooi.css | 16 ++++ public/js/main.js | 2 +- resources/views/blog.blade.php | 52 ++++++++++++ resources/views/calendarevent.blade.php | 2 +- resources/views/newsitem.blade.php | 4 +- resources/views/partial/blogitems.blade.php | 90 +++++++++++++++++++++ resources/views/partial/nh_story.blade.php | 4 +- resources/views/podcastitem.blade.php | 2 +- resources/views/radioschedule.blade.php | 6 ++ resources/views/widgets/menu.blade.php | 14 ++++ routes/web.php | 3 + 15 files changed, 235 insertions(+), 9 deletions(-) delete mode 120000 api-dev create mode 100644 resources/views/blog.blade.php create mode 100644 resources/views/partial/blogitems.blade.php diff --git a/api-dev b/api-dev deleted file mode 120000 index 44602463..00000000 --- a/api-dev +++ /dev/null @@ -1 +0,0 @@ -../api-dev \ No newline at end of file diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 24e9dfc7..4a6b0091 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -50,6 +50,11 @@ class Kernel extends ConsoleKernel $schedule->call(function() { Storage::disk('local')->put('regioagenda.json', file_get_contents($this->API_URL . 'agenda/overzicht')); })->everyMinute(); + + // Update blogs + $schedule->call(function() { + Storage::disk('local')->put('blogs.json', file_get_contents($this->API_URL . 'blog/overzicht')); + })->everyMinute(); } /** diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index a67a3c39..cf673829 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -77,6 +77,7 @@ class Controller extends BaseController }); View::composer('widgets.menu', function($view) { $view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem')) + ->with('blogs', $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1)) ->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem', 3)) ->with('podcasts', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')); }); diff --git a/app/Http/Controllers/NewsController.php b/app/Http/Controllers/NewsController.php index 2bd4f129..b544e3ba 100644 --- a/app/Http/Controllers/NewsController.php +++ b/app/Http/Controllers/NewsController.php @@ -55,7 +55,47 @@ class NewsController extends Controller { return $this->listNews($request, 'zoeken/' . $query, 'Zoekresultaat')->with('query', urldecode($query)); } - + + + public function activeblog() + { + $apiResult = $this->API('blog/overzicht'); + if(count($apiResult)) { + $blog = new \Model\Blog($apiResult[0]); + if($blog->is_active) { + return redirect($blog->url); + } + } + + return abort(404); + } + + public function blog(Request $request, $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; + } + + return abort(404); + } + private function listNews(Request $request, $url, $title = null) { $page = (int)$request->get('pagina', 1); diff --git a/public/css/nhgooi.css b/public/css/nhgooi.css index 8c8b3a7f..32e6445e 100644 --- a/public/css/nhgooi.css +++ b/public/css/nhgooi.css @@ -351,7 +351,23 @@ button[disabled]:hover width: 100%; } +.horizontal_carousel_container.gallery_control .horizontal_carousel > li { + position: relative; + width: 250px; + height: 133px; +} + +.horizontal_carousel_container.gallery .horizontal_carousel > li { + width: auto; + height: 250px; +} + +.horizontal_carousel_container.gallery .horizontal_carousel > li img { + height: 250px; +} + .mega_menu a.fixed-height { + width: auto; height: 135px; } diff --git a/public/js/main.js b/public/js/main.js index 37af7a01..607b2875 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1204,7 +1204,7 @@ jQuery(document).ready(function($){ }); //fancybox - $(".prettyPhoto").prettyPhoto({ + $(".prettyPhoto[rel^='prettyPhoto']").prettyPhoto({ show_title: false, slideshow: 3000, overlay_gallery: true, diff --git a/resources/views/blog.blade.php b/resources/views/blog.blade.php new file mode 100644 index 00000000..c4dae9da --- /dev/null +++ b/resources/views/blog.blade.php @@ -0,0 +1,52 @@ +@extends('layouts/sidebar') + +@section('title') + @if($blog->title) {{$blog->title}} | Live blog @endif +@endsection + +@section('controls') +

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

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

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

+ + @yield('controls') + +
+ @include('partial/blogitems', ['items' => $items]) +
+ + @yield('controls') +

(Pagina {{$pagina}})

+ +@endsection + diff --git a/resources/views/calendarevent.blade.php b/resources/views/calendarevent.blade.php index fdb68b71..129759a9 100644 --- a/resources/views/calendarevent.blade.php +++ b/resources/views/calendarevent.blade.php @@ -57,7 +57,7 @@ @if($event->images) @if(count($event->images) == 1)
- + {{$event->images[0]->title}}
diff --git a/resources/views/newsitem.blade.php b/resources/views/newsitem.blade.php index 7a235d99..4eed3c3f 100644 --- a/resources/views/newsitem.blade.php +++ b/resources/views/newsitem.blade.php @@ -46,7 +46,7 @@
    @@ -69,7 +69,7 @@ @if($news->images) @if(count($news->images) == 1)
    - + {{$news->images[0]->title}}
    diff --git a/resources/views/partial/blogitems.blade.php b/resources/views/partial/blogitems.blade.php new file mode 100644 index 00000000..d25ad7df --- /dev/null +++ b/resources/views/partial/blogitems.blade.php @@ -0,0 +1,90 @@ +@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}}
    • + @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') + + @endif + + @if($item->source && $item->source->show) +
    +

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

    +
    + @endif +
    +
    + @if($item->podcast) + @include("widgets/mediaplayer") +
    +
    + +
    +
    + @endif +
    +
    + +@endforeach diff --git a/resources/views/partial/nh_story.blade.php b/resources/views/partial/nh_story.blade.php index 6a7a2e30..74b4da9a 100644 --- a/resources/views/partial/nh_story.blade.php +++ b/resources/views/partial/nh_story.blade.php @@ -1,7 +1,7 @@ @foreach($content as $block) @if($block->type == "headerRichA") @php($block->image->url = $block->image->crops->{'16:9'}->{'1600'}) - + {{$block->image->title}}
    @@ -20,7 +20,7 @@
    {{$block->name}}
    @elseif($block->type == "image") - + {{$block->image->title}}
    diff --git a/resources/views/podcastitem.blade.php b/resources/views/podcastitem.blade.php index 5349d776..570db3c7 100644 --- a/resources/views/podcastitem.blade.php +++ b/resources/views/podcastitem.blade.php @@ -108,7 +108,7 @@ $(".vertical_carousel").each(function() { @if($podcast->image)
    - +
    diff --git a/resources/views/radioschedule.blade.php b/resources/views/radioschedule.blade.php index 335afba1..b859397e 100644 --- a/resources/views/radioschedule.blade.php +++ b/resources/views/radioschedule.blade.php @@ -11,6 +11,12 @@ @endsection @section('content') +

    + Hieronder vindt u onze reguliere radioprogrammering.
    + Ook bij NH Gooi is de hoogste prioriteit momenteel de gezondheid van onze medewerkers en gasten.
    + In overleg met de programmamakers worden sommige muziekprogramma's vervangen door herhalingen of komen deze te vervallen. Onze nieuwsuitzendingen zoals het regionieuws op het halve uur en de NH Gooi Zaterdag vinden zoveel mogelijk doorgang, waar nodig in aangepaste vorm.
    +

    +