Erreur lors de l'optimisation de l'indexation (recherche avancée)

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
1 year 5 months ago #352510

-- HikaShop version -- : 4.7.3 Starter
-- Joomla version -- : 4.3.2
-- PHP version -- : 8.0.28
-- Error-message(debug-mod must be tuned on) -- : Unknown column 'id' in 'field list'

Bonjour,

Sur le site d'un ami, site neuf sur lequel j'ai installé Hikashop puis importé les données standard de l'ancien site (et celles de Virtuemart dans Hikashop), lorsque je clique sur le lien d'optimisation dans la page de recherche avancée, j'ai ce message d'erreur 1054 "Unknown column 'id' in 'field list' " sans possibilité de savoir où ce champ serait absent.
Curieusement lorsque je relance l'indexation, l'optimisation se termine sans erreur.
Si je désactive le plugin de recherche avancée Hikashop, l'erreur diaparaît.
Comment savoir quelle table n'aurait pas ce champ "id" signalé ?

Merci de vos conseils !

Last edit: 1 year 5 months ago by RG-Consultant.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 5 months ago #352514

Bonjour,

C'est bizarre en effet. D'autant plus qu'il n'y a aucune table dans HikaShop avec une colonne "id". C'est toujours des noms préfixés avec le type, genre order_id, product_id, etc.
Activez l'option "debug" de la configuration Joomla et reproduisez l'erreur. Vous devriez avoir des informations de débug plus détaillées qui devrait permettre de comprendre ce qu'il se passe.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
1 year 5 months ago #352524

Merci Nicolas,

C'est ce que j'avais fait, mais le débogage commence par

JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:141
et rien ne précise où l'erreur se produit.

J'ai un site de test personnel en version Business avec le même phénomène.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 5 months ago #352528

Bonjour,

Il faudrait une copie de tout le débug, pas juste le début.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
1 year 5 months ago #352534

Nicolas,

Je suis assez expérimenté (16 ans de Joomla! et plus de 33000 messages sur le forum joomla.fr) pour vous dire que rien dans le debug ne donne d'info utile.
Pour le vérifier, il vous suffit de le faire sur un site de test ou de démo déjà existant.

# Function Location
1 () JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:137
2 mysqli->prepare() JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:137
3 Joomla\Database\Mysqli\MysqliStatement->__construct() JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:1089
4 Joomla\Database\Mysqli\MysqliDriver->prepareStatement() JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1900
5 Joomla\Database\DatabaseDriver->setQuery() JROOT/administrator/components/com_finder/src/Indexer/Adapter.php:281
6 Joomla\Component\Finder\Administrator\Indexer\Adapter->onFinderGarbageCollection() JROOT/libraries/src/Plugin/CMSPlugin.php:284
7 Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}() JROOT/libraries/vendor/joomla/event/src/Dispatcher.php:486
8 Joomla\Event\Dispatcher->dispatch() JROOT/libraries/src/Application/EventAware.php:111
9 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/administrator/components/com_finder/src/Controller/IndexController.php:58
10 Joomla\Component\Finder\Administrator\Controller\IndexController->optimise() JROOT/libraries/src/MVC/Controller/BaseController.php:678
11 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:143
12 Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:361
13 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/AdministratorApplication.php:143
14 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT/libraries/src/Application/AdministratorApplication.php:186
15 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:293
16 Joomla\CMS\Application\CMSApplication->execute() JROOT/administrator/includes/app.php:61
17 require_once() JROOT/administrator/index.php:32

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 5 months ago #352536

Bonjour,

Merci pour le débug complet.
Il indique que le souci vient de la requête MySQL dans la fonction onFinderGarbageCollection du fichier administrator/components/com_finder/src/Indexer/Adapter.php
A cet endroit, il y a une requête MySQL qui est faite avec une jointure entre la table finder_links et la table de l'extension étant indexée.
Or, la ligne:

$subquery->select('CONCAT(' . $db->quote($this->getUrl('', $this->extension, $this->layout)) . ', id)')
a le nom de colonne "id" en dur alors que ni la table finder_links ni la table hikashop_product n'a de colonne avec ce nom.
Donc pour moi, c'est un bug dans l'indexer de Joomla.
Cette requête doit être modifiée pour être plus dynamique car toutes les extensions n'utilise pas forcément "id" pour l'id des entrées dans les tables étant indexées.
Donc nous allons devoir faire un retour sur github.com/joomla/joomla-cms/issues

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
1 year 5 months ago #352538

Merci Nicolas !

Je n’étais pas allé examiner les fichiers de Joomla!, pas assez à l'aise avec le codage.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
1 year 5 months ago #352540

J'ai regardé le sujet plus en détails, et en fait, la fonction onFinderGarbageCollection est surchargeable par le plugin d'indexation.
Du coup, je vais pouvoir faire un patch pour la prochaine version d'HikaShop pour gérer l'optimisation sans erreur.

Please Log in or Create an account to join the conversation.

Time to create page: 0.071 seconds
Powered by Kunena Forum