PHP Classes

File: templates/Competitors/view.php

Recommend this page to a friend!
  Packages of Andraž   BB   templates/Competitors/view.php   Download  
File: templates/Competitors/view.php
Role: Example script
Content type: text/plain
Description: Example script
Class: BB
Badminton tournament management application
Author: By
Last change:
Date: 15 days ago
Size: 9,442 bytes
 

Contents

Class file image Download
<?php

/**
 * @var \App\View\AppView $this
 * @var \App\Model\Entity\Competitor $competitor
 */
$this->assign('title', __('Tekmovalec') . ' ? ' . $competitor->name);
?>

<div class="bt-page">
    <div class="bt-header">
        <div>
            <h1 class="bt-header-title">
                <?= __('Tekmovalec') ?>: <?= h($competitor->name) ?>
</h1>
            <p class="bt-header-subtitle">
                <?= __('Dogodek') ?>:
                <?php if (!empty($competitor->tournament_event)): ?>
<?= h($competitor->tournament_event->name) ?>
<?php else: ?>
<span class="text-slate-400"><?= __('neznan dogodek') ?></span>
                <?php endif; ?>
</p>
        </div>
        <div class="bt-actions">
            <?= $this->Html->link(__('Dogodek'), [
               
'controller' => 'TournamentEvents',
               
'action' => 'view',
               
$competitor->tournament_event_id,
            ], [
'class' => 'bt-button-secondary']) ?>
<?= $this->Html->link(
               
__('Dodaj igralca'),
                [
'controller' => 'CompetitorPlayers', 'action' => 'add', $competitor->id],
                [
'class' => 'bt-button-secondary']
            )
?>
<?= $this->Html->link(__('Uredi'), ['action' => 'edit', $competitor->id], [
               
'class' => 'bt-button',
            ])
?>
<?= $this->Form->postLink(__('Izbri?i'), ['action' => 'delete', $competitor->id], [
               
'confirm' => __('Res ?eli? izbrisati ta dogodek?'),
               
'class' => 'bt-button-secondary text-rose-700 border-rose-300 hover:bg-rose-50',
            ])
?>
</div>
    </div>

    <div class="grid grid-cols-1 lg:grid-cols-3 gap-4">
        <!-- Info kartica -->
        <div class="lg:col-span-1">
            <div class="bt-card">
                <div class="px-4 py-3 border-b border-border-soft bg-slate-50">
                    <div class="text-xs font-semibold uppercase text-slate-500">
                        <?= __('Osnovni podatki') ?>
</div>
                </div>
                <div class="px-4 py-4 text-sm space-y-2">
                    <div class="flex justify-between">
                        <span class="text-slate-500 text-xs"><?= __('ID') ?></span>
                        <span class="text-slate-800"><?= $this->Number->format($competitor->id) ?></span>
                    </div>

                    <div>
                        <div class="text-xs text-slate-500 mb-0.5"><?= __('Ime para / ekipe') ?></div>
                        <div class="font-medium text-slate-800">
                            <?= h($competitor->name) ?>
</div>
                    </div>

                    <div class="flex justify-between items-center">
                        <span class="text-xs text-slate-500"><?= __('Tip') ?></span>
                        <span class="text-xs text-slate-700">
                            <?= $competitor->is_team ? __('Dvojica / ekipa') : __('Posameznik') ?>
</span>
                    </div>

                    <div class="flex justify-between items-center">
                        <span class="text-xs text-slate-500"><?= __('Seed') ?></span>
                        <span class="text-xs text-slate-800">
                            <?= $competitor->seed !== null ? $this->Number->format($competitor->seed) : '?' ?>
</span>
                    </div>

                    <div class="flex justify-between items-center">
                        <span class="text-xs text-slate-500"><?= __('Zmage') ?></span>
                        <span class="inline-flex items-center px-2 py-0.5 rounded-full bg-emerald-50 text-emerald-700 text-xs font-semibold">
                            <?= (int)$competitor->wins ?>
</span>
                    </div>

                    <div class="flex justify-between items-center">
                        <span class="text-xs text-slate-500"><?= __('Porazi') ?></span>
                        <span class="inline-flex items-center px-2 py-0.5 rounded-full bg-rose-50 text-rose-700 text-xs font-semibold">
                            <?= (int)$competitor->losses ?>
</span>
                    </div>

                    <div class="border-t border-dashed border-border-soft pt-3 mt-2 text-[11px] text-slate-400">
                        <?= __('Ustvarjen') ?>: <?= $competitor->created ? $competitor->created->format('d.m.Y H:i') : '?' ?><br>
                        <?= __('Spremenjen') ?>: <?= $competitor->modified ? $competitor->modified->format('d.m.Y H:i') : '?' ?>
</div>
                </div>
            </div>
        </div>

        <!-- Igralci v paru -->
        <div class="lg:col-span-2 space-y-4">
            <div class="bt-card">
                <div class="px-4 py-3 border-b border-border-soft bg-slate-50 flex justify-between items-center">
                    <div class="text-xs font-semibold uppercase text-slate-500">
                        <?= __('Igralci v paru / ekipi') ?>
</div>
                </div>
                <div class="px-4 py-3">
                    <?php if (empty($competitor->competitor_players)): ?>
<div class="text-xs text-slate-400">
                            <?= __('Ni dodeljenih igralcev.') ?>
</div>
                    <?php else: ?>
<table class="bt-table">
                            <thead>
                                <tr>
                                    <th><?= __('Pozicija') ?></th>
                                    <th><?= __('Igralec') ?></th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($competitor->competitor_players as $cp): ?>
<tr>
                                        <td><?= (int)$cp->position ?></td>
                                        <td>
                                            <?php if (!empty($cp->player)): ?>
<?= h($cp->player->first_name . ' ' . $cp->player->last_name) ?>
<?php else: ?>
<span class="text-xs text-slate-400"><?= __('neznan') ?></span>
                                            <?php endif; ?>
</td>
                                    </tr>
                                <?php endforeach; ?>
</tbody>
                        </table>
                    <?php endif; ?>
</div>
            </div>

            <!-- (opcijsko) Tekme tega tekmovalca -->
            <?php if (!empty($competitor->tournament_matches)): ?>
<div class="bt-card">
                    <div class="px-4 py-3 border-b border-border-soft bg-slate-50 flex justify-between items-center">
                        <div class="text-xs font-semibold uppercase text-slate-500">
                            <?= __('Tekme tega tekmovalca') ?>
</div>
                    </div>
                    <div class="px-4 py-3">
                        <table class="bt-table">
                            <thead>
                                <tr>
                                    <th><?= __('ID') ?></th>
                                    <th><?= __('Nasprotnik') ?></th>
                                    <th><?= __('Rezultat') ?></th>
                                    <th><?= __('Status') ?></th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($competitor->tournament_matches as $m): ?>
<?php
                                    $isC1
= $m->competitor1_id === $competitor->id;
                                   
$opponent = $isC1 ? $m->competitor2 : $m->competitor1;
                                   
?>
<tr>
                                        <td>#<?= $m->id ?></td>
                                        <td><?= h($opponent->name ?? __('TBD')) ?></td>
                                        <td>
                                            <?php if ($m->status === 'finished'): ?>
<?= (int)$m->current_score1 ?> : <?= (int)$m->current_score2 ?>
<?php else: ?>
<span class="text-xs text-slate-400"><?= h($m->status) ?></span>
                                            <?php endif; ?>
</td>
                                        <td>
                                            <span class="text-xs text-slate-600"><?= h($m->status) ?></span>
                                        </td>
                                    </tr>
                                <?php endforeach; ?>
</tbody>
                        </table>
                    </div>
                </div>
            <?php endif; ?>
</div>
    </div>
</div>