Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
LISE, pas évidente l'histoire
#7
Hello,

je prend le train en route - pour ta première problématique, je ferai tout d'abord un affichage de sommaire des catégories :

Code :
{LISENomModule action=category}

Ceci affiche la liste des catégories. Tu crées un nouveau gabarit de catégories et dans ta boucle tu fais quelque chose du type :

Code :
{foreach $categories as $category}

<h2>{$category->name}</h2>

{LISENomModule category=$category->alias}

{/foreach}

Et tu peux alors créer un second gabarit pour le sommaire des items d'une catégorie.

A noter que j'ai un doute sur le {$category->alias} mais l'idée est là.

Pour cette problématique en tous cas, mieux vaut à mon avis faire deux appels imbriqués. Vu qu'il y a moins de catégories que d'items, cela prendra moins de requêtes.


Pour le {get_template_vars}, j'utilise généralement un bon vieux :

Code :
<pre>
{$mon_item|print_r}
</pre>

Le <pre> est uniquement si tu regardes le code dans le navigateur - si tu regardes le code source ou l'inspecteur de code, pas besoin.

Pour accéder à une valeur d'un champ défini, inutile de faire un foreach sur toutes les fielddefs - il suffit de faire :

Code :
{$item->fielddefs.[b]alias_champ[/b]->value}

Le foreach du gabarit d'exemple n'est là que pour tenir compte de toutes les définitions de champs - mais dans un contexte d'intégration, il est rare d'avoir besoin d'afficher tous ces champs de la même manière.

Enfin pour la charge, en effet il ne faut pas avoir de trop nombreux items X de nombreux champs définis et vouloir tout afficher sur la même page. J'ai un exemple sur l'un des sites de mes clients où j'ai 300 items x 25 champs, le tout sur une même page - ca prend 5-6 secondes sur un hébergement mutualisé moyen. La plupart du temps on utilisera une pagination, donc plus de problèmes, mais il arrive parfois qu'on en aie besoin. Pour notre cas client, nous sommes passés par un chargement asynchrone des données à l'aide de jQuery.

J'espère que cela t'aidera, ainsi que d'autres lecteurs / utilisateurs de LISE qui est très utile Wink


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)