getInput()->getInt('set_id'); if ($setId < 1) { return null; } $db = Factory::getContainer()->get('DatabaseDriver'); return $db->setQuery( $db->getQuery(true) ->select(['id', 'title', 'test_content', 'image']) ->from($db->quoteName('#__testquestions_sets')) ->where($db->quoteName('id') . ' = ' . $setId) )->loadObject(); } public function getItems(): array { $input = Factory::getApplication()->getInput(); $setId = $input->getInt('set_id'); $db = Factory::getContainer()->get('DatabaseDriver'); if ($setId > 0) { return $db->setQuery( $db->getQuery(true) ->select(['q.id', 'q.question_type', 'q.question', 'q.answer_a', 'q.answer_b', 'q.answer_c', 'q.answer_d', 'q.answer_open', 'q.correct_answer', 'q.image']) ->from($db->quoteName('#__testquestions_set_questions', 'sq')) ->innerJoin($db->quoteName('#__testquestions_questions', 'q') . ' ON q.id = sq.question_id') ->where('sq.set_id = ' . $setId) ->where('q.published = 1') ->order('sq.ordering ASC, q.id ASC') )->loadObjectList(); } $ids = array_values(array_unique(array_filter(array_map('intval', explode(',', $input->getString('ids', '')))))); if (!$ids) { return []; } $rows = $db->setQuery( $db->getQuery(true) ->select(['id', 'question_type', 'question', 'answer_a', 'answer_b', 'answer_c', 'answer_d', 'answer_open', 'correct_answer', 'image']) ->from($db->quoteName('#__testquestions_questions')) ->where($db->quoteName('id') . ' IN (' . implode(',', $ids) . ')') )->loadObjectList('id'); $items = []; foreach ($ids as $id) { if (isset($rows[$id])) { $items[] = $rows[$id]; } } return $items; } }