Diminuer la taille des caractères Augmenter la taille des caractères | BP Eminet, Développement et formation Drupal, formation WordPress, formation SPIP, plate-forme collaborative Claroline, Drupal, ergonomie, accessibilité, multilinguisme | http://www.p-interactif.com | Accueil | Imprimer

Accueil « La notion de "modèle SPIP" « Retour à Faire une recherche sur un groupe de mot-clés

Faire une recherche sur un groupe de mot-clés

Considérons le modèle suivant : groupemot.html à placer dans le dossier squelettes/modeles du site.

Il propose - dans un contenu - la recherche sur les mots-clés d’un groupe de mots-clés sous forme d’un pop-up qui propose une sélection des mots-clés du groupe qui sont associé à - au moins - 1 article.

Appel dans un contenu par : ID est le numéro d’ID du groupe de mots-clés

Il suppose que la gestion des mots-clés soit prévue dans la configuration du site.

Il suppose aussi l’existence d’un squelette mot.html qui permet d’afficher les contenus associé à un mot-clé sélectionné.

Pour la gestion du pop-up placer le code suivant avant le </head> dans l’entete du site.

<!-- Javascript pour popup dans une boucle -->
<script language="JavaScript" type="text/JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
 if (restore) selObj.selectedIndex=0;
}
</script>

Le modèle

[(#REM) modele qui affiche un pop-up de recherche sur les mots-cles d'un groupe de mots-cles ]
<?php
// appel par <groupemot|idgroupe=xx>
// xx est l'ID du groupe de mot-cle
?>

<BOUCLE_groupemots(GROUPES_MOTS){id_groupe=#ENV{idgroupe}}>
                                        <form name="form" action="">
[(#REM) popup d'acces direct aux mots cles du groupe ]
                                        <select name="menu" class="popup" onChange="MM_jumpMenu('parent',this,1)">
                                        [<option selected>(#TITRE|supprimer_numero)</option>]
                                        <BOUCLE_popup(MOTS){id_groupe=#ENV{idgroupe}}{par num titre}>
[(#REM) On regarde s'il existe au moins un article qui a le mot-cle ]
                                        <BOUCLE_articles5(ARTICLES){id_mot}{0,1}>
[(#REM) Si oui on affiche le titre du mot cle - attention utilisation d'une balise non ambigue ]
                                        [<option value="#URL_MOT">(#_popup:TITRE|supprimer_numero)</option>]
                                        </BOUCLE_articles5>
[(#REM) Si non le mot-cle n'est pas affiche ]
                                        <//B_articles5>
                                        </BOUCLE_popup>
                                        </select>
[(#REM) fin popup d'acces direct aux mots-cles du groupe ]
                                        </form>
</BOUCLE_groupemots>

On peut enchaîner la recherche sur plusieurs groupes ?
Oui exemple :

<groupemot|idgroupe=2>
<groupemot|idgroupe=3>
<groupemot|idgroupe=4>

Pour fixer la largeur du pop-up rajouter dans la CSS :

/* style pour popup */
.popup {
 width: 400px;
}
Lire aussi
  • Quel est l’intérêt d’un modèle ?
  • Voici comment je l’explique dans mes formations.
  • Le resumé des articles d’une rubrique
  • Considérons le modèle suivant : rubrique_resume.html à placer dans le dossier squelettes/modeles (...)
  • Le mini-plan d’une rubrique
  • Considérons le modèle suivant : rubrique_sommaire.html à placer dans le dossier squelettes/modeles (...)
  • Faire un glossaire
  • Considérons le modèle suivant : rubrique_sousrub.html à placer dans le dossier squelettes/modeles (...)
  • Un flux de syndication dans un contenu
  • Ce modèle permet d’afficher des flux de syndication dans n’importe quel contenu du site. (...)
  • Protéger un adresse email par modèle
  • Placer dans le contenu d’un site : Envoyer un mail est tout à fait correct, mais l’adresse (...)
  • Afficher des articles par mot-clé
  • Le modèle suivant permet d’afficher des articles qui sont associés à un mot-clé. Il suppose (...)
  • Signaler une nouveauté
  • Ce modèle est simpliste, il permet de signaler une nouveauté en ajoutant un petit visuel devant (...)