Files
ABSDEV/Modules/Content/Routes/web.php
T
Mark Gregory bfac7f555a Visual header, body, and footer composition screen.
* Drag-and-drop section ordering with automatic saving.
* Add existing reusable documents to regions.
* Remove placements without deleting documents.
* Create independent page-specific copies.
* Shared-document usage warnings.
* Document creation, duplication, deletion protection and filtering.
* Draft and published document states.
* Document and placement scheduling.
* Authenticated homepage preview.
* Draft sections displayed in preview with a clear draft marker.
* Content Composer added to the administration sidebar.
* Public rendering now respects:
    * Publication status
    * Future publication dates
    * Expiry dates
    * Placement start and end dates
    * Enabled state
* Original Saasland homepage remains as the fallback when no composition exists.
2026-07-27 08:28:52 +01:00

24 lines
1.8 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Modules\Content\Http\Controllers\ContentDocumentController;
use Modules\Content\Http\Controllers\PageCompositionController;
Route::middleware(['web', 'auth', 'verified'])->prefix('admin/content')->name('content.')->group(function (): void {
Route::get('/', [ContentDocumentController::class, 'index'])->name('index');
Route::get('/documents/create', [ContentDocumentController::class, 'create'])->name('documents.create');
Route::post('/documents', [ContentDocumentController::class, 'store'])->name('documents.store');
Route::get('/documents/{document}/edit', [ContentDocumentController::class, 'edit'])->name('documents.edit');
Route::put('/documents/{document}', [ContentDocumentController::class, 'update'])->name('documents.update');
Route::post('/documents/{document}/duplicate', [ContentDocumentController::class, 'duplicate'])->name('documents.duplicate');
Route::delete('/documents/{document}', [ContentDocumentController::class, 'destroy'])->name('documents.destroy');
Route::get('/pages/{pageKey}', [PageCompositionController::class, 'edit'])->name('pages.edit');
Route::get('/pages/{pageKey}/preview', [PageCompositionController::class, 'preview'])->name('pages.preview');
Route::post('/pages/{pageKey}/placements', [PageCompositionController::class, 'store'])->name('placements.store');
Route::put('/placements/{placement}', [PageCompositionController::class, 'update'])->name('placements.update');
Route::delete('/placements/{placement}', [PageCompositionController::class, 'destroy'])->name('placements.destroy');
Route::post('/placements/{placement}/duplicate', [PageCompositionController::class, 'duplicate'])->name('placements.duplicate');
Route::post('/pages/{pageKey}/reorder', [PageCompositionController::class, 'reorder'])->name('placements.reorder');
});