From bf823c5063b5ad863e7e7cc313fb1406ddd14a98 Mon Sep 17 00:00:00 2001 From: horus Date: Mon, 13 Apr 2020 23:25:42 +0200 Subject: Add new page popular topics. --- app/Http/Controllers/IndexController.php | 16 ++++++++++++++ resources/views/list.blade.php | 12 +++++++++++ resources/views/topicpopular.blade.php | 37 ++++++++++++++++++++++++++++++++ routes/web.php | 1 + 4 files changed, 66 insertions(+) create mode 100644 resources/views/topicpopular.blade.php diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index cb401b5..bb1d301 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -104,4 +104,20 @@ class IndexController extends Controller return view('list', ["articles" => $articles, "count" => $count]); } + + public function populartopics() { + $topics = DB::select(" + SELECT + c.name, + count(c.name) AS count + FROM category AS c + JOIN + article_category AS ac ON c.id = ac.category_id + GROUP BY + c.name + ORDER BY count(c.name) DESC;"); +#echo "
"; var_dump($topics);exit;
+
+	    return view('topicpopular', ['topics' => $topics ]);
+    }
 }
diff --git a/resources/views/list.blade.php b/resources/views/list.blade.php
index f47c28a..1f6fc72 100644
--- a/resources/views/list.blade.php
+++ b/resources/views/list.blade.php
@@ -53,6 +53,10 @@ html {
 		

You are looking at all articles with the topic "{{ Request::route()->parameters()["topic"] }}". We found {{ $count }} matches. +
+
+ Hint: + To view all topics, click here. Too see the most popular topics, click here instead.

@elseif ( "random" == Request::route()->getName() ) @@ -79,6 +83,14 @@ html { + @if ( "popular" == Request::route()->getName() ) +
+

+ Hint: + You are looking at the most popular articles. If you are interested in popular topics instead, click here. +

+
+ @endif @endif diff --git a/resources/views/topicpopular.blade.php b/resources/views/topicpopular.blade.php new file mode 100644 index 0000000..f6a2c8a --- /dev/null +++ b/resources/views/topicpopular.blade.php @@ -0,0 +1,37 @@ +@extends ('layouts.app') + +@section ('styles') +html { + height: inherit; +} +@endsection + +@section ('content') + +
+ +
+
+

+ Popular Topics +

+
+

+ Hint: You are looking at popular topics. If you are interested in the most popular articles instead, click here instead. +

+
+
+
+ +
+
+ @foreach ($topics as $topic) + @if ( "" != $topic->name ) + {{ ucwords($topic->name) }} ({{ $topic->count }} Articles) + @endif + @endforeach +
+
+ +
+@endsection diff --git a/routes/web.php b/routes/web.php index 79615a6..a45dc59 100644 --- a/routes/web.php +++ b/routes/web.php @@ -18,6 +18,7 @@ Route::get('/topic/{topic}', 'IndexController@topic')->name('topic')->where('top Route::get('/topic/', 'IndexController@topicindex')->name('topic_index'); Route::get('/new', 'IndexController@new')->name('new'); Route::get('/search', 'IndexController@search')->name('search'); +Route::get('/popular/topics', 'IndexController@populartopics')->name('popular_topics'); Route::get('/popular', 'IndexController@popular')->name('popular'); Route::get('/random', 'IndexController@random')->name('random'); -- cgit v1.2.3