Update menu entries and fixes some profile picture problems.

Added help pages too.
This commit is contained in:
2026-06-28 14:07:20 +02:00
parent b562abd271
commit 755554293e
10 changed files with 107 additions and 9 deletions

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Controllers;
use App\Models\Entry;
use App\Models\News;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ShortLinkController extends Controller
{
private const array LETTER_TO_TYPE = [
't' => '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 );
}
}

View File

@@ -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'
]
]
]

View File

@@ -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;

View File

@@ -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;

View File

@@ -1,5 +1,7 @@
<div class="comment-block">
<x-xen-foro-avatar :user="$review->user_id" />
<div class="comment-avatar">
<x-xen-foro-avatar :user="$review->user_id" />
</div>
<div class="comment-content">
<div class="comment-meta">

View File

@@ -42,7 +42,9 @@
@continue
@else
<div class="comment-block">
<div class="comment-avatar">
<x-xen-foro-avatar :user="$comment['user_id']" />
</div>
<div class="comment-content">
<div class="comment-meta">

View File

@@ -16,8 +16,11 @@
@foreach( $menu['items'] as $item )
@if( !isset( $item['requires_auth'] ) || $item['requires_auth'] === true && $VISITOR->loggedIn() )
<a href="{{ isset($item['xf_route']) ? xfRoute($item['xf_route']) : route($item['route']) }}"
@class(['menu-item', 'active' => request()->routeIs( $item['route'] ?? '' )]) >
<a href="{{ isset($item['xf_route']) ? xfRoute($item['xf_route']) : $item['custom_route'] ?? route($item['route']) }}"
@class(['menu-item', 'active' => request()->routeIs( $item['route'] ?? '' )])
style="{{ isset( $item['color'] ) ? 'color:' . $item['color'] . ';' : '' }}"
{{ isset( $item['custom_route'] ) ? 'target="_blank"' : '' }}
>
<i data-lucide="{{ $item['icon'] }}"></i><span>{{ $item['name'] }}</span>
</a>
@endif

View File

@@ -13,7 +13,7 @@
<i data-lucide="x-circle" size="12"></i>
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

View File

@@ -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();

View File

@@ -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');
});