Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a788c8c00e |
@@ -30,6 +30,6 @@ Szkielet komponentu Joomla 6 do gromadzenia pytań testowych.
|
||||
|
||||
## Instalacja
|
||||
|
||||
W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.43.11).
|
||||
W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.43.12).
|
||||
|
||||
Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**.
|
||||
|
||||
@@ -46,6 +46,9 @@ COM_TESTQUESTIONS_ERROR_OPEN_PATTERN="Dla pytania otwartego wpisz wzorzec popraw
|
||||
COM_TESTQUESTIONS_ERROR_ALL_ANSWERS="Dla pytania zamkniętego uzupełnij wszystkie cztery odpowiedzi."
|
||||
COM_TESTQUESTIONS_ERROR_META="Wybierz poprawny czas i liczbę punktów."
|
||||
COM_TESTQUESTIONS_SETS="Zestawy pytań"
|
||||
COM_TESTQUESTIONS_SETS_UNPUBLISH_ALL="Wyłącz wszystkie zestawy"
|
||||
COM_TESTQUESTIONS_SETS_UNPUBLISH_ALL_CONFIRM="Czy na pewno wyłączyć wszystkie zestawy testów, w tym wszystkie warianty?"
|
||||
COM_TESTQUESTIONS_SETS_UNPUBLISHED_ALL="Wyłączono %s zestawów."
|
||||
COM_TESTQUESTIONS_NEW_SET="Nowy zestaw pytań"
|
||||
COM_TESTQUESTIONS_EDIT_SET="Edytuj zestaw pytań"
|
||||
COM_TESTQUESTIONS_SET_TITLE="Nazwa zestawu"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
-- No database changes required for version 1.43.12.
|
||||
@@ -5,11 +5,40 @@ namespace Komponent\Component\Testquestions\Administrator\Controller;
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\MVC\Controller\AdminController;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Session\Session;
|
||||
|
||||
class SetsController extends AdminController
|
||||
{
|
||||
protected $text_prefix = 'COM_TESTQUESTIONS';
|
||||
|
||||
public function unpublishall(): void
|
||||
{
|
||||
if (!Session::checkToken()) {
|
||||
throw new \RuntimeException(Text::_('JINVALID_TOKEN'), 403);
|
||||
}
|
||||
|
||||
$user = Factory::getApplication()->getIdentity();
|
||||
if (!$user->authorise('core.edit.state', 'com_testquestions') && !$user->authorise('core.edit', 'com_testquestions')) {
|
||||
throw new \RuntimeException(Text::_('JERROR_ALERTNOAUTHOR'), 403);
|
||||
}
|
||||
|
||||
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||
$db->setQuery(
|
||||
$db->getQuery(true)
|
||||
->update($db->quoteName('#__testquestions_sets'))
|
||||
->set($db->quoteName('published') . ' = 0')
|
||||
->where($db->quoteName('published') . ' = 1')
|
||||
)->execute();
|
||||
|
||||
$this->setRedirect(
|
||||
Route::_('index.php?option=com_testquestions&view=sets', false),
|
||||
Text::sprintf('COM_TESTQUESTIONS_SETS_UNPUBLISHED_ALL', $db->getAffectedRows())
|
||||
);
|
||||
}
|
||||
|
||||
public function getModel($name = 'Set', $prefix = 'Administrator', $config = ['ignore_request' => true])
|
||||
{
|
||||
return parent::getModel($name, $prefix, $config);
|
||||
|
||||
@@ -15,6 +15,7 @@ class HtmlView extends BaseHtmlView
|
||||
protected $pagination;
|
||||
protected $state;
|
||||
protected $subjects;
|
||||
protected $canUnpublishAll = false;
|
||||
|
||||
public function display($tpl = null)
|
||||
{
|
||||
@@ -22,6 +23,8 @@ class HtmlView extends BaseHtmlView
|
||||
$this->pagination = $this->get('Pagination');
|
||||
$this->state = $this->get('State');
|
||||
$this->subjects = $this->get('Subjects');
|
||||
$user = $this->getCurrentUser();
|
||||
$this->canUnpublishAll = $user->authorise('core.edit.state', 'com_testquestions') || $user->authorise('core.edit', 'com_testquestions');
|
||||
|
||||
if (count($errors = $this->get('Errors'))) {
|
||||
throw new \RuntimeException(implode("\n", $errors));
|
||||
|
||||
@@ -30,6 +30,11 @@ HTMLHelper::_('behavior.multiselect');
|
||||
<div class="col-md-3">
|
||||
<button type="submit" class="btn btn-primary"><?php echo \Joomla\CMS\Language\Text::_('JSEARCH_FILTER_SUBMIT'); ?></button>
|
||||
<a href="<?php echo Route::_('index.php?option=com_testquestions&view=sets'); ?>" class="btn btn-secondary"><?php echo \Joomla\CMS\Language\Text::_('JSEARCH_FILTER_CLEAR'); ?></a>
|
||||
<?php if ($this->canUnpublishAll) : ?>
|
||||
<button type="submit" class="btn btn-warning" data-confirm="<?php echo $this->escape(\Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SETS_UNPUBLISH_ALL_CONFIRM')); ?>" onclick="if (!confirm(this.dataset.confirm)) { return false; } this.form.task.value='sets.unpublishall';">
|
||||
<?php echo \Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_SETS_UNPUBLISH_ALL'); ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<creationDate>2026-10-14</creationDate>
|
||||
<author>Komponent</author>
|
||||
<license>GNU General Public License version 2 or later</license>
|
||||
<version>1.43.11</version>
|
||||
<version>1.43.12</version>
|
||||
<description>COM_TESTQUESTIONS_DESCRIPTION</description>
|
||||
<element>com_testquestions</element>
|
||||
<namespace path="src">Komponent\Component\Testquestions</namespace>
|
||||
|
||||
Reference in New Issue
Block a user