From 755554293ed9ba74fcb64f6f27b571591b0435dc Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 28 Jun 2026 14:07:20 +0200 Subject: [PATCH] Update menu entries and fixes some profile picture problems. Added help pages too. --- app/Http/Controllers/ShortLinkController.php | 56 +++++++++++++++++++ config/menu.php | 16 ++++-- extra.less | 14 +++++ resources/css/layout/menu.css | 8 +++ .../views/components/review-card.blade.php | 4 +- resources/views/entries/comments.blade.php | 2 + resources/views/layouts/menu.blade.php | 7 ++- resources/views/queue/item.blade.php | 2 +- routes/console.php | 1 + routes/web.php | 6 ++ 10 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 app/Http/Controllers/ShortLinkController.php diff --git a/app/Http/Controllers/ShortLinkController.php b/app/Http/Controllers/ShortLinkController.php new file mode 100644 index 0000000..62ab9cf --- /dev/null +++ b/app/Http/Controllers/ShortLinkController.php @@ -0,0 +1,56 @@ + 'translations', + 'r' => 'romhacks', + 'h' => 'homebrew', + 'u' => 'utilities', + 'd' => 'documents', + 'l' => 'lua-scripts', + ]; + + public function legacy( int $wpId ) + { + $log = DB::table('migrations_logs') + ->where('source_system') + ->whereIn('source_table', ['wp_posts', 'wp_posts__news'] ) + ->where('source_id', $wpId) + ->first(['target_table', 'target_id']); + + abort_unless((bool)$log, 404); + + if( $log->target_table == 'entries' ){ + $entry = Entry::findOrFail($log->target_id); + return redirect()->route('entries.show', ['section' => $entry->type, 'entry' => $entry], 301 ); + } else if( $log->target_table == 'news' ){ + $news = News::findOrFail($log->target_id); + return redirect()->route('news.show', ['news' => $news], 301); + } + + abort(404); + } + + public function redirect( string $letter, int $id ) + { + if( $letter === 'n' ){ + $news = News::findOrFail($id); + return redirect()->route('news.show', ['news' => $news], 301 ); + } + + $type = self::LETTER_TO_TYPE[$letter] ?? abort(404); + $entry = Entry::where('id', $id)->where('type', $type)->firstOrFail(); + + return redirect()->route('entries.show', ['section' => $entry->type, 'entry' => $entry], 301 ); + } + +} diff --git a/config/menu.php b/config/menu.php index 2e18180..5aac230 100644 --- a/config/menu.php +++ b/config/menu.php @@ -52,7 +52,7 @@ return [ [ 'name' => 'Discord', 'icon' => 'messages-square', - 'route' => 'home' + 'custom_route' => 'https://discord.gg/5CKzeWmZZU' ], [ 'name' => 'Members', @@ -80,15 +80,21 @@ return [ 'pages' => [ 'name' => 'Pages', 'items' => [ + [ + 'name' => 'Support us', + 'icon' => 'coffee', + 'custom_route' => 'https://ko-fi.com/romhackplaza', + 'color' => 'var(--rhpz-orange)' + ], [ 'name' => 'Learn Romhacking', 'icon' => 'graduation-cap', - 'route' => 'home' + 'xf_route' => 'help/learn-romhacking' ], [ 'name' => 'About', 'icon' => 'info', - 'route' => 'home' + 'xf_route' => 'help/about' ], [ 'name' => 'Contact Us', @@ -96,9 +102,9 @@ return [ 'xf_route' => 'misc/contact' ], [ - 'name' => 'Legal pages', + 'name' => 'Help & Legal pages', 'icon' => 'scale', - 'route' => 'home' + 'xf_route' => 'help' ] ] ] diff --git a/extra.less b/extra.less index fd587f1..cfdded9 100644 --- a/extra.less +++ b/extra.less @@ -71,6 +71,9 @@ ul { /* Menu settings */ --menu-size: 260px; --menu-user-avatar-bg: #555; + + /* Gap */ + --gap: 15px; } .\$light-mode { @@ -132,6 +135,7 @@ ul { background-color: var(--bg2); border: 1px solid var(--border); display: flex; + min-width: 0; flex-direction: column; transition: transform 0.2s, border-color 0.2s; cursor: pointer; @@ -144,6 +148,7 @@ ul { .\$entry-cover-wrapper { position: relative; aspect-ratio: 4/3; + min-width: 0; background-color: var(--bg); border-bottom: 1px solid var(--border); display: flex; @@ -183,6 +188,7 @@ ul { font-size: 1.1rem; margin-bottom: 5px; line-height: 1.3; + word-wrap: break-word; } .\$entry-card-author { @@ -5277,6 +5283,14 @@ ul { display: flex; align-items: center; justify-content: center; + overflow: hidden; + + img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; + } } .\$menu-user-info { display: flex; diff --git a/resources/css/layout/menu.css b/resources/css/layout/menu.css index e7f3e47..cf88382 100644 --- a/resources/css/layout/menu.css +++ b/resources/css/layout/menu.css @@ -115,6 +115,14 @@ display: flex; align-items: center; justify-content: center; + overflow: hidden; + + img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; + } } .menu-user-info { display: flex; diff --git a/resources/views/components/review-card.blade.php b/resources/views/components/review-card.blade.php index c61723f..225feea 100644 --- a/resources/views/components/review-card.blade.php +++ b/resources/views/components/review-card.blade.php @@ -1,5 +1,7 @@
- +
+ +
diff --git a/resources/views/entries/comments.blade.php b/resources/views/entries/comments.blade.php index af2cbb3..898d398 100644 --- a/resources/views/entries/comments.blade.php +++ b/resources/views/entries/comments.blade.php @@ -42,7 +42,9 @@ @continue @else
+
+
diff --git a/resources/views/layouts/menu.blade.php b/resources/views/layouts/menu.blade.php index 6b05ce6..8c108ae 100644 --- a/resources/views/layouts/menu.blade.php +++ b/resources/views/layouts/menu.blade.php @@ -16,8 +16,11 @@ @foreach( $menu['items'] as $item ) @if( !isset( $item['requires_auth'] ) || $item['requires_auth'] === true && $VISITOR->loggedIn() ) - request()->routeIs( $item['route'] ?? '' )]) > + request()->routeIs( $item['route'] ?? '' )]) + style="{{ isset( $item['color'] ) ? 'color:' . $item['color'] . ';' : '' }}" + {{ isset( $item['custom_route'] ) ? 'target="_blank"' : '' }} + > {{ $item['name'] }} @endif diff --git a/resources/views/queue/item.blade.php b/resources/views/queue/item.blade.php index 69f6f29..1193523 100644 --- a/resources/views/queue/item.blade.php +++ b/resources/views/queue/item.blade.php @@ -13,7 +13,7 @@ Rejected @php - $daysLeft = intval(7 - now()->diffInDays($entry->rejected_at)); + $daysLeft = 7 + intval(now()->diffInDays($entry->rejected_at)); @endphp @if($daysLeft > 0) - deleted in {{ $daysLeft }} days diff --git a/routes/console.php b/routes/console.php index 87f95c9..5d1b85c 100644 --- a/routes/console.php +++ b/routes/console.php @@ -9,3 +9,4 @@ Artisan::command('inspire', function () { Schedule::command('entries:purge-rejected')->daily(); Schedule::command('entries:purge-featured')->daily(); +Schedule::command('sitemap:generate')->daily(); diff --git a/routes/web.php b/routes/web.php index e1338a5..c1683b6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -132,3 +132,9 @@ Route::name('redirect.')->controller(\App\Http\Controllers\RedirectController::c Route::get('/entry/report_redirect', 'entryReportRedirect' )->name('entry_report'); Route::get('/news/report_redirect', 'newsReportRedirect' )->name('news_report'); }); + +// ShortLinkController +Route::domain('rhpz.org')->name('shorturl.')->controller(\App\Http\Controllers\ShortLinkController::class)->group(function () { + Route::get('/{id}', 'legacy' )->where('id', '[0-9]+')->name('legacy'); + Route::get('/{letter}/{id}', 'redirect' )->where(['letter' => '[a-z]', 'id' => '[0-9]+'])->name('redirect'); +});