- Posts: 48
- Thank you received: 5
Modernisation et variables dans le plugin Matomo
2 months 3 days ago #373091
by brettv
Modernisation et variables dans le plugin Matomo was created by brettv
-- HikaShop version -- : 6.5.2
-- Joomla version -- : 5.4.7
-- Error-message(debug-mod must be tuned on) -- : Class JPlugin does not exist
Bonjour,
brett
-- Joomla version -- : 5.4.7
-- Error-message(debug-mod must be tuned on) -- : Class JPlugin does not exist
Bonjour,
- 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
pour connecter l'extension au conteneur d'injection de dépendances (DIC), puis mettre le code du plugin dans le répertoireCode:services/provider.phpet remplacer les anciennes classes commeCode:src/ExtensionparCode:JPluginetCode:Joomla\CMS\Plugin\CMSPluginparCode:JFactoryet cetera. Je pose la question car je vois que ce travail est fait dans les version récentes de Hikashop.Code:Factory
- Il semble avoir une variable non déclarée dans la ligne :
Serait-il plutôtCode:hikashop_writeToLog('no visitor_id in order '.$orderData->order_id.' for matomo purchase tracking');? Voici ce que je vois dans fichier de log : no visitor_id in order for matomo purchase tracking 09.13.25 04:50:53Code:$this->order->id
- Aussi dans
suivi deCode:if(isset($data->hk_category) && is_object($data->hk_category))vous ne définissez pasCode:if($categoryId > 0) { $cat = $categoryClass->get($categoryId);par contre plus tard vous faitesCode:$categoryClassIl faudrait faire l'affectation de la variableCode:if(!empty($category_id)) { $categoryClass = hikashop_get('class.category');$category = $categoryClass->get($category_id);dans les deux cas?Code:$categoryClass
brett
Please Log in or Create an account to join the conversation.
2 months 3 days ago #373092
by nicolas
Replied by nicolas on topic Modernisation et variables dans le plugin Matomo
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
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é,
n'existe pas dans cette fonction, c'est pour cela que le numéro de commande manque dans votre fichier de log. Corrigé en :
3. La variable $categoryClass
Confirmé également,
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 :
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
Code:
\Joomla\CMS\Plugin\CMSPlugin
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é,
Code:
$orderData
Code:
hikashop_writeToLog('no visitor_id in order '.$order->order_id.' for matomo purchase tracking');
3. La variable $categoryClass
Confirmé également,
Code:
$categoryClass
Code:
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.084 seconds