Modernisation et variables dans le plugin Matomo

  • Posts: 45
  • Thank you received: 5
4 days 14 hours ago #373091

-- HikaShop version -- : 6.5.2
-- Joomla version -- : 5.4.7
-- Error-message(debug-mod must be tuned on) -- : Class JPlugin does not exist

Bonjour,

  1. Jutilise le plugin Matomo Analytics sur mes deux sites fonctionnant sur Joomla 5.Envisagez-vous de fournir une version purement pour versions Joomla 4+ qui marche sans le plugin de compatibilité. Il s'agit essentiellement de créer un fichier
    services/provider.php
    pour connecter l'extension au conteneur d'injection de dépendances (DIC), puis mettre le code du plugin dans le répertoire
    src/Extension
    et remplacer les anciennes classes comme
    JPlugin
    par
    Joomla\CMS\Plugin\CMSPlugin
    et
    JFactory
    par
    Factory
    et cetera. Je pose la question car je vois que ce travail est fait dans les version récentes de Hikashop.
  2. Il semble avoir une variable non déclarée dans la ligne :
    hikashop_writeToLog('no visitor_id in order '.$orderData->order_id.' for matomo purchase tracking');
    Serait-il plutôt
    $this->order->id
    ? Voici ce que je vois dans fichier de log : no visitor_id in order for matomo purchase tracking 09.13.25 04:50:53
  3. Aussi dans
    if(isset($data->hk_category) && is_object($data->hk_category))
    suivi de
    if($categoryId > 0) { $cat = $categoryClass->get($categoryId);
    vous ne définissez pas
    $categoryClass
    par contre plus tard vous faites
    if(!empty($category_id)) { $categoryClass = hikashop_get('class.category');$category = $categoryClass->get($category_id);
    Il faudrait faire l'affectation de la variable
    $categoryClass
    dans les deux cas?
Merci à l'avance de votre attention et bonne journée
brett

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

  • Posts: 86058
  • Thank you received: 14182
  • MODERATOR
4 days 7 hours ago #373092

Bonjour brett,

Merci pour ce rapport détaillé, les deux variables sont bien des bugs et vos deux corrections sont les bonnes. La version 1.1.1 du plugin est en ligne, vous pouvez la télécharger depuis votre compte sur notre site et l'installer par-dessus l'actuelle : elle contient les trois points ci-dessous.

1. Les classes J*

Le plugin étend maintenant

\Joomla\CMS\Plugin\CMSPlugin
et toutes les autres classes J* ont été remplacées par leurs équivalents avec espace de noms. Il n'a donc plus besoin du plugin de compatibilité de Joomla pour se charger.

Le passage complet au format services/provider.php avec le code dans src/Extension n'est par contre pas prévu pour l'instant. Joomla 5 et 6 acceptent toujours les plugins au format classique, et ce format nous permet de garder un seul code qui fonctionne aussi sur les vieilles versions de Joomla, ce que le format DIC ne permet pas.

2. La variable dans le log

Confirmé,
$orderData
n'existe pas dans cette fonction, c'est pour cela que le numéro de commande manque dans votre fichier de log. Corrigé en :
hikashop_writeToLog('no visitor_id in order '.$order->order_id.' for matomo purchase tracking');

3. La variable $categoryClass

Confirmé également,
$categoryClass
n'était affecté que plus bas dans la fonction. L'affectation est maintenant faite avant l'appel, avec en plus une garde sur le résultat au cas où la catégorie n'existerait plus :
if($categoryId > 0) {
	$categoryClass = hikashop_get('class.category');
	$cat = $categoryClass->get($categoryId);
	if(!empty($cat->category_type) && $cat->category_type == 'manufacturer')
		$menu->params->set('content_type', 'manufacturer');
}

The following user(s) said Thank You: brettv

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

Time to create page: 0.056 seconds
Powered by Kunena Forum