Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
032ffeb9da |
@@ -30,6 +30,6 @@ Szkielet komponentu Joomla 6 do gromadzenia pytań testowych.
|
|||||||
|
|
||||||
## Instalacja
|
## Instalacja
|
||||||
|
|
||||||
W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.43.25).
|
W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.43.26).
|
||||||
|
|
||||||
Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**.
|
Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**.
|
||||||
|
|||||||
@@ -139,6 +139,8 @@ COM_TESTQUESTIONS_RESULTS_TEST_NAME="Nazwa testu"
|
|||||||
COM_TESTQUESTIONS_RESULTS_ALL_TESTS="Wszystkie zestawy"
|
COM_TESTQUESTIONS_RESULTS_ALL_TESTS="Wszystkie zestawy"
|
||||||
COM_TESTQUESTIONS_RESULTS_DATE_FROM="Data od"
|
COM_TESTQUESTIONS_RESULTS_DATE_FROM="Data od"
|
||||||
COM_TESTQUESTIONS_RESULTS_DATE_TO="Data do"
|
COM_TESTQUESTIONS_RESULTS_DATE_TO="Data do"
|
||||||
|
COM_TESTQUESTIONS_RESULTS_DELETED="Usunięto %s zapisanych testów."
|
||||||
|
COM_TESTQUESTIONS_RESULTS_DELETE_NONE="Zaznacz testy, które chcesz usunąć."
|
||||||
COM_TESTQUESTIONS_YOUR_ANSWER="Twoja odpowiedź"
|
COM_TESTQUESTIONS_YOUR_ANSWER="Twoja odpowiedź"
|
||||||
COM_TESTQUESTIONS_SELECTED_ANSWER="Zaznaczona odpowiedź"
|
COM_TESTQUESTIONS_SELECTED_ANSWER="Zaznaczona odpowiedź"
|
||||||
COM_TESTQUESTIONS_ANSWER_CORRECT="Poprawna odpowiedź"
|
COM_TESTQUESTIONS_ANSWER_CORRECT="Poprawna odpowiedź"
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
-- Wydanie 1.43.26: dodano zbiorcze usuwanie zapisanych testów.
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Komponent\Component\Testquestions\Administrator\Controller;
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
use Joomla\CMS\Factory;
|
||||||
|
use Joomla\CMS\Language\Text;
|
||||||
|
use Joomla\CMS\MVC\Controller\AdminController;
|
||||||
|
use Joomla\CMS\Router\Route;
|
||||||
|
use Joomla\CMS\Session\Session;
|
||||||
|
|
||||||
|
class ResultsController extends AdminController
|
||||||
|
{
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
if (!Session::checkToken()) {
|
||||||
|
throw new \RuntimeException(Text::_('JINVALID_TOKEN'), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = Factory::getApplication()->getIdentity();
|
||||||
|
if (!$user->authorise('core.delete', 'com_testquestions')) {
|
||||||
|
throw new \RuntimeException(Text::_('JERROR_ALERTNOAUTHOR'), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ids = array_values(array_unique(array_filter(array_map(
|
||||||
|
'intval',
|
||||||
|
(array) $this->input->post->get('cid', [], 'array')
|
||||||
|
), static function ($id) {
|
||||||
|
return $id > 0;
|
||||||
|
})));
|
||||||
|
|
||||||
|
if (!$ids) {
|
||||||
|
$this->setRedirect(
|
||||||
|
Route::_('index.php?option=com_testquestions&view=results', false),
|
||||||
|
Text::_('COM_TESTQUESTIONS_RESULTS_DELETE_NONE'),
|
||||||
|
'warning'
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||||
|
$db->setQuery(
|
||||||
|
$db->getQuery(true)
|
||||||
|
->delete($db->quoteName('#__testquestions_results'))
|
||||||
|
->where($db->quoteName('id') . ' IN (' . implode(',', $ids) . ')')
|
||||||
|
)->execute();
|
||||||
|
|
||||||
|
$this->setRedirect(
|
||||||
|
Route::_('index.php?option=com_testquestions&view=results', false),
|
||||||
|
Text::sprintf('COM_TESTQUESTIONS_RESULTS_DELETED', $db->getAffectedRows())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ use Joomla\CMS\HTML\HTMLHelper;
|
|||||||
use Joomla\CMS\Language\Text;
|
use Joomla\CMS\Language\Text;
|
||||||
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
||||||
use Joomla\CMS\Toolbar\ToolbarHelper;
|
use Joomla\CMS\Toolbar\ToolbarHelper;
|
||||||
|
use Joomla\CMS\Factory;
|
||||||
|
|
||||||
class HtmlView extends BaseHtmlView
|
class HtmlView extends BaseHtmlView
|
||||||
{
|
{
|
||||||
@@ -25,6 +26,9 @@ class HtmlView extends BaseHtmlView
|
|||||||
$this->sets = $this->get('Sets');
|
$this->sets = $this->get('Sets');
|
||||||
$this->aiUsageTotals = $this->get('AiUsageTotals');
|
$this->aiUsageTotals = $this->get('AiUsageTotals');
|
||||||
ToolbarHelper::title(Text::_('COM_TESTQUESTIONS_RESULTS'));
|
ToolbarHelper::title(Text::_('COM_TESTQUESTIONS_RESULTS'));
|
||||||
|
if (Factory::getApplication()->getIdentity()->authorise('core.delete', 'com_testquestions')) {
|
||||||
|
ToolbarHelper::deleteList('', 'results.delete', 'JTOOLBAR_DELETE');
|
||||||
|
}
|
||||||
ToolbarHelper::link('index.php?option=com_testquestions&view=sets', 'COM_TESTQUESTIONS_SETS', 'back');
|
ToolbarHelper::link('index.php?option=com_testquestions&view=sets', 'COM_TESTQUESTIONS_SETS', 'back');
|
||||||
|
|
||||||
return parent::display($tpl);
|
return parent::display($tpl);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ defined('_JEXEC') or die;
|
|||||||
|
|
||||||
use Joomla\CMS\HTML\HTMLHelper;
|
use Joomla\CMS\HTML\HTMLHelper;
|
||||||
use Joomla\CMS\Router\Route;
|
use Joomla\CMS\Router\Route;
|
||||||
|
HTMLHelper::_('behavior.multiselect');
|
||||||
?>
|
?>
|
||||||
<form action="<?php echo Route::_('index.php?option=com_testquestions&view=results'); ?>" method="post" name="adminForm" id="adminForm">
|
<form action="<?php echo Route::_('index.php?option=com_testquestions&view=results'); ?>" method="post" name="adminForm" id="adminForm">
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
@@ -53,6 +54,7 @@ use Joomla\CMS\Router\Route;
|
|||||||
</div>
|
</div>
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead><tr>
|
<thead><tr>
|
||||||
|
<th class="w-1"><?php echo HTMLHelper::_('grid.checkall'); ?></th>
|
||||||
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_PARTICIPANT'); ?></th>
|
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_PARTICIPANT'); ?></th>
|
||||||
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SET_TITLE'); ?></th>
|
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SET_TITLE'); ?></th>
|
||||||
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_POINTS_BEFORE_AFTER'); ?></th>
|
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_POINTS_BEFORE_AFTER'); ?></th>
|
||||||
@@ -62,8 +64,9 @@ use Joomla\CMS\Router\Route;
|
|||||||
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_AI_TOKENS'); ?></th>
|
<th><?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_RESULT_AI_TOKENS'); ?></th>
|
||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach ($this->items as $item) : ?>
|
<?php foreach ($this->items as $i => $item) : ?>
|
||||||
<tr class="<?php echo (int) $item->extra_time > 0 ? 'table-warning' : ''; ?>">
|
<tr class="<?php echo (int) $item->extra_time > 0 ? 'table-warning' : ''; ?>">
|
||||||
|
<td><?php echo HTMLHelper::_('grid.id', $i, $item->id); ?></td>
|
||||||
<th><a href="<?php echo Route::_('index.php?option=com_testquestions&view=result&id=' . (int) $item->id); ?>"><?php echo $this->escape($item->participant_name); ?></a></th>
|
<th><a href="<?php echo Route::_('index.php?option=com_testquestions&view=result&id=' . (int) $item->id); ?>"><?php echo $this->escape($item->participant_name); ?></a></th>
|
||||||
<td><?php echo $this->escape(($item->subject_title ? $item->subject_title . ' — ' : '') . $item->set_title); ?></td>
|
<td><?php echo $this->escape(($item->subject_title ? $item->subject_title . ' — ' : '') . $item->set_title); ?></td>
|
||||||
<?php $pointsTotal = (int) $item->points_total ?: (int) $item->total_count; ?>
|
<?php $pointsTotal = (int) $item->points_total ?: (int) $item->total_count; ?>
|
||||||
@@ -96,6 +99,7 @@ use Joomla\CMS\Router\Route;
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<?php echo $this->pagination->getListFooter(); ?>
|
<?php echo $this->pagination->getListFooter(); ?>
|
||||||
|
<input type="hidden" name="boxchecked" value="0">
|
||||||
<input type="hidden" name="task" value="">
|
<input type="hidden" name="task" value="">
|
||||||
<?php echo HTMLHelper::_('form.token'); ?>
|
<?php echo HTMLHelper::_('form.token'); ?>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<creationDate>2026-10-14</creationDate>
|
<creationDate>2026-10-14</creationDate>
|
||||||
<author>Komponent</author>
|
<author>Komponent</author>
|
||||||
<license>GNU General Public License version 2 or later</license>
|
<license>GNU General Public License version 2 or later</license>
|
||||||
<version>1.43.25</version>
|
<version>1.43.26</version>
|
||||||
<description>COM_TESTQUESTIONS_DESCRIPTION</description>
|
<description>COM_TESTQUESTIONS_DESCRIPTION</description>
|
||||||
<element>com_testquestions</element>
|
<element>com_testquestions</element>
|
||||||
<namespace path="src">Komponent\Component\Testquestions</namespace>
|
<namespace path="src">Komponent\Component\Testquestions</namespace>
|
||||||
|
|||||||
Reference in New Issue
Block a user