From 59335cbc52cf33bc53fcf867df9c6d1f234859a2 Mon Sep 17 00:00:00 2001 From: Wojtek Date: Fri, 16 Oct 2026 10:32:20 +0200 Subject: [PATCH] Use explicit set save toolbar actions --- README.md | 2 +- .../language/en-GB/com_testquestions.ini | 2 ++ .../sql/updates/mysql/1.37.3.sql | 1 + .../src/Controller/SetController.php | 36 +++++++++++++++++++ .../src/View/Set/HtmlView.php | 3 +- com_testquestions.xml | 2 +- 6 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 administrator/components/com_testquestions/sql/updates/mysql/1.37.3.sql diff --git a/README.md b/README.md index 4c7ddae..3baa789 100644 --- a/README.md +++ b/README.md @@ -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.37.2). +W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.37.3). Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**. diff --git a/administrator/components/com_testquestions/language/en-GB/com_testquestions.ini b/administrator/components/com_testquestions/language/en-GB/com_testquestions.ini index 4c4ce75..8c9f437 100644 --- a/administrator/components/com_testquestions/language/en-GB/com_testquestions.ini +++ b/administrator/components/com_testquestions/language/en-GB/com_testquestions.ini @@ -58,6 +58,8 @@ COM_TESTQUESTIONS_SET_ADD_VARIANT="Dodaj wariant" COM_TESTQUESTIONS_SET_PARENT="Zestaw nadrzędny" COM_TESTQUESTIONS_SET_NO_VARIANTS="Brak wariantów" COM_TESTQUESTIONS_SET_MULTI_QUESTIONS_INFO="Pytania są dodawane w poszczególnych wariantach zestawu." +COM_TESTQUESTIONS_SET_SAVE="Zapisz" +COM_TESTQUESTIONS_SET_SAVE_AND_CLOSE="Zapisz i zamknij" COM_TESTQUESTIONS_SET_DESCRIPTION="Opis zestawu" COM_TESTQUESTIONS_SET_QUESTIONS="Pytania w zestawie" COM_TESTQUESTIONS_SET_QUESTION_COUNT="Liczba pytań" diff --git a/administrator/components/com_testquestions/sql/updates/mysql/1.37.3.sql b/administrator/components/com_testquestions/sql/updates/mysql/1.37.3.sql new file mode 100644 index 0000000..2781936 --- /dev/null +++ b/administrator/components/com_testquestions/sql/updates/mysql/1.37.3.sql @@ -0,0 +1 @@ +-- No database changes required for version 1.37.3. diff --git a/administrator/components/com_testquestions/src/Controller/SetController.php b/administrator/components/com_testquestions/src/Controller/SetController.php index 8fa633d..fee7e99 100644 --- a/administrator/components/com_testquestions/src/Controller/SetController.php +++ b/administrator/components/com_testquestions/src/Controller/SetController.php @@ -38,6 +38,42 @@ class SetController extends FormController return $result; } + public function save($key = null, $urlVar = null) + { + $formData = (array) $this->input->post->get('jform', [], 'array'); + $result = parent::save($key, $urlVar); + $itemId = (int) ($formData['id'] ?? $this->input->getInt('id')); + + if ($result && $itemId > 0) { + $this->setRedirect('index.php?option=com_testquestions&task=set.edit&id=' . $itemId); + } + + return $result; + } + + public function saveandclose($key = null, $urlVar = null) + { + $formData = (array) $this->input->post->get('jform', [], 'array'); + $parentId = (int) ($formData['parent_id'] ?? 0); + $result = parent::save($key, $urlVar); + $itemId = (int) ($formData['id'] ?? $this->input->getInt('id')); + + if ($result && $itemId > 0 && $parentId < 1) { + $item = $this->getModel()->getItem($itemId); + $parentId = (int) ($item->parent_id ?? 0); + } + + if ($result) { + $this->setRedirect( + $parentId > 0 + ? 'index.php?option=com_testquestions&task=set.edit&id=' . $parentId + : 'index.php?option=com_testquestions&view=sets' + ); + } + + return $result; + } + public function cancel($key = null) { $parentId = $this->input->getInt('parent_id'); diff --git a/administrator/components/com_testquestions/src/View/Set/HtmlView.php b/administrator/components/com_testquestions/src/View/Set/HtmlView.php index a23a02c..15fafea 100644 --- a/administrator/components/com_testquestions/src/View/Set/HtmlView.php +++ b/administrator/components/com_testquestions/src/View/Set/HtmlView.php @@ -37,7 +37,8 @@ class HtmlView extends BaseHtmlView { ToolbarHelper::title($this->item->id ? Text::_('COM_TESTQUESTIONS_EDIT_SET') : Text::_('COM_TESTQUESTIONS_NEW_SET')); ToolbarHelper::apply('set.apply', 'JTOOLBAR_APPLY'); - ToolbarHelper::save('set.save', 'JTOOLBAR_SAVE'); + ToolbarHelper::custom('set.save', 'save', 'save', 'COM_TESTQUESTIONS_SET_SAVE', false); + ToolbarHelper::custom('set.saveandclose', 'save', 'save', 'COM_TESTQUESTIONS_SET_SAVE_AND_CLOSE', false); ToolbarHelper::cancel('set.cancel', 'JTOOLBAR_CANCEL'); } } diff --git a/com_testquestions.xml b/com_testquestions.xml index 8520fd3..a7ae631 100644 --- a/com_testquestions.xml +++ b/com_testquestions.xml @@ -4,7 +4,7 @@ 2026-10-14 Komponent GNU General Public License version 2 or later - 1.37.2 + 1.37.3 COM_TESTQUESTIONS_DESCRIPTION com_testquestions Komponent\Component\Testquestions