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