Fly06 Modules Search Plugin :: Fonctionnalités
Ce plugin est en tout point conforme aux plugins de type 'search' standards en terme de structure à l'exception notable des deux points suivants :
- Façon dont il construit les liens vers les pages du site
- Façon dont il récupère les contenu des modules
Mapping "Modules - Pages du site" : Contrairement aux contenus associés à des composants pour lesquels une page unique du site peut être construite, un même module peut être affiché dans plusieurs pages en fonction des items de menu pour lequel il doit être affiché (définis dans la configuration des modules).
La solution consiste donc à effectuer une requête croisée sur les trois tables suivantes :
- jos_modules : Contenus dans lesquels effectuer la recherche (champs 'content')
- jos_menus : Pages dans lesquelles ce contenu est affiché (champs 'id')
- jos_module_menus : Mapping modules <=> menus
Pour chaque enregistrement retournés par la requête, l'url de la page (href) est simplement :
index.php?Itemid=<id_du_menu>
L'application du JRoute_() dans le template des résultats permet finalement de récupérer l'url brute ou sef correspondante.
Traitements différenciés par types de modules : Le fonctionnement du plugin consiste à partitionner les modules en trois catégories correspondant à trois façons différentes de récupérer leurs contenus :
- Modules de type 'Html Personnalisé' (mod_custom) : recherche dans les champs content des modules
- Modules différents de mod_custom dont le cache est activé : recherche dans le cache des modules
- Modules différents de mod_custom dont le caché est inactif : recherche dans les contenus récupérés par exécution des modules (hors contexte)
Les modules dont le contenu dépend du contexte d'exécution doivent être retiré du scope de recherche en utilisant les paramètres de scope du module (cf. Configuration). Le système de cache actuel Joomla! ne permet pas de gérer ces modules correctement. Une tentative d'intégration au cache a été tenté avec la version 1.5.11 mais a semble-t-il été retiré depuis.
| < Précédent |
|---|


