Upload via Git Manager GUI
This commit is contained in:
95
template-team.php
Normal file
95
template-team.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
/**
|
||||
* Template Name: BlueSky - Team
|
||||
*/
|
||||
get_header(); bluesky_navbar('team');
|
||||
$server_ip = get_option('bluesky_server_ip','mc.example.com');
|
||||
$header_bg = bluesky_get_image('bluesky_header_bg_url','images/header-background.jpg');
|
||||
?>
|
||||
<section id="page-header" style="background-image:url('<?php echo esc_url($header_bg); ?>')">
|
||||
<div class="content">
|
||||
<p class="minecraft-server-ip"><?php echo esc_html($server_ip); ?></p>
|
||||
<h1 class="title"><span>Team</span></h1>
|
||||
<p class="description">Liste aller Server Team-Mitglieder.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="admin-team">
|
||||
<div class="content at-content">
|
||||
<?php
|
||||
$q = new WP_Query([
|
||||
'post_type' => 'bluesky_team',
|
||||
'posts_per_page' => -1,
|
||||
'post_status' => 'publish',
|
||||
'meta_key' => '_bluesky_sort_order',
|
||||
'orderby' => 'meta_value_num',
|
||||
'order' => 'ASC',
|
||||
]);
|
||||
|
||||
$groups = [];
|
||||
if ($q->have_posts()) {
|
||||
while ($q->have_posts()) {
|
||||
$q->the_post();
|
||||
$id = get_the_ID();
|
||||
$g = get_post_meta($id, '_bluesky_team_group', true) ?: 'Team';
|
||||
$groups[$g][] = [
|
||||
'in_game_name' => get_post_meta($id, '_bluesky_in_game_name', true),
|
||||
'rank' => get_post_meta($id, '_bluesky_rank', true),
|
||||
'rank_color' => get_post_meta($id, '_bluesky_rank_color', true),
|
||||
'skin_url' => get_post_meta($id, '_bluesky_skin_url', true),
|
||||
];
|
||||
}
|
||||
wp_reset_postdata();
|
||||
}
|
||||
|
||||
$skin_type = get_option('bluesky_skin_type', 'bust');
|
||||
// Steve UUID als Fallback-Platzhalter
|
||||
$placeholder = 'https://crafthead.net/bust/ec561538f3fd461daff5086b22154bce/256';
|
||||
|
||||
if (!empty($groups)):
|
||||
foreach ($groups as $gname => $members):
|
||||
?>
|
||||
<div class="group <?php echo esc_attr(sanitize_html_class($gname)); ?>">
|
||||
<h2 class="rank-title"><?php echo esc_html(ucfirst($gname)); ?></h2>
|
||||
<div class="users">
|
||||
<?php foreach ($members as $m):
|
||||
// Wenn eigene URL → direkt nutzen, sonst Platzhalter bis JS lädt
|
||||
$initial_src = !empty($m['skin_url']) ? $m['skin_url'] : $placeholder;
|
||||
$rank_color = !empty($m['rank_color']) ? $m['rank_color'] : 'rgba(57,190,255,0.6)';
|
||||
$rank_label = !empty($m['rank']) ? $m['rank'] : '—';
|
||||
?>
|
||||
<div class="user"
|
||||
data-ingame="<?php echo esc_attr($m['in_game_name']); ?>"
|
||||
data-skin="<?php echo esc_url($m['skin_url']); ?>"
|
||||
data-skintype="<?php echo esc_attr($skin_type); ?>">
|
||||
|
||||
<div class="skin-wrapper">
|
||||
<img src="<?php echo esc_url($initial_src); ?>"
|
||||
alt="<?php echo esc_attr($m['in_game_name']); ?>"
|
||||
class="member-skin"
|
||||
loading="lazy">
|
||||
</div>
|
||||
|
||||
<div class="user-info">
|
||||
<span class="name"><?php echo esc_html($m['in_game_name']); ?></span>
|
||||
<span class="rank" style="background: <?php echo esc_attr($rank_color); ?>">
|
||||
<?php echo esc_html($rank_label); ?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
endforeach;
|
||||
else:
|
||||
?>
|
||||
<p style="color:var(--description-color);text-align:center;padding:60px 0">
|
||||
Noch keine Team-Mitglieder vorhanden.<br>
|
||||
<a href="<?php echo admin_url('post-new.php?post_type=bluesky_team'); ?>" style="color:var(--main-color)">→ Jetzt hinzufügen</a>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php bluesky_footer(); get_footer(); ?>
|
||||
Reference in New Issue
Block a user