161 lines
10 KiB
PHP
161 lines
10 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Legacy routes — old site URL compatibility layer.
|
|
*
|
|
* These routes exist purely to keep old bookmarks / external links working.
|
|
* Most are 301 redirects to their canonical replacements, or thin wrappers
|
|
* around controllers that were never updated to use new URL patterns.
|
|
*
|
|
* Do NOT add new features here. When a legacy route is no longer needed,
|
|
* remove it from this file.
|
|
*/
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
//use App\Http\Controllers\Web\ArtController;
|
|
use App\Http\Controllers\Legacy\AvatarController;
|
|
use App\Http\Controllers\Web\FeaturedArtworksController;
|
|
use App\Http\Controllers\Web\DailyUploadsController;
|
|
use App\Http\Controllers\Community\ChatController;
|
|
use App\Http\Controllers\Community\LatestController;
|
|
use App\Http\Controllers\User\TopFavouritesController;
|
|
use App\Http\Controllers\User\FavouritesController;
|
|
use App\Http\Controllers\User\TopAuthorsController;
|
|
use App\Http\Controllers\User\TodayInHistoryController;
|
|
use App\Http\Controllers\User\TodayDownloadsController;
|
|
use App\Http\Controllers\User\MonthlyCommentatorsController;
|
|
use App\Http\Controllers\User\MembersController;
|
|
use App\Http\Controllers\User\StatisticsController;
|
|
use App\Http\Controllers\User\ProfileController;
|
|
use App\Http\Controllers\Web\BrowseGalleryController;
|
|
use App\Http\Controllers\Web\GalleryController;
|
|
use App\Http\Controllers\Web\RssFeedController;
|
|
//use App\Http\Controllers\Dashboard\ManageController;
|
|
use App\Http\Controllers\Legacy\ReceivedCommentsController;
|
|
|
|
// ── AVATARS ───────────────────────────────────────────────────────────────────
|
|
Route::get('/avatar/{id}/{name?}', [AvatarController::class, 'show'])
|
|
->where('id', '\d+')
|
|
->name('legacy.avatar');
|
|
|
|
// ── ARTWORK (legacy comment URL) ──────────────────────────────────────────────
|
|
//Route::match(['get','post'], '/art/{id}/comment', [ArtController::class, 'show'])->where('id', '\d+');
|
|
|
|
// ── CATEGORIES / SECTIONS ─────────────────────────────────────────────────────
|
|
Route::redirect('/sections', '/categories', 301)->name('sections');
|
|
Route::redirect('/browse-categories', '/categories', 301)->name('browse.categories');
|
|
|
|
// Legacy category URL pattern: /category/group/slug/id
|
|
Route::get('/category/{group}/{slug?}/{id?}', [BrowseGalleryController::class, 'legacyCategory'])
|
|
->name('legacy.category');
|
|
|
|
// ── BROWSE / FEATURED / DAILY ─────────────────────────────────────────────────
|
|
//Route::get('/browse', [BrowseGalleryController::class, 'browse'])->name('legacy.browse');
|
|
Route::get('/browse', fn () => redirect('/explore', 301))->name('legacy.browse');
|
|
Route::get('/featured', [FeaturedArtworksController::class, 'index'])->name('legacy.featured');
|
|
Route::get('/featured-artworks',[FeaturedArtworksController::class, 'index'])->name('legacy.featured_artworks');
|
|
Route::get('/daily-uploads', [DailyUploadsController::class, 'index'])->name('legacy.daily_uploads');
|
|
|
|
// ── CHAT ──────────────────────────────────────────────────────────────────────
|
|
Route::get('/chat', fn () => redirect()->route('community.chat', [], 301))->name('legacy.chat');
|
|
Route::post('/chat_post', [ChatController::class, 'post'])->name('legacy.chat.post');
|
|
|
|
// ── UPLOADS / COMMENTS / DOWNLOADS (SEO alias pages) ─────────────────────────
|
|
Route::get('/uploads/latest', [LatestController::class, 'index'])->name('uploads.latest');
|
|
Route::get('/uploads/daily', [DailyUploadsController::class, 'index'])->name('uploads.daily');
|
|
Route::get('/members/photos', [MembersController::class, 'photos'])->name('members.photos');
|
|
Route::get('/authors/top', [TopAuthorsController::class, 'index'])->name('authors.top');
|
|
Route::get('/comments/latest', function () {
|
|
return redirect()->route('community.activity', request()->query(), 301);
|
|
})->name('comments.latest');
|
|
Route::get('/comments/monthly', [MonthlyCommentatorsController::class, 'index'])->name('comments.monthly');
|
|
Route::get('/downloads/today', [TodayDownloadsController::class, 'index'])->name('downloads.today');
|
|
|
|
Route::get('/latest', [LatestController::class, 'index'])->name('legacy.latest');
|
|
Route::get('/latest-comments', function () {
|
|
return redirect()->route('community.activity', request()->query(), 301);
|
|
})->name('legacy.latest_comments');
|
|
Route::get('/today-in-history', [TodayInHistoryController::class, 'index'])->name('legacy.today_in_history');
|
|
Route::get('/today-downloads', [TodayDownloadsController::class, 'index'])->name('legacy.today_downloads');
|
|
Route::get('/monthly-commentators', [MonthlyCommentatorsController::class, 'index'])->name('legacy.monthly_commentators');
|
|
Route::get('/members', [MembersController::class, 'index'])->name('legacy.members');
|
|
Route::get('/top-favourites', [TopFavouritesController::class, 'index'])->name('legacy.top_favourites');
|
|
|
|
// ── REDIRECTS: top-authors, interviews, apply, bug-report ────────────────────
|
|
Route::get('/top-authors', fn () => redirect('/creators/top', 301))->name('legacy.top_authors');
|
|
Route::get('/interviews', fn () => redirect('/stories', 301))->name('legacy.interviews');
|
|
Route::get('/apply', fn () => redirect('/contact', 301))->name('legacy.apply.redirect');
|
|
Route::match(['get','post'], '/bug-report', fn () => redirect('/contact', 301))->name('bug-report.redirect');
|
|
|
|
// ── BUDDIES / MYBUDDIES ───────────────────────────────────────────────────────
|
|
Route::middleware('auth')->get('/mybuddies.php', [\App\Http\Controllers\User\MyBuddiesController::class, 'index'])->name('legacy.mybuddies.php');
|
|
Route::middleware('auth')->get('/mybuddies', [\App\Http\Controllers\User\MyBuddiesController::class, 'index'])->name('legacy.mybuddies');
|
|
Route::middleware('auth')->delete('/mybuddies/{id}', [\App\Http\Controllers\User\MyBuddiesController::class, 'destroy'])->name('legacy.mybuddies.delete');
|
|
|
|
Route::middleware('auth')->get('/buddies.php', [\App\Http\Controllers\User\BuddiesController::class, 'index'])->name('legacy.buddies.php');
|
|
Route::middleware('auth')->get('/buddies', [\App\Http\Controllers\User\BuddiesController::class, 'index'])->name('legacy.buddies');
|
|
|
|
// ── FAVOURITES / GALLERY ──────────────────────────────────────────────────────
|
|
Route::get('/favourites/{id?}/{username?}', [FavouritesController::class, 'index'])->name('legacy.favourites');
|
|
Route::post('/favourites/{userId}/delete/{artworkId}', [FavouritesController::class, 'destroy'])->name('legacy.favourites.delete');
|
|
|
|
Route::middleware('ensure.onboarding.complete')
|
|
->get('/gallery/{id}/{username?}', [GalleryController::class, 'show'])
|
|
->name('legacy.gallery'); // We need to fix to a new gallery
|
|
|
|
// ── PROFILE (legacy URL patterns) ────────────────────────────────────────────
|
|
Route::get('/user/{username}', [ProfileController::class, 'legacyByUsername'])
|
|
->where('username', '[A-Za-z0-9_-]{3,20}')
|
|
->name('legacy.user.profile');
|
|
|
|
Route::get('/profile/{id}/{username?}', [ProfileController::class, 'legacyById'])
|
|
->where('id', '\d+')
|
|
->name('legacy.profile.id');
|
|
|
|
Route::get('/profile/{username}', [ProfileController::class, 'legacyByUsername'])
|
|
->where('username', '[A-Za-z0-9_-]{3,20}')
|
|
->name('legacy.profile');
|
|
|
|
// Keep legacy `/user` as a permanent redirect to the canonical dashboard path.
|
|
Route::middleware(['auth'])->match(['get','post'], '/user', function () {
|
|
return redirect()->route('dashboard.profile', [], 301);
|
|
})->name('legacy.user.redirect');
|
|
|
|
// ── COMMENTS / STATISTICS ─────────────────────────────────────────────────────
|
|
Route::middleware('auth')->get('/recieved-comments', [ReceivedCommentsController::class, 'index'])->name('legacy.received_comments');
|
|
|
|
Route::middleware(['auth'])->group(function () {
|
|
Route::get('/statistics', [StatisticsController::class, 'index'])->name('legacy.statistics');
|
|
});
|
|
|
|
// ── MANAGE (old artwork management pages) ─────────────────────────────────────
|
|
/*
|
|
Route::middleware(['auth'])->group(function () {
|
|
Route::get('/manage', [ManageController::class, 'index'])->name('manage');
|
|
Route::get('/manage/edit/{id}', [ManageController::class, 'edit'])->name('manage.edit');
|
|
Route::post('/manage/update/{id}', [ManageController::class, 'update'])->name('manage.update');
|
|
Route::post('/manage/delete/{id}', [ManageController::class, 'destroy'])->name('manage.destroy');
|
|
});
|
|
*/
|
|
|
|
// ── LEGACY FORUM REDIRECT (/forum.php?topic=X) ───────────────────────────────
|
|
/*
|
|
Route::middleware('ensure.onboarding.complete')
|
|
->get('/forum.php', function (\Illuminate\Http\Request $request) {
|
|
$threadId = (int) ($request->query('topic') ?? $request->query('tid') ?? 0);
|
|
if ($threadId < 1) {
|
|
return redirect()->route('forum.index', [], 301);
|
|
}
|
|
|
|
$thread = \App\Models\ForumThread::query()->find($threadId);
|
|
$slug = $thread?->slug ?: ('thread-' . $threadId);
|
|
|
|
return redirect()->route('forum.thread.show', ['thread' => $threadId, 'slug' => $slug], 301);
|
|
})->name('forum.legacy.redirect');
|
|
*/
|
|
// ── LEGACY RSS (.xml feeds — old site compatibility) ──────────────────────────
|
|
Route::get('/rss/latest-uploads.xml', [RssFeedController::class, 'latestUploads'])->name('rss.uploads');
|
|
Route::get('/rss/latest-skins.xml', [RssFeedController::class, 'latestSkins'])->name('rss.skins');
|
|
Route::get('/rss/latest-wallpapers.xml', [RssFeedController::class, 'latestWallpapers'])->name('rss.wallpapers');
|
|
Route::get('/rss/latest-photos.xml', [RssFeedController::class, 'latestPhotos'])->name('rss.photos');
|