From 84aa7e637bb03b2fb014f2b31e8a5cdeab82233a Mon Sep 17 00:00:00 2001 From: Wojtek Date: Thu, 15 Oct 2026 18:37:32 +0200 Subject: [PATCH] Add automatic test countdown timer --- README.md | 3 +- .../sql/updates/mysql/1.16.0.sql | 1 + com_testquestions.xml | 2 +- .../language/en-GB/com_testquestions.ini | 1 + .../com_testquestions/tmpl/set/default.php | 54 ++++++++++++++++++- 5 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 administrator/components/com_testquestions/sql/updates/mysql/1.16.0.sql diff --git a/README.md b/README.md index 5be3247..3213966 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Szkielet komponentu Joomla 6 do gromadzenia pytań testowych. - frontendowy widok pytań filtrowany po symbolu arkusza egzaminacyjnego, - frontendowy widok testu na podstawie wybranego zestawu pytań, - dwuetapowe rozpoczęcie testu z loginem użytkownika i możliwością przedłużenia czasu, +- zegar odliczający czas testu i automatyczne zakończenie po jego upływie, - pozycję menu „Arkusz egzaminacyjny” z opcjonalnym symbolem arkusza, - listę wyboru dostępnych symboli arkuszy na stronie klienckiej, - możliwość rozwiązania arkusza i wyświetlenia wyniku oraz odpowiedzi poprawnych i zaznaczonych, @@ -26,6 +27,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.15.2). +W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.16.0). Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**. diff --git a/administrator/components/com_testquestions/sql/updates/mysql/1.16.0.sql b/administrator/components/com_testquestions/sql/updates/mysql/1.16.0.sql new file mode 100644 index 0000000..adf308c --- /dev/null +++ b/administrator/components/com_testquestions/sql/updates/mysql/1.16.0.sql @@ -0,0 +1 @@ +-- No database changes required for version 1.16.0. diff --git a/com_testquestions.xml b/com_testquestions.xml index c59f533..81eb733 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.15.2 + 1.16.0 COM_TESTQUESTIONS_DESCRIPTION com_testquestions Komponent\Component\Testquestions diff --git a/components/com_testquestions/language/en-GB/com_testquestions.ini b/components/com_testquestions/language/en-GB/com_testquestions.ini index 6f7548f..2bb86a7 100644 --- a/components/com_testquestions/language/en-GB/com_testquestions.ini +++ b/components/com_testquestions/language/en-GB/com_testquestions.ini @@ -26,3 +26,4 @@ COM_TESTQUESTIONS_PARTICIPANT_NAME="Login lub nazwa użytkownika" COM_TESTQUESTIONS_EXTRA_TIME="Przedłużenie czasu" COM_TESTQUESTIONS_START_TEST="Rozpocznij test" COM_TESTQUESTIONS_SET_START_HINT="Wybierz zestaw, wpisz login lub nazwę użytkownika i zatwierdź rozpoczęcie testu." +COM_TESTQUESTIONS_TIMER_REMAINING="Pozostały czas" diff --git a/components/com_testquestions/tmpl/set/default.php b/components/com_testquestions/tmpl/set/default.php index ef92539..c02898a 100644 --- a/components/com_testquestions/tmpl/set/default.php +++ b/components/com_testquestions/tmpl/set/default.php @@ -46,11 +46,20 @@ use Joomla\CMS\Factory; set->image) : ?>
set->test_content) : ?>
set->test_content; ?>
+ results && ((int) $this->set->duration + $extraTime) > 0) : ?> +
+ +
--:--
+
+ results) : ?>
: results['correct']; ?> / results['total']; ?> (results['percentage'], ENT_QUOTES, 'UTF-8'); ?>%)
items) : ?> -
+ items as $number => $item) : ?>
question; ?>
@@ -96,3 +105,46 @@ use Joomla\CMS\Factory; +started && !$this->results && ((int) $this->set->duration + $extraTime) > 0) : ?> + +