THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Hello!

En allant dans une catégorie, j'ai des erreurs html :

[DOM] Found 6 elements with non-unique id #cart_product: (More info: https://goo.gl/9p2vKq) <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="139"> <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="7"> <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="202"> <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="8"> <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="248"> <input id="cart_product" type="hidden" name="thelia_cart_add[product]" value="3">
accessoires-fauteuil.html:1
[DOM] Found 6 elements with non-unique id #quantity: (More info: https://goo.gl/9p2vKq) <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required max="5000"> <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required> <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required> <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required> <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required> <input type="number" name="thelia_cart_add[quantity]" id="quantity" class="form-control" value="1" min="0" required>

Problème connu ?

Et mon hook

<hook id="additional_pse_field.pse_change" class="AdditionalPseField\Hook\HookManager" scope="request">
	<tag name="hook.event_listener" event="product.javascript-initialization" type="front" method="onPseChange" />
</hook>

ne se déclenche pas en aperçu produit.

Last edited by Elyos (21-04-2021 08:14:07)


Aide les autres, ils t'aideront en retour.

Offline


Elyos wrote:

Hello!
Et mon hook

<hook id="additional_pse_field.pse_change" class="AdditionalPseField\Hook\HookManager" scope="request">
	<tag name="hook.event_listener" event="product.javascript-initialization" type="front" method="onPseChange" />
</hook>

ne se déclenche pas en aperçu produit.


Souci réglé en changeant l'event par product.details-bottom

Mais du coup sur la page produit j'obtiens cette erreur :

Uncaught ReferenceError: $ is not defined

correspondant à

$(function() { ... 

Last edited by Elyos (21-04-2021 11:15:11)


Aide les autres, ils t'aideront en retour.

Offline


Et maintenant j'ai le code en double... malgré le fait que je sois revenu en arrière au niveau du hook et que je l'ai supprimé dans l'admin...


Aide les autres, ils t'aideront en retour.

Offline


J'ai supprimé tous les hooks du module dans l'admin, désactivé/activé le module mais les hooks ne reviennent pas... '-_-

Et je ne savais pas que désactiver un module lançait la fonction destroy.... ça m'a tout supprimé...........

'-_- '-_- '-_-

Last edited by Elyos (21-04-2021 10:26:46)


Aide les autres, ils t'aideront en retour.

Offline


Pourtant j'ai bien ça ...

public function destroy(ConnectionInterface $con = null, $deleteModuleData = false)
    {
        if ($deleteModuleData) {
            $database = new Database($con->getWrappedConnection());

            $database->insertSql(null, array(__DIR__."/Config/drop.sql"));
        }
    }

Et pas moyen de remettre mes hooks automatiquement...

Last edited by Elyos (21-04-2021 10:30:19)


Aide les autres, ils t'aideront en retour.

Offline


Bon bah j'ai trouvé comment les remettre manuellement... bizarre tout ça ...


Aide les autres, ils t'aideront en retour.

Offline


J'ai pas réussi à remettre celui là...

<hook id="additional_pse_field.product_tab" class="AdditionalPseField\Hook\HookManager">
         <tag name="hook.event_listener" event="product.tab" type="back" method="onProductTab" />
</hook>

j'ai dû le faire dans la bdd directement


Aide les autres, ils t'aideront en retour.

Offline


Bon bah ça marche pas... mes hooks ne sont pas appelés...

Last edited by Elyos (21-04-2021 11:01:05)


Aide les autres, ils t'aideront en retour.

Offline


Bon bah dernière tentative : suppression du cache dev et prod à la main..

Et c'est revenu...


Aide les autres, ils t'aideront en retour.

Offline


Mais j'ai toujours ce souci de jquery...


Soit je met comme hook :
- product.javascript-initialization : ça marche sur la page produit mais pas sur le quickview (code inexistant car pas entre les balises article
Soit je met comme hook :
- product.details-bottom : ça marche sur le quickview mais pas sur la page produit (code jquery appelé avant le chargement jquery)


Aide les autres, ils t'aideront en retour.

Offline


Bon bah du coup j'ai feinté...

J'ai remplacé dans thelia.js :

// Product Quick view Dialog
$(document).on('click.product-quickview', '.product-quickview', function () {
	if (doAjax) {
		$.get(this.href,
			function (data) {
				// Hide all currently active bootbox dialogs
				bootbox.hideAll();
				// Show dialog
				bootbox.dialog({
					message : $("#product",data),
					onEscape: function() {
						bootbox.hideAll();
					}
				});
				window.pseManager.load();
			}
		);
		return false;
	}
});

par

// Product Quick view Dialog
$(document).on('click.product-quickview', '.product-quickview', function () {
	if (doAjax) {
		$.get(this.href, { ajax: 1 } ).done(function (data) {
			// Hide all currently active bootbox dialogs
			bootbox.hideAll();
			// Show dialog
			bootbox.dialog({
				message : $("#product",data),
				onEscape: function() {
					bootbox.hideAll();
				}
			});
			window.pseManager.load();
		});
		return false;
	}
});

et dans mon module j'ai mis les deux hooks :

<hook id="additional_pse_field.pse_change" class="AdditionalPseField\Hook\HookManager" scope="request">
	<tag name="hook.event_listener" event="product.javascript-initialization" type="front" method="onPseChange" />
	<tag name="hook.event_listener" event="product.details-bottom" type="front" method="onPseChangeQuickView" />
</hook>

puis j'ai dupliqué ma fonction avec vérification de la variable $_GET['ajax'] :

public function onPseChange(HookRenderEvent $event) {
	$isAjax = $this->getRequest()->query->get("ajax");
	if(!$isAjax){
...
public function onPseChangeQuickView(HookRenderEvent $event) {
	$isAjax = $this->getRequest()->query->get("ajax");
	if($isAjax){
...

Voir pour les prochaines versions de Thelia pour éviter ce souci ?


Aide les autres, ils t'aideront en retour.