Show images in saved test details
This commit is contained in:
@@ -0,0 +1 @@
|
||||
-- Wydanie 1.43.21: naprawiono wyświetlanie obrazów w szczegółach rozwiązanego testu.
|
||||
@@ -17,7 +17,7 @@ class ResultModel extends BaseDatabaseModel
|
||||
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||
$item = $db->setQuery(
|
||||
$db->getQuery(true)
|
||||
->select(['r.*', 's.title AS set_title', 'sub.title AS subject_title'])
|
||||
->select(['r.*', 's.title AS set_title', 's.image AS set_image', 'sub.title AS subject_title'])
|
||||
->from($db->quoteName('#__testquestions_results', 'r'))
|
||||
->leftJoin($db->quoteName('#__testquestions_sets', 's') . ' ON s.id = r.set_id')
|
||||
->leftJoin($db->quoteName('#__testquestions_subjects', 'sub') . ' ON sub.id = s.subject_id')
|
||||
@@ -35,7 +35,7 @@ class ResultModel extends BaseDatabaseModel
|
||||
if ($ids) {
|
||||
$item->questions = $db->setQuery(
|
||||
$db->getQuery(true)
|
||||
->select(['id', 'question_type', 'question', 'answer_a', 'answer_b', 'answer_c', 'answer_d', 'answer_open', 'correct_answer', 'points'])
|
||||
->select(['id', 'question_type', 'question', 'answer_a', 'answer_b', 'answer_c', 'answer_d', 'answer_open', 'correct_answer', 'points', 'image'])
|
||||
->from($db->quoteName('#__testquestions_questions'))
|
||||
->where('id IN (' . implode(',', $ids) . ')')
|
||||
)->loadObjectList('id');
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
<?php defined('_JEXEC') or die; ?>
|
||||
<?php use Joomla\CMS\HTML\HTMLHelper; ?>
|
||||
<?php use Joomla\CMS\Router\Route; ?>
|
||||
<?php use Joomla\CMS\Uri\Uri; ?>
|
||||
<?php
|
||||
$resolveImageUrl = static function ($path) {
|
||||
$path = trim((string) $path);
|
||||
|
||||
if ($path === '' || preg_match('#^(https?:)?//#i', $path)) {
|
||||
return $path;
|
||||
}
|
||||
|
||||
return Uri::root() . ltrim($path, '/');
|
||||
};
|
||||
?>
|
||||
<div class="container-fluid">
|
||||
<dl class="row">
|
||||
<div class="row"<?php echo (int) $this->item->extra_time > 0 ? ' style="background-color: #fff3cd;"' : ''; ?>>
|
||||
@@ -9,6 +21,7 @@
|
||||
</div>
|
||||
<dt class="col-sm-3"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SET_TITLE'); ?></dt>
|
||||
<dd class="col-sm-9"><?php echo $this->escape(($this->item->subject_title ? $this->item->subject_title . ' — ' : '') . $this->item->set_title); ?></dd>
|
||||
<?php if (!empty($this->item->set_image)) : ?><dt class="col-sm-3"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SET_IMAGE'); ?></dt><dd class="col-sm-9"><img src="<?php echo htmlspecialchars($resolveImageUrl($this->item->set_image), ENT_QUOTES, 'UTF-8'); ?>" alt="" loading="lazy" style="max-width: 100%; height: auto;"></dd><?php endif; ?>
|
||||
<dt class="col-sm-3"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_SCORE'); ?></dt>
|
||||
<dd class="col-sm-9"><?php echo (int) $this->item->correct_count; ?> / <?php echo (int) $this->item->total_count; ?> (<?php echo htmlspecialchars((string) $this->item->percentage, ENT_QUOTES, 'UTF-8'); ?>%)</dd>
|
||||
<dt class="col-sm-3"><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_POINTS_BEFORE_AFTER'); ?></dt>
|
||||
@@ -61,6 +74,7 @@
|
||||
<?php $question = $this->item->questions[(int) $questionId] ?? null; if (!$question) continue; ?>
|
||||
<article class="mb-4 border rounded p-3">
|
||||
<div class="mb-2"><?php echo $question->question; ?></div>
|
||||
<?php if (!empty($question->image)) : ?><div class="mb-3"><img src="<?php echo htmlspecialchars($resolveImageUrl($question->image), ENT_QUOTES, 'UTF-8'); ?>" alt="" loading="lazy" style="max-width: 100%; height: auto;"></div><?php endif; ?>
|
||||
<?php if ($question->question_type === 'open') : ?>
|
||||
<div><strong><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_YOUR_ANSWER'); ?>:</strong> <?php echo htmlspecialchars($answer['selected'] ?: '—', ENT_QUOTES, 'UTF-8'); ?></div>
|
||||
<div><strong><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_CORRECT_PATTERN'); ?>:</strong> <?php echo htmlspecialchars($question->answer_open, ENT_QUOTES, 'UTF-8'); ?></div>
|
||||
|
||||
Reference in New Issue
Block a user