From 0e26f1eaef8bfd80025cd8eb87a0c3bb5aa3cc2e Mon Sep 17 00:00:00 2001 From: tabuna Date: Fri, 24 Nov 2023 07:01:03 +0300 Subject: [PATCH] WIP --- app/Http/Controllers/MeetController.php | 19 ++- app/Http/Controllers/ProfileController.php | 2 +- app/Models/Meet.php | 4 + resources/css/app.scss | 3 +- resources/views/meet/index.blade.php | 164 ++++++++++----------- resources/views/profile/base.blade.php | 4 +- routes/web.php | 4 +- vite.config.js | 2 +- 8 files changed, 104 insertions(+), 98 deletions(-) diff --git a/app/Http/Controllers/MeetController.php b/app/Http/Controllers/MeetController.php index 8f57fdd6..9654fb09 100644 --- a/app/Http/Controllers/MeetController.php +++ b/app/Http/Controllers/MeetController.php @@ -13,7 +13,24 @@ class MeetController extends Controller { public function index() { - return view('meet.index'); + $most = Meet::whereDate('start_date', '>=', now()) + ->orderBy('start_date', 'asc') + ->first(); + + $actual = Meet::whereDate('start_date', '>=', now()) + ->where('id', '!=', $most->id) + ->orderBy('start_date', 'asc') + ->get(); + + $past = Meet::whereDate('start_date', '<', now()) + ->orderBy('start_date', 'desc') + ->simplePaginate(5); + + return view('meet.index', [ + 'most' => $most, + 'actual' => $actual, + 'past' => $past, + ]); } public function edit(Request $request, Meet $meet) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 43f4c13d..81f398eb 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -43,7 +43,7 @@ private function getPosts(User $owner, PostTypeEnum $type, User $user){ return $user->attachLikeStatus($posts); } - public function events(User $user, Request $request) + public function meets(User $user, Request $request) { $meets = $user->meets()->latest() ->cursorPaginate(2); diff --git a/app/Models/Meet.php b/app/Models/Meet.php index d7743be4..b27ebfba 100644 --- a/app/Models/Meet.php +++ b/app/Models/Meet.php @@ -23,6 +23,10 @@ class Meet extends Model 'link', ]; + protected $casts = [ + 'start_date' => 'datetime', + ]; + /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ diff --git a/resources/css/app.scss b/resources/css/app.scss index 9ecacd05..45fe31d3 100644 --- a/resources/css/app.scss +++ b/resources/css/app.scss @@ -61,7 +61,8 @@ $font-family-sans-serif: 'Segoe UI Symbol', 'Noto Color Emoji'; -$headings-font-family: 'Raleway'; +$headings-font-family: 'Raleway', system-ui; +$btn-font-family: 'Raleway', system-ui; $btn-border-radius: 0.75rem; $border-width: 2px; diff --git a/resources/views/meet/index.blade.php b/resources/views/meet/index.blade.php index f28e3220..739f9dcb 100644 --- a/resources/views/meet/index.blade.php +++ b/resources/views/meet/index.blade.php @@ -3,60 +3,83 @@ @section('content') - - - - Нельзя пропустить - Ни одна PHP конференция не обойдется без Laravel - - Рассказать, что Laravel на столько популярен в мире PHP что нет какой-либо конференции, где не спикеры - не упоминали Laravel - - - -
- - -
-
-
- -
-

PHP Russia

-
- - -
- Дата -
11 Ноября
+ @if($past->currentPage() === 1) + + Нельзя пропустить + Не обойдется без Laravel + + Ни одна PHP конференция не обходится без упоминания Laravel. + Это самый популярный фреймворк в мире PHP. + + + @if($most) + +
+ + +
+
+
+ +
+

{{ $most->name }}

+
+ + +
+ Дата +
{{ $most->start_date->isoFormat('DD MMMM', 'Do MMMM') }}
+
+ +
+ Время +
Начало в {{ $most->start_date->isoFormat('hh:mm', 'Do MMMM') }}
+
+ +
+ Адрес +
{{ $most->address }}
+
+
- -
- Время -
Начало в 9 утра
-
- -
- Адрес -
Москва, Крокус Сити Хол
+
+
+ + +
-
-
- - -
+ + @endif + + +
+
+ @foreach($actual as $meet) +
+ @if($loop->first) +
+ +
+ @endif + @include('particles.meet', ['meet' => $meet])
-
-
- - + @endforeach + @if($actual->count() % 3 !== 0) + + @if($actual->count() % 4 === 0) + + @endif + @endif +
+
+ @endif -
+
@@ -74,53 +97,14 @@

Чтобы вы не сожалели о пропущенных конференциях, мы оставили записи с этих событий.

-
- Ульяновск, Главклуб -
Summer Merge
-

- В этом году PHP Russia пройдет в рамках HighLoad++ 2022. 30 докладов, 2 круглых стола, ревью - резюме, unconference и митапы. Поговорим о тестировании, качестве, лучших практиках, архитектуре - и фреймворках, добавим хардкора. -

- - Как это было -
- -
- Ульяновск, Главклуб -
Summer Merge
-

- В этом году PHP Russia пройдет в рамках HighLoad++ 2022. 30 докладов, 2 круглых стола, ревью - резюме, unconference и митапы. Поговорим о тестировании, качестве, лучших практиках, архитектуре - и фреймворках, добавим хардкора. -

- - Как это было -
- -
- Ульяновск, Главклуб -
Summer Merge
-

- В этом году PHP Russia пройдет в рамках HighLoad++ 2022. 30 докладов, 2 круглых стола, ревью - резюме, unconference и митапы. Поговорим о тестировании, качестве, лучших практиках, архитектуре - и фреймворках, добавим хардкора. -

- - Как это было -
-
- Ульяновск, Главклуб -
Summer Merge
-

- В этом году PHP Russia пройдет в рамках HighLoad++ 2022. 30 докладов, 2 круглых стола, ревью - резюме, unconference и митапы. Поговорим о тестировании, качестве, лучших практиках, архитектуре - и фреймворках, добавим хардкора. -

+ @foreach($past as $meet) +
+ @include('particles.meet', ['meet' => $meet]) +
+ @endforeach - Как это было -
+ {!! $past->links() !!}
diff --git a/resources/views/profile/base.blade.php b/resources/views/profile/base.blade.php index 17c4d947..e25d395b 100644 --- a/resources/views/profile/base.blade.php +++ b/resources/views/profile/base.blade.php @@ -89,8 +89,8 @@ >Награды
diff --git a/routes/web.php b/routes/web.php index 306f4003..05176d21 100644 --- a/routes/web.php +++ b/routes/web.php @@ -248,8 +248,8 @@ Route::get('/profile/{user:nickname}/awards',[\App\Http\Controllers\ProfileController::class,'awards']) ->name('profile.awards'); -Route::get('/profile/{user:nickname}/events',[\App\Http\Controllers\ProfileController::class,'events']) - ->name('profile.events'); +Route::get('/profile/{user:nickname}/meets',[\App\Http\Controllers\ProfileController::class,'meets']) + ->name('profile.meets'); /* diff --git a/vite.config.js b/vite.config.js index aa2700da..0fd9281c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,7 +10,7 @@ export default defineConfig({ refresh: true, }), prismjsPlugin({ - languages: ["php", "php-extras", "javascript", "json", "sql", "shell", "bash", "markup", "html", "clike", "phpdoc"], + languages: ["php", "php-extras", "javascript", "json", "sql", "shell", "bash", "markup", "html", "clike", "phpdoc", "yml", "nginx", "sass", "scss", "css"], plugins: [], //theme: "twilight", css: false,