get(DatabaseInterface::class); $query = $db->getQuery(true) ->select([ $db->quoteName('m.id'), $db->quoteName('m.title'), $db->quoteName('m.module'), $db->quoteName('m.position'), $db->quoteName('m.published'), $db->quoteName('m.ordering'), $db->quoteName('m.client_id'), $db->quoteName('m.access'), $db->quoteName('m.language'), ]) ->from($db->quoteName('#__modules', 'm')); if (!empty($filters['search'])) { $search = $db->quote('%' . $db->escape($filters['search'], true) . '%'); $query->where('(' . $db->quoteName('m.title') . ' LIKE ' . $search . ' OR ' . $db->quoteName('m.module') . ' LIKE ' . $search . ' OR ' . $db->quoteName('m.position') . ' LIKE ' . $search . ')'); } if ($filters['published'] !== '' && $filters['published'] !== null) { $query->where($db->quoteName('m.published') . ' = ' . (int) $filters['published']); } if ($filters['client_id'] !== '' && $filters['client_id'] !== null) { $query->where($db->quoteName('m.client_id') . ' = ' . (int) $filters['client_id']); } $query->order($db->quoteName('m.client_id') . ' ASC, ' . $db->quoteName('m.position') . ' ASC, ' . $db->quoteName('m.ordering') . ' ASC'); $db->setQuery($query, $offset, $limit); return $db->loadObjectList() ?: []; } public function getTotal(array $filters = []): int { $db = Factory::getContainer()->get(DatabaseInterface::class); $query = $db->getQuery(true) ->select('COUNT(*)') ->from($db->quoteName('#__modules', 'm')); if (!empty($filters['search'])) { $search = $db->quote('%' . $db->escape($filters['search'], true) . '%'); $query->where('(' . $db->quoteName('m.title') . ' LIKE ' . $search . ' OR ' . $db->quoteName('m.module') . ' LIKE ' . $search . ' OR ' . $db->quoteName('m.position') . ' LIKE ' . $search . ')'); } if ($filters['published'] !== '' && $filters['published'] !== null) { $query->where($db->quoteName('m.published') . ' = ' . (int) $filters['published']); } if ($filters['client_id'] !== '' && $filters['client_id'] !== null) { $query->where($db->quoteName('m.client_id') . ' = ' . (int) $filters['client_id']); } $db->setQuery($query); return (int) $db->loadResult(); } }