From 78bb7dae28e7e556c24375ae9aff606ce5321bf9 Mon Sep 17 00:00:00 2001 From: MitarashiDango Date: Mon, 16 Sep 2019 13:24:22 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=BF=E3=82=B0=E4=B8=80=E8=A6=A7=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/TagController.php | 29 ++++++++++++++++++++++++++ resources/assets/sass/app.scss | 3 +++ resources/assets/sass/tag/_index.scss | 22 +++++++++++++++++++ resources/views/layouts/base.blade.php | 3 +++ resources/views/tag/index.blade.php | 20 ++++++++++++++++++ routes/web.php | 2 ++ 6 files changed, 79 insertions(+) create mode 100644 app/Http/Controllers/TagController.php create mode 100644 resources/assets/sass/tag/_index.scss create mode 100644 resources/views/tag/index.blade.php diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php new file mode 100644 index 0000000..3e489d5 --- /dev/null +++ b/app/Http/Controllers/TagController.php @@ -0,0 +1,29 @@ +join('ejaculation_tag', 'tags.id', '=', 'ejaculation_tag.tag_id') + ->join('ejaculations', 'ejaculations.id', '=', 'ejaculation_tag.ejaculation_id') + ->where('ejaculations.is_private', false) + ->groupBy('tags.name') + ->orderByDesc('checkins_count') + ->orderBy('tags.name') + ->paginate(100); + + return view('tag.index', compact('tags')); + } +} diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss index 0fe2b4f..6f38126 100644 --- a/resources/assets/sass/app.scss +++ b/resources/assets/sass/app.scss @@ -13,3 +13,6 @@ $primary: #e53fb1; // Components @import "components/ejaculation"; @import "components/link-card"; + +// Tag +@import "tag/index"; diff --git a/resources/assets/sass/tag/_index.scss b/resources/assets/sass/tag/_index.scss new file mode 100644 index 0000000..eed3db6 --- /dev/null +++ b/resources/assets/sass/tag/_index.scss @@ -0,0 +1,22 @@ +.tags { + & > .btn-tag { + width: 100%; + + .tag-name { + display: inline-block; + max-width: 80%; + overflow: hidden; + line-height: 40px; + text-overflow: ellipsis; + white-space: nowrap; + vertical-align: middle; + } + + .checkins-count { + display: inline-block; + line-height: 40px; + white-space: nowrap; + vertical-align: middle; + } + } +} diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php index 14943e4..f4f4f77 100644 --- a/resources/views/layouts/base.blade.php +++ b/resources/views/layouts/base.blade.php @@ -79,6 +79,9 @@ + {{----}} diff --git a/resources/views/tag/index.blade.php b/resources/views/tag/index.blade.php new file mode 100644 index 0000000..fb088b4 --- /dev/null +++ b/resources/views/tag/index.blade.php @@ -0,0 +1,20 @@ +@extends('layouts.base') + +@section('title', 'タグ一覧') + +@section('content') +
+

タグ一覧

+

公開チェックインに付けられているタグを、チェックイン数の多い順で表示しています。

+
+
+
+ @foreach($tags as $tag) + + @endforeach +
+ {{ $tags->links(null, ['className' => 'mt-4 justify-content-center']) }} +
+@endsection diff --git a/routes/web.php b/routes/web.php index 6eba7e1..6c0fbdb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -46,6 +46,8 @@ Route::redirect('/search', '/search/checkin', 301); Route::get('/search/checkin', 'SearchController@index')->name('search'); Route::get('/search/related-tag', 'SearchController@relatedTag')->name('search.related-tag'); +Route::get('/tag', 'TagController@index')->name('tag'); + Route::middleware('can:admin') ->namespace('Admin') ->prefix('admin')