diff --git a/src/packages/com_mokowaas/admin/src/Controller/DisplayController.php b/src/packages/com_mokowaas/admin/src/Controller/DisplayController.php index fe5e1a88..01ca5a98 100644 --- a/src/packages/com_mokowaas/admin/src/Controller/DisplayController.php +++ b/src/packages/com_mokowaas/admin/src/Controller/DisplayController.php @@ -226,6 +226,48 @@ class DisplayController extends BaseController )); } + // ================================================================== + // KB Search + // ================================================================== + + public function searchKb() + { + $query = Factory::getApplication()->getInput()->getString('q', ''); + + if (strlen($query) < 3) + { + $this->jsonResponse(['results' => []]); + } + + try + { + $db = Factory::getDbo(); + $escaped = $db->quote('%' . $db->escape($query, true) . '%'); + + $results = $db->setQuery( + $db->getQuery(true) + ->select([$db->quoteName('l.title'), $db->quoteName('l.url'), $db->quoteName('l.description')]) + ->from($db->quoteName('#__finder_links', 'l')) + ->where($db->quoteName('l.published') . ' = 1') + ->where('(' . $db->quoteName('l.title') . ' LIKE ' . $escaped + . ' OR ' . $db->quoteName('l.description') . ' LIKE ' . $escaped . ')') + ->order($db->quoteName('l.title') . ' ASC') + ->setLimit(8) + )->loadObjectList() ?: []; + + foreach ($results as $r) + { + $r->description = mb_substr(strip_tags($r->description ?? ''), 0, 150); + } + + $this->jsonResponse(['results' => $results]); + } + catch (\Throwable $e) + { + $this->jsonResponse(['results' => []]); + } + } + // ================================================================== // Importers // ================================================================== diff --git a/src/packages/com_mokowaas/admin/tmpl/tickets/default.php b/src/packages/com_mokowaas/admin/tmpl/tickets/default.php index 8b3a241e..5d40328b 100644 --- a/src/packages/com_mokowaas/admin/tmpl/tickets/default.php +++ b/src/packages/com_mokowaas/admin/tmpl/tickets/default.php @@ -135,11 +135,25 @@ $priorityBadge = [