ni pagination ni scroll infini

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
6 months 1 week ago #360928

-- HikaShop version -- : 5.0.4
-- Joomla version -- : 5.1
-- PHP version -- : 8.1

Bonjour
Comment faire dans le listing ou listing_div. pour. ne pas utiliser la pagination ni le scroll infini (je me sers de loading lazy et de css flex ou grid pour repartir )

$total = $this->pageInfo->elements->total;
$count = count($this->rows);

le total est bon mais je veux que tout soit charge dans les rows et non pas uniquement le count(row) de la config
car si je supprime la pagination et le scroll infini du listing ne sont charge que le $count

merci

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
6 months 1 week ago #360932

Bonjour,

Ce n'est pas possible je pense.
D'après ce que je comprends vous ne voulez pas de pagination mais que tout les éléments soient chargés sur le listing.
Pour cela, c'est lors du chargement des éléments depuis MySQL qu'il faut agir, et donc avant l'affichage des vues.
Ce que vous voulez faire, c'est simplement augmenter le nombre de lignes dans l'onglet "Products options" de votre élément de menu.
Par exemple, si vous avez un élément de menu listant vos produits sur 10 pages de 20 produits chacune avec 4 colonnes, cela veut dire que vous avez 5 lignes * 4 colonnes de configuré. Si vous passez cela à 50 lignes * 4 colonnes, il n'y aura ni pagination ni infinite scroll, et tous les produits seront affichés d'un coup.

