Add category filter to set question selection

This commit is contained in:
Wojtek
2026-10-15 16:34:55 +02:00
parent 1bed2d7dcc
commit 36e79f442e
8 changed files with 74 additions and 4 deletions
@@ -44,6 +44,31 @@ class SetModel extends AdminModel
return Factory::getApplication()->getUserState('com_testquestions.edit.set.data', []) ?: $this->getItem();
}
public function getQuestions()
{
$db = Factory::getContainer()->get('DatabaseDriver');
return $db->setQuery(
$db->getQuery(true)
->select(['q.id', 'q.question', 'q.category_id', 'c.title AS category_title'])
->from($db->quoteName('#__testquestions_questions', 'q'))
->leftJoin($db->quoteName('#__testquestions_categories', 'c') . ' ON c.id = q.category_id')
->order('c.title ASC, q.ordering ASC, q.id ASC')
)->loadObjectList();
}
public function getCategories()
{
$db = Factory::getContainer()->get('DatabaseDriver');
return $db->setQuery(
$db->getQuery(true)
->select(['id', 'title'])
->from($db->quoteName('#__testquestions_categories'))
->order($db->quoteName('title') . ' ASC')
)->loadObjectList();
}
public function save($data)
{
$questionIds = array_values(array_unique(array_filter(array_map('intval', (array) ($data['question_ids'] ?? [])))));