From b4d95c54c43867e63003ff2c1aef25c2c1db198a Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Mon, 23 Feb 2026 21:16:41 +0100 Subject: [PATCH] feat: add AdminSearchController for AJAX search functionality --- .../admin/AdminSearchController.php | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 override/controllers/admin/AdminSearchController.php diff --git a/override/controllers/admin/AdminSearchController.php b/override/controllers/admin/AdminSearchController.php new file mode 100644 index 00000000..aa3e6705 --- /dev/null +++ b/override/controllers/admin/AdminSearchController.php @@ -0,0 +1,44 @@ +shop->setContext(Shop::CONTEXT_ALL); + } else { + Context::getContext()->shop->setContext(Shop::CONTEXT_SHOP, (int) Tools::getValue('id_shop')); + } + + ini_set('max_execution_time', 7200); + + $full = (bool) Tools::getValue('full'); + $start = microtime(true); + + $countBefore = (int) Db::getInstance()->getValue( + 'SELECT COUNT(*) FROM `' . _DB_PREFIX_ . 'search_index`' + ); + + Search::indexation($full); + + $countAfter = (int) Db::getInstance()->getValue( + 'SELECT COUNT(*) FROM `' . _DB_PREFIX_ . 'search_index`' + ); + + $elapsed = round(microtime(true) - $start, 2); + + if (Tools::getValue('redirect')) { + Tools::redirectAdmin($_SERVER['HTTP_REFERER'] . '&conf=4'); + } + + header('Content-Type: application/json'); + die(json_encode([ + 'success' => true, + 'mode' => $full ? 'full' : 'missing', + 'index_entries_before' => $countBefore, + 'index_entries_after' => $countAfter, + 'entries_added' => $countAfter - $countBefore, + 'elapsed_seconds' => $elapsed, + ])); + } +}