Problème affichage de module

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262179

-- url of the page with the problem -- : demo.technetservices.fr/tns/catalogue
-- HikaShop version -- : 3.0.0
-- Joomla version -- : 3.6.5
-- PHP version -- : 7
-- Browser(s) name and version -- : IE 11

Bonjour,

J'ai un soucie au niveau de l'affichage des modules d'hikashop. J'utilise le template "favourite" de FavTheme, donc aucun problème particulier la dessus.

Je vais expliquer le cheminement des évènements avant d'arriver à ma question :

J'ai voulu publier deux modules, un de catégorie de produit et un de filtre de produit par champ personnalisé, dans la colonne de gauche seulement dans la page d'une liste de produits, quand on regardais une fiche d'un produit on se retrouvais avec une colonne de gauche avec sont container mais vide, se qui avait pour effet d'avoir un container principal qui ne prenais pas toute la largeur (moche :ohmy: )

J'ai donc vérifié le code de mon template, et j'ai vérifié se que comptabilité la fonction

$this->countModules('sidebar1')
.... sur le listing des produits il m'en comptais deux ... donc normal, mais sur le détail d'un produit il m'en comptais toujours deux, alors que je demandais a se qu'il ne les affiches pas sur les fiches produit.

J'ai donc farfouiller un peu partout et surtout sur votre forum et j'ai trouver un post et essayé .... Sa fonctionne assez bien, sauf quand ont est dans le listing de produit il ne m'affiche pas le titre de mon premier module qui n'est autre que les catégories de produits. En désactivant cet fonction il me réaffiche les titres :dry:

Alors j'en viens à ma question, si je ne peux pas utiliser $this->countModules ou la fonction, comment je fait pour ne pas afficher les container des modules que je ne souhaite pas dans certaine page ?

PS : si vous avez besoin d'un accès au site, aucun problème (Administration + FTP) .

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262206

Bonjour,

Je ne vois pas trop le rapport entre l'affichage du titre et le fait d'utiliser ce genre code pour ajouter ou non une position en fonction des modules vides ou non de la position.
En tout cas, j'utiliserais plutôt ce genre de fonction:
joomla.stackexchange.com/a/18775/9491

Mais cette question n'a pas grand chose à voir avec HikaShop. Ce serait le même soucis avec n'importe quel module qui peut être vide ou non. C'est au template de gérer cela dans le index.php. Si le template ne gère pas cela comme il faut, comme votre message le suggère, c'est au fournisseur du template qu'il faut s'adresser pour qu'il puisse proposer une solution (qui devrait être dans les lignes de ce que je propose).

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262257

Bonjour,

je parle du titre des modules et j'ai déjà essayer le code de stackexchange, ça ne change rien, ça reviens au même d'ailleurs.

Pour l'histoire des modules vide j'en fait mon affaire, ce n'est pas votre problème.

Je me rend compte que ma question n'est pas la bonne je me suis mélanger, pardon. La question c'est plutôt pourquoi il ne m'affiche pas le titre du premier module quand je met se bout de code ?
Si je met en premier un module Joomla (n'importe lequel) il m'affiche le titre du module, si bien sur je place se module avant les modules hikashop. Dès que je place en premier un module d'hikashop il me zap le titre du premier module .... comprend pas.

Il me semble bien que cela concerne hikashop .... Exemple en pièce jointe, la première, module personnalisé en premier, les modules hikashop ensuite, les titres s'affiche bien, par contre dès que je désactive le premier module (celui de Joomla), le titre du premier module d'HikaShop disparait.

PS : le Template utilise des fonctions standard à Joomla, comme la plupart des templates.

Attachments:

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262259

Bonjour,

En fait cela ne concerne pas non plus HikaShop. Ce n'est pas le module qui affiche son titre mais le template, via le système de chrome:
docs.joomla.org/Applying_custom_module_chrome
Cela permet de définir l'habillage des modules au niveau du template (titre, bordures, background, etc) car pour certaines positions d'un template vous voulez potentiellement un titre aux modules, alors que pour d'autres vous ne voulez jamais de titre (par exemple la position "banner").
Je suppose d'ailleurs que si vous aviez un autre module qu'un module HikaShop en première position de votre position de template, vous auriez le même soucis avec son titre. Et donc cela indique que le soucis vient du code que vous utilisez pour personnaliser votre template et cacher les modules vides qui doit générer cet effet de bord.

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262362

Je pense que je me suis mal exprimer ou vous lisez trop de post dans le forum de gens chiant comme moi :whistle: .

J'ai expliqué dans mon précédent post, qu'avec un module de Joomla (et même d'autre) le titre s'affichais, dès que je désactivais le premier module de Joomla, le module d'hikashop se retrouvais en tête de liste et le titre disparaissait (seulement le premier module, les autres apparaissait).

En voyant votre lien je me suis rappelé de la petite option qui "tue" qui y a dans chaque module "Paramètre avancé" > "Style du module". Bizarrement sur le module Hikashop le mode "Hérité" ne s'applique pas, il faut forcement spécifier un style sinon on se retrouve avec le bug que j'ai eu. Sur tous les autres module que j'ai pu installer sur d'autre site je n'ai jamais eu à définir un style.

J'ai beau être sur Joomla depuis un bon nombre d'années ... on ne connait jamais assez bien les outils :lol:

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262380

Bonjour,

Non non, j'avais bien compris. Et ce que j'ai dit ne contredit pas votre solution.
L'option "style du module" permet de définir quel chrome vous voulez que le module utilise. Et si le chrome utilisé est un chrome qui n'affiche pas de titre, le titre ne sera pas affiché. Et ce serait la même chose avec un autre module.
Après, peut être que le mode hérité ne fonctionne pas bien due à la façon dont le template est fait et/ou due au changement du code (le fait que vous n'ayez pas le problème avec l'autre module activé signifie peut être que c'est lui qui défini le chrome utilisé par le module suivant pour le mode hérité). Mais de toute façon, ce ne sont pas les modules eux-mêmes qui gèrent cette option mais Joomla/le template.
Mais bon, le principal, c'est que le problème soit résolu :)

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262760

Résolu ... oui et non, je comprend toujours pas comment est gérer la fonction de Joomla countmodules avec les modules HikaShop afin de savoir s'il faut afficher ou pas les colonnes de droite ou de gauche. Donc j'ai essayé avec une installation fraiche, le template par défaut de Joomla ... je configure les modules d'hikashop pour qu'ils ne s'affichent pas dans la fiche produit ..... résultat j'ai toujours une colonne de gauche présente mais vide ...... exemple ICI .
Faut t'il utiliser une fonction ou un code spécial pour détecter le contenu des modules d'hikashop ?

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262772

Bonjour,

Cela n'a rien à faire avec le fait que ce soit un module HikaShop, ou le template par défaut ou pas.
La fonction countModules de Joomla que les templates utilisent compte le nombre de modules à afficher sur la position, peut importe que l'HTML du module soit vide ou non.
C'est pour cela qu'il faut modifier le code du template pour gérer l'affichage de la position ou non en fonction du contenu que les modules de la position retourne. Et cela se fait avec le genre de code dont je vous avez déjà fourni le lien:
joomla.stackexchange.com/a/18775/9491

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262823

La fonction que vous indiquez retourne constamment false même s'il y a un module de publié.

La fonction ci dessous fonctionne sauf que dans les variables des paramètres le header_tag du premier module n'est pas présent et seulement sur le HikaShop Content Module.

function ModuleHaveContent($position) {
	$mods = JModuleHelper::getModules($position);
	if (count($mods) > 0 ) {
		foreach ($mods as $mod) {
			if (!empty(JModuleHelper::renderModule($mod)) )
				return true;
		}
	}
    return false;
}

Vous avez beau dire que ce n'est pas le fait que ce soit un module HikaShop, avec aucun autre module j'ai se genre problème (module Joomla, autre et perso).
Franchement y a que moi qui a se problème ?

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262829

Bonjour,

Je ne suis pas expert en fonction d'affichage de modules pour templates. Je vous ai donné un lien vers une page avec une solution, après si la fonction ne fonctionne pas et que vous avez votre propre fonction qui fonctionne pour vous tant mieux.

Mais je ne vois pas le rapport entre cette fonction et "dans les variables des paramètres le header_tag du premier module n'est pas présent et seulement sur le HikaShop Content Module"
Cette fonction permet de savoir si une position content quelque chose à afficher ou pas. Quel est le rapport avec les paramètres du module ?
J'ai toujours du mal à comprendre quel est votre problème. Il me semblait que vous aviez dit que le problème du titre du module venait du style sélectionné pour le module et que c'était maintenant résolu ? Qu'est-ce que le paramètre header_tag et quel est le rapport avec le titre du module et l'affichage de la position par le template ?
Comprenez que j'essaie de vous répondre du mieux que je peux avec les éléments et les connaissances que j'ai à ma disposition alors que jusqu'à maintenant, je ne vois toujours pas de lien avec le fait que ce soit un module HikaShop.

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #262878

Je vais reprendre en essayant d'être le plus court et le plus clair possible.

Mais je ne vois pas le rapport entre cette fonction et "dans les variables des paramètres le header_tag du premier module n'est pas présent et seulement sur le HikaShop Content Module"
Cette fonction permet de savoir si une position content quelque chose à afficher ou pas. Quel est le rapport avec les paramètres du module ?

countmodules est inutilisable avec les modules hikashop (module comptabilisé en toute circonstance), donc on utilise une fonction tiers. La première http://joomla.stackexchange.com/a/18775/9491 ne marche pas, la deuxième est le code que j'ai fourni précédemment fonctionne, mais avec HikaShop Content Module le paramètre header_tag n'est plus présent. Je ne voit pas le rapport non plus avec la fonction qui permet de savoir s'il le module à du contenu, mais quand j'oblige à la fonction ModuleHaveContent($position) de retourner true, le paramètre header_tag est de nouveau disponible !! ..... Comprend pas !!

Il me semblait que vous aviez dit que le problème du titre du module venait du style sélectionné pour le module et que c'était maintenant résolu ?

Oui cette partie est résolu car j'avais un problème avec modChrome.

Qu'est-ce que le paramètre header_tag et quel est le rapport avec le titre du module et l'affichage de la position par le template ?

header_tag et le titre du module vont de paire pour définir la balise à utiliser. La résolution du problème d'affichage de la position du Template entraine le problème du header tag.

Comprenez que j'essaie de vous répondre du mieux que je peux avec les éléments et les connaissances que j'ai à ma disposition alors que jusqu'à maintenant, je ne vois toujours pas de lien avec le fait que ce soit un module HikaShop.

Se problème ne se produit qu'avec HikaShop Content Module, j'ai testé avec une vingtaine de module différent et tout fonctionne bien.

Je le voit que vous essayer de me répondre au mieux et moi de mon coter j'essaye de vous exposer au mieux mon problème. Car si je pouvais me passer de votre savoir, je le ferais avec grand plaisir, car ça fait maintenant une semaine que je galère sur se problème et ça me fait perdre en temps hallucinant (comme pour vous).

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #262905

Bonjour,

C'est plus clair, merci.

countmodules est inutilisable avec les modules hikashop (module comptabilisé en toute circonstance)

Je ne vois pas le rapport avec le fait que ce soit des modules HikaShop ? Les autres modules sont également tout le temps comptabilisés. Comme je vous l'ai dit, à partir du moment où un module est activé dans une position (avec le menu assignement et l'accès permettant son affichage sur la page bien sur), alors il sera compatibilisé par countModules, peu importe qu'il affiche quelque chose ou pas.

header_tag et le titre du module vont de paire pour définir la balise à utiliser. La résolution du problème d'affichage de la position du Template entraine le problème du header tag.

Je ne vois pas ce qu'est "header_tag" ?
Dans les code de chrome de Joomla, c'est la variable $module->showtitle qui permet de savoir si le titre devrait être affiché ou pas:
forum.joomla.org/viewtopic.php?t=888340
De mon point de vue, si le problème est que vous avez un problème avec l'affichage du titre des modules sur une position de votre template, vous pourriez définir votre propre chrome et afficher le titre peu importe la valeur de cette variable et ensuite utiliser ce chrome (style) dans les modules de cette position.

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #263468

Désolé je n'ai pas pu répondre plus tôt.

Pour countmodules je n'avais pas fait attention que certain module (autre qu'Hikashop) avait se problème de comptabilisation, donc ça réglé.

$module->showtitle permet de définir si le titre s'affiche ou pas, par contre $module->header_tag permet de définir la balise à utiliser (h1, h2 ..... div) et c'est celle ci qui n'est pas présente dans les paramètres d'HikaShop Content Module quand ont utilise se code pour vérifier le contenu des modules.

function ModuleHaveContent($position) {
	$mods = JModuleHelper::getModules($position);
	if (count($mods) > 0 ) {
		foreach ($mods as $mod) {
			if (!empty(JModuleHelper::renderModule($mod)) )
				return true;
		}
	}
    return false;
}

J'ai tester avec le modChrome de Joomla celui par défaut qui fonctionne très bien et j'ais le même soucis.

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

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
7 years 9 months ago #263506

Bonjour,

HikaShop s'occupe d'afficher le contenu à l'intérieur du module.
Les éléments relatif au titre du module et à son affichage est fait par Joomla et non par HikaShop.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

  • Posts: 13
  • Thank you received: 0
7 years 9 months ago #263546

oui, ça je sais :lol:

Mais alors pourquoi je n'ai pas accès au paramètre du module header_tag ? Et seulement dans HikaShop Content Module.

Encore plus bizarre .....
Je met l'un en dessous de l'autre la liste des catégorie et le système de filtrage, deux modules d'hikashop. Quand je met en premier le module des catégories, les paramètres du module se répète et s'imbrique (pièce jointe moduleparams_1erposition.txt) et donc le paramètre header_tag n'est pas accessible (du moins dans la première arborescence). Et si je le met en deuxième position (donc a la suite du système de filtrage), les paramètres sont cohérant (pièce jointe moduleparams_2emposition.txt).

Deux solutions : problème dans le HikaShop Content Module, ou problème dans Joomla. Les tests on été effectué avec un Template par défaut de Joomla avec juste la modification pour tester le contenu de chaque module. Si je désactive la fonction pour tester le contenu des modules tout fonctionne normalement ... MAIS je ne peux pas correctement compter les modules, du coup ça me créer des colonnes vide et me ça me fou en l'air ma mise en page.

Attachments:

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

  • Posts: 82868
  • Thank you received: 13378
  • MODERATOR
7 years 9 months ago #263550

Bonjour,

Mais vous dites vous-même que l'affichage fonctionne comme il faut sans le code que vous rajoutez pour gérer l'affichage de la colonne ou pas dans votre template... c'est donc que le problème vient de ce code et non du module.
Je suppose que le soucis est lié au fait que vous demandiez le rendu du module deux fois au lieu d'une seule sur la même page.
Ni Joomla, ni HikaShop, ni le template n'est fait à la base pour gérer cela. Donc quelque chose doit mal fonctionner à cause de cela.
Mais la solution est surement de faire que les modules ne soient rendus qu'une seule fois et de faire la vérification et l'affichage avec le même HTML plutôt que de faire deux fois le rendu, une fois pour la vérification et une fois pour l'affichage.

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

Time to create page: 0.080 seconds
Powered by Kunena Forum