diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php new file mode 100644 index 0000000..811153f --- /dev/null +++ b/app/Http/Controllers/TagController.php @@ -0,0 +1,37 @@ +join('ejaculation_tag', 'tags.id', '=', 'ejaculation_tag.tag_id') + ->join('ejaculations', 'ejaculations.id', '=', 'ejaculation_tag.ejaculation_id') + ->join('users', 'users.id', '=', 'ejaculations.user_id') + ->where('ejaculations.is_private', false) + ->where(function ($query) { + $query->where('users.is_protected', false); + if (Auth::check()) { + $query->orWhere('users.id', Auth::id()); + } + }) + ->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..9d03065 100644 --- a/resources/views/layouts/base.blade.php +++ b/resources/views/layouts/base.blade.php @@ -79,6 +79,9 @@ + {{----}} @@ -137,6 +140,13 @@ オカズ +
+
+ タグ一覧 +
+
+
+
{{--
ランキング diff --git a/resources/views/tag/index.blade.php b/resources/views/tag/index.blade.php new file mode 100644 index 0000000..e097f4c --- /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')