Notez cependant que :
- le but de lazy loading, c'est de charger les fichiers (les images principalement) dont la page à besoin plus tard, ce qui permet d'afficher le morceau visible de la page sans attendre que toutes les images soient récupérer par votre navigateur.
- le but de CSS flex / grid, c'est d'avoir un affichage en grille ligne/colonne.
- le but de la pagination / infinite scroll, c'est de ne pas charger les données de tous les éléments d'un coup et de limiter cela à quelques dizaines par page (ou par chargement de l'infinite scroll).

Ce que je veux c'est que :
- le CSS flex / grid n'aide en rien à ne pas avoir de pagination / infinite scroll
- le lazy loading va améliorer les performances d'affichage entre le moment où le navigateur récupère l'HTML de la page et le moment où la page est affichée à l'utilisateur
- la pagination / infinite scroll va améliorer les performances entre le moment où vous demandez l'affichage d'une page et le moment où le navigateur récupère l'HTML de la page.
Donc tout cela est complémentaire et avoir du lazy loading ne permet pas de se passer de pagination. Si vous essayez d'afficher 2000 produits sur une page, avec lazy loading ou pas, ce qui va surement se passer, c'est que votre serveur moulinera pendant un moment jusqu'à retourner une page d'erreur car il aura consommé trop de mémoire ou trop de temps CPU pour générer l'HTML de la page.

The following user(s) said Thank You: erickb

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
6 months 1 week ago #360938

merci , j'ai un max de 50 produits par catégories

Last edit: 6 months 1 week ago by erickb.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362362

j ai bien mis 12 lignes * 6 colonnes dans l'admin mais c n'est pas du tout pris en compte, ou dans certain cas oui et d'autres non

est il possible de forcer ces variables dans listing.php ou listing_div.php ? du genre :

$this->columns = 6;
$this->rows = 12;

merci

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362363

Bonjour,

Oui, vous pouvez forcer les colonnes. Pour les lignes, cela ne va rien changer car c'est pris en compte lors du chargement des produits avec la requête MySQL, donc avant votre forçage dans l'override de la vue.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362374

dans la table config
hikarss_element = 100

dans TPL/product/listing_div.php
//$columns = max((int)$this->params->get('columns'), 1);
$columns = 100;

dans la config du module tout est sélectionne (donc 6X12)

on dirait que c'est impossible d'aller au dela de 72 puisqu'on ne peut pas écrire dans l'admin dans les cases row column


et il y a certainement un bug car si j'ai bien 72 elements pour un lien de menu direct vers une catégorie ca marche , mais si c'est un listing de catégorie , et que je clique sur une catégorie du listing je n'ai que 8 elements et non 72 , meme si dans la config 72 elements sont sélectionnés

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362377

Bonjour,

Dans la configuration, ce sont les options par défaut pour de nouveaux modules/éléments de menu.
Et donc, lors d'un affichage sur le frontend, les valeurs de la table hikashop_config ne sont pas prises en compte.
Le $this->params->get('columns') vient directement de la table où sont stockés les options des éléments de menu / modules par Joomla.

Encore une fois, vous pouvez augmenter les valeurs comme vous le voulez dans votre override de vue, mais les données des produits et catégories sont chargés avant. Et heureusement d'ailleurs. Sinon, cela voudrait dire que HikaShop devrait charger tous les éléments possibles, pour ensuite filtrer et n'afficher que les éléments de la page courante dans la vue, ce qui ferait surement planter la page à cause d'une utilisation trop grande de la mémoire et / ou du CPU.
Donc, comme je disais, vous ne pouvez pas augmenter le nombre d'éléments chargés avec un override de vue. Un autre $this->params->get('columns') (et pareil pour les rows) est fait dans le view.html.php lors de la requête MySQL avant le chargement des vues.

Si vous voulez faire cela, il faut développer un plugin system pour précharger une copier modifiée de la classe du view.html.php où est faites la requête MySQL.

Mais je pense que ce n'est pas par là qu'il faut prendre le problème. Vous dites que vous n'arrivez pas à "écrire dans l'admin dans les cases row column". Je ne vois pas de quoi vous voulez parler. Pourriez vous décrire ce que vous voulez dire avec des captures d'écran ?
Je n'ai personnellement pas de problème à créer un élément de menu avec 4 colonnes et 999 lignes. Je peux utiliser les boutons plus et moins, ou directement écrire la valeur que je veux dans les deux champs :
i.imgur.com/sqFRN7L.png
Cet élément de menu affichera un listing avec 3996 catégories par page sur le frontend, ce qui est énorme.

je clique sur une catégorie du listing je n'ai que 8 elements et non 72

Ca, cela veut dire que dans les options de l'élément de menu qui est utilisé sur la page courante, dans l'onglet Products options ou Categories options vous avez 8 éléments et non 72. Donc il faut voir quel est l'élément de menu utilisé sur cette page, pour ensuite vérifier ces options dans le gestionnaire de menus de Joomla. Encore une fois, la configuration d'HikaShop n'intervient pas à cet endroit.

The following user(s) said Thank You: erickb

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362381

sur votre capture d'écran il y a bien 4 X 999. lisible, chez moi que ce soit sur safari ou brave il est tres dur de voir ce qu'on écrit meme avec

.input-append.has-success{
	input{
		background-color: white !important;
		color:black !important;
		font-size:14px !important;
		font-weight: bold !important;
		line-height:40px !important ;
		width:40px !important;
		height:40px !important ;
		text-align: center !important;
		padding:0 !important;
	}
}

de plus je confirme que si on clique sur un item de menu category de produits sa marche mais si on cree un listing de category et qu'on clique sur une des catégorie alors le scroll infini repasse a 8 pour les produits meme si row = 100 et commun = 100

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362387

Bonjour,

Ok, donc c'est un problème de CSS dans le backend ?

Pourriez vous fournir, via notre formulaire de contact, l'URL de la page en question pour votre second point et un accès backend pour étudier la situation ?
www.hikashop.com/support/contact-us.html

Ca devrait nous permettre de trouver ce qui cloche.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362389

je vous ai envoye une demande par formulaire de contact
une capture d'écran attachée pour illustrer le probleme
vous trouvez ca dans admin > menus > menu modele n'importe quel item

merci

Attachments:

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362399

Bonjour,

Je vois le souci sur votre site.
Vous avez fait un override du fichier media/com_hikashop/css/backend_default.css pour media/com_hikashop/css/backend_custom.css avec HikaShop 4.2.1
Du coup, sur votre backend, il vous manque tout le CSS que nous avons rajouté dans media/com_hikashop/css/backend_default.css depuis la 4.2.1, et notamment, le CSS pour corriger l'affichage suite aux changements fait par Joomla dans le backend pour Joomla 5.
Une solution serait de récupérer le CSS qui a été changé / ajouté dans le fichier par défaut dans votre fichier custom.

Ce que je vous recommande, c'est de garder le CSS par défaut d'HikaShop dans l'option "CSS backend" de la page de configuration d'HikaShop. Et si vous voulez rajouter du CSS, ajoutez-le dans le user.css de Cassiopeia:
docs.joomla.org/J4.x:Cassiopeia_Template...Customise_Cassiopeia
Ainsi, lorsque vous mettrez à jour HikaShop, vous aurez automatiquement les ajouts de CSS que nous faisons pour les nouvelles fonctions, et le support des futures versions de Joomla.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362400

ok
merci

cest aussi pour ca que je veux simplifier au maximum les override sinon avec les maj ca devient vite l enfer

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362405

donc tout marche sauf si on cree un listing de category et qu'on clique sur une des catégorie alors le nombre de produit est de 8 meme si row = 12 et columns = 12 pour les produits
je ne sais pas ou il va cherche ce 8, mais apparent c'est un bug
si je cree un lien de catégorie de produit tout marche, mais pas dans un listing de catégorie

et au cas ou j'a bien mis a jour le hikashop default menu avec 12X12 partout

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362406

si je fais dans product listing_div

$columns = max((int)$this->params->get('columns'), 1);
$r = count($this->rows);
echo "<h1>columns : $columns  count : $r<h1>";
le compte est bon pour n importe quel listing de produit de category , avec un item de menu pour une seule catégorie, j'ai bien COLUMNS : 12 COUNT : 144. comme dans ma config 12X12
mais si je clique sur un listing de categories (module ou menu) j'ai toujours pour les produits ; COLUMNS : 1 COUNT : 8

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362412

nicolas wrote: Bonjour,
Ce que je vous recommande, c'est de garder le CSS par défaut d'HikaShop dans l'option "CSS backend" de la page de configuration d'HikaShop. Et si vous voulez rajouter du CSS, ajoutez-le dans le user.css de Cassiopeia:


dans le backend_custom.css
@import url(variables.css);
@import url(backend_default.css);
@import url(custom.css);

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362423

Oui, vous pouvez utiliser un import du backend_default.css dans votre backend_custom. Cela revient au même. L'avantage, c'est que cela continuera de fonctionner même si vous changez de template dans le backend (ou si une mise à jour Joomla change le template du backend comme ce fut le cas avec le passage de Isis à Atum).

Concernant le nombre d'éléments dans le listing, il n'y a pas de bug. C'est juste votre configuration d'HikaShop qui fait cela.
Vous avez activé l'option "Forcer les URLs canoniques sur les listings" de la configuration page. Donc, au lieu de générer l'URL des catégories dynamiquement, HikaShop va utiliser l'URL canonique de la catégorie dans les listings.
Par exemple, sur la page votresite.fr/chaussures-grandes-tailles-femmes-marques vous avez par exemple la marque "A SAKO" avec l'URL votresite.fr/1233-chaussures-marque-a-sako qui vient de l'URL canonique de la marque. Or, l'URL par défaut, si HikaShop la génère dynamiquement serait: votresite.fr/chaussures-grandes-tailles-femmes-marques/1233-chaussures-marque-a-sako
Si vous utilisez l'URL générée dynamiquement par HikaShop, vous verrez bien votre listing de produits de cette marque avec tous les produits chargés d'un coup.
En fait, avec votre URL canonique, Joomla demande à HikaShop de générer le listing des produits avec l'élément de menu par défaut de votre site, c'est à dire l'élément de menu avec le nom "Accueil". Or, cet élément de menu est justement configuré pour avec un listing avec 8 produits par page:
i.imgur.com/JHWo3Qm.png

The following user(s) said Thank You: erickb

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362425

mais si je change ca je perds tout le référencement
donc je vais tout simplement mettre le listing d'accueil a 12X12 et régler la page d'accueil différemment , en fait c'était tout simple
merci encore pour l info

Last edit: 3 months 3 weeks ago by erickb.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 months 3 weeks ago #362426

Non, vous ne perdrez pas le référencement.
Vous pouvez laisser l'URL canonique de vos catégories tel quelle. C'est elle qui fait le référencement.
L'option "Forcer les URLs canoniques sur les listings", c'est uniquement pour que les utilisateurs normaux du site passent par la même URL que celle référencée.

Mais oui, vous pouvez aussi changer les options de l'élément de menu par défaut. Ca fonctionnera également, et ça vous permettra de garder l'URL canonique pour les utilisateurs du site.

The following user(s) said Thank You: erickb

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

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
3 months 3 weeks ago #362432

merci beaucoup

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

Time to create page: 0.093 seconds
Powered by Kunena Forum