Files
System-testowy/components/com_testquestions/tmpl/questions/default.php
T
2026-10-15 12:48:46 +02:00

86 lines
6.2 KiB
PHP

<?php
defined('_JEXEC') or die;
use Joomla\CMS\HTML\HTMLHelper;
?>
<div class="com-testquestions egzamin">
<h1><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS'); ?></h1>
<form action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8'); ?>" method="get" class="mb-4">
<label for="test-symbol" class="form-label"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_TEST_SYMBOL'); ?></label>
<div class="input-group">
<select id="test-symbol" name="test_symbol" class="form-select egzamin" required>
<option value=""><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SELECT_TEST_SYMBOL'); ?></option>
<?php foreach ($this->symbols as $symbol) : ?>
<option value="<?php echo htmlspecialchars($symbol->test_symbol, ENT_QUOTES, 'UTF-8'); ?>" <?php echo $this->symbol === $symbol->test_symbol ? 'selected' : ''; ?>><?php echo htmlspecialchars($this->formatSheetLabel($symbol), ENT_QUOTES, 'UTF-8'); ?></option>
<?php endforeach; ?>
</select>
<input type="submit" class="egzamin" value="<?php echo htmlspecialchars(\Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SHOW_TEST'), ENT_QUOTES, 'UTF-8'); ?>">
</div>
</form>
<?php if ($this->symbol !== '' && !$this->items) : ?>
<div class="alert alert-info"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SELECT_TEST_SYMBOL'); ?></div>
<?php elseif ($this->symbol !== '') : ?>
<h2><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_TEST_SHEET'); ?>: <?php echo htmlspecialchars($this->symbol, ENT_QUOTES, 'UTF-8'); ?></h2>
<?php if ($this->results) : ?>
<div class="alert alert-success test-result">
<strong><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT'); ?>:</strong>
<?php echo (int) $this->results['correct']; ?> / <?php echo (int) $this->results['total']; ?>
(<?php echo htmlspecialchars((string) $this->results['percentage'], ENT_QUOTES, 'UTF-8'); ?>%)
</div>
<?php endif; ?>
<?php endif; ?>
<?php if ($this->items) : ?>
<form action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8'); ?>" method="post">
<?php foreach ($this->items as $number => $item) : ?>
<article class="testquestion mb-4">
<div class="pyt"><h2><?php echo ($number + 1) . '. '; ?><?php echo $item->question; ?></h2></div>
<?php if ($item->image) : ?>
<div class="foto_pyt"><img src="<?php echo htmlspecialchars($item->image, ENT_QUOTES, 'UTF-8'); ?>" alt="" loading="lazy"></div>
<?php endif; ?>
<?php if ($item->question_type === 'open') : ?>
<div class="<?php echo $this->results ? ($this->results['items'][$item->id]['correct'] ? 'odpup' : 'odpu') : 'odp'; ?>">
<label for="answer-<?php echo (int) $number; ?>"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_ENTER_ANSWER'); ?></label>
<input type="text" id="answer-<?php echo (int) $number; ?>" name="answers[<?php echo (int) $item->id; ?>]" class="form-control" value="<?php echo $this->results ? htmlspecialchars($this->results['items'][$item->id]['selected'], ENT_QUOTES, 'UTF-8') : ''; ?>">
</div>
<?php else : ?>
<ol type="A" class="answer-list">
<?php foreach (['answer_a', 'answer_b', 'answer_c', 'answer_d'] as $answerIndex => $answerField) : ?>
<?php $isSelected = $this->results && $this->results['items'][$item->id]['selected'] === (string) ($answerIndex + 1); ?>
<?php $isCorrectAnswer = $this->results && (string) $item->correct_answer === (string) ($answerIndex + 1); ?>
<li class="<?php echo $isSelected && $this->results['items'][$item->id]['correct'] ? 'odpup' : ($isSelected ? 'odpu' : ($isCorrectAnswer ? 'odpp' : 'odp')); ?>">
<label>
<input type="radio" name="answers[<?php echo (int) $item->id; ?>]" value="<?php echo $answerIndex + 1; ?>" <?php echo $isSelected ? 'checked' : ''; ?>>
<strong><?php echo chr(65 + $answerIndex); ?>.</strong> <?php echo $item->$answerField; ?>
<?php if ($isSelected) : ?>
<span class="badge bg-info"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SELECTED_ANSWER'); ?></span>
<?php endif; ?>
<?php if ($isCorrectAnswer) : ?>
<span class="badge bg-success"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_CORRECT_ANSWER'); ?></span>
<?php endif; ?>
</label>
</li>
<?php endforeach; ?>
</ol>
<?php endif; ?>
<?php if ($this->results) : ?>
<div class="mt-2 <?php echo $this->results['items'][$item->id]['correct'] ? 'text-success' : 'text-danger'; ?>">
<?php echo $this->results['items'][$item->id]['correct'] ? '✓ ' . \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_ANSWER_CORRECT') : '✗ ' . \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_ANSWER_INCORRECT'); ?>
<?php if ($item->question_type === 'closed') : ?>
— <?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_CORRECT_ANSWER'); ?>: <?php echo chr(64 + (int) $item->correct_answer); ?>
<?php else : ?>
— <?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_CORRECT_PATTERN'); ?>: <?php echo htmlspecialchars($item->answer_open, ENT_QUOTES, 'UTF-8'); ?>
<?php endif; ?>
</div>
<?php endif; ?>
</article>
<?php endforeach; ?>
<input type="hidden" name="task" value="check">
<?php echo \Joomla\CMS\HTML\HTMLHelper::_('form.token'); ?>
<input type="submit" class="egzamin" value="<?php echo htmlspecialchars(\Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_FINISH_TEST'), ENT_QUOTES, 'UTF-8'); ?>">
</form>
<?php endif; ?>
</div>