url propres et mot-clé

Bonsoir
Je repose une question que j'avais déjà posé mais je n'ai pas trouvé encore la réponse.

Sur un site, j'affiche une page avec le choix d'un mot-clé fait par un formulaire comme cette page

http://www.villagesbotaniques.fr/spip.php?rubrique14=&id_mot=9

Pas de souci sauf si je passe en url propres. Dans ce cas, je reviens toujours sur la page de départ.

Une idée pour avoir la bonne page ET les url propres ?

Le 25 juin 08 à 21:56, Jean-Christophe Villeneuve a écrit :

Bonsoir
Je repose une question que j'avais déjà posé mais je n'ai pas trouvé encore la réponse.

Sur un site, j'affiche une page avec le choix d'un mot-clé fait par un formulaire comme cette page

http://www.villagesbotaniques.fr/spip.php?rubrique14=&id_mot=9

Pas de souci sauf si je passe en url propres. Dans ce cas, je reviens toujours sur la page de départ.

Une idée pour avoir la bonne page ET les url propres ?

ton url semble assez bizare :
spip.php?rubrique14=&id_mot=9
n'est pas la même page que
spip.php?rubrique14&id_mot=9

le =& sont peut être le symptôme de tes ennuis

pierre

Pierre Fiches a écrit :

Le 25 juin 08 à 21:56, Jean-Christophe Villeneuve a écrit :

Bonsoir
Je repose une question que j'avais déjà posé mais je n'ai pas trouvé encore la réponse.

Sur un site, j'affiche une page avec le choix d'un mot-clé fait par un formulaire comme cette page

http://www.villagesbotaniques.fr/spip.php?rubrique14=&id_mot=9

Pas de souci sauf si je passe en url propres. Dans ce cas, je reviens toujours sur la page de départ.

Une idée pour avoir la bonne page ET les url propres ?

ton url semble assez bizare :
spip.php?rubrique14=&id_mot=9
n'est pas la même page que
spip.php?rubrique14&id_mot=9

le =& sont peut être le symptôme de tes ennuis

pierre
_______________________________________________

Ah oui, je n'avais pas vu ce = disgracieux dans l'url
Mais je ne vois pas d'où il vient
Voici le formulaire utilisé

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
                 [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</option>]
             </BOUCLE_mot_famille>
         </select>

<button type="submit">Aller</button>
</form>

Le 26 juin 08 à 09:18, Jean-Christophe Villeneuve a écrit :

Pierre Fiches a écrit :

Le 25 juin 08 à 21:56, Jean-Christophe Villeneuve a écrit :

Bonsoir
Je repose une question que j'avais déjà posé mais je n'ai pas trouvé encore la réponse.

Sur un site, j'affiche une page avec le choix d'un mot-clé fait par un formulaire comme cette page

http://www.villagesbotaniques.fr/spip.php?rubrique14=&id_mot=9

Pas de souci sauf si je passe en url propres. Dans ce cas, je reviens toujours sur la page de départ.

Une idée pour avoir la bonne page ET les url propres ?

ton url semble assez bizare :
spip.php?rubrique14=&id_mot=9
n'est pas la même page que
spip.php?rubrique14&id_mot=9

le =& sont peut être le symptôme de tes ennuis

pierre
_______________________________________________

Ah oui, je n'avais pas vu ce = disgracieux dans l'url
Mais je ne vois pas d'où il vient
Voici le formulaire utilisé

<form name="familles" action="spip.php" method="get">

ça donne quoi avec action="#ENV{url}"

<input type="hidden" name="rubrique#ID_RUBRIQUE" />

et name="#URL_RUBRIQUE"

       <select name="id_mot" id="idselect" size="1">
           <option value="">Toutes les plantes</option>
           <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
               [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</option>]
           </BOUCLE_mot_famille>
       </select>

<button type="submit">Aller</button>
</form>

Jean-Christophe Villeneuve a écrit :

Ah oui, je n'avais pas vu ce = disgracieux dans l'url
Mais je ne vois pas d'où il vient
Voici le formulaire utilisé

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

        <select name="id_mot" id="idselect" size="1">
            <option value="">Toutes les plantes</option>
            <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
                [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</option>]

            </BOUCLE_mot_famille>
        </select>

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

Pierre Fiches a écrit :

confused.gif

Yoann NOGUES (zerax) a écrit :

Jean-Christophe Villeneuve a écrit :

Ah oui, je n'avais pas vu ce = disgracieux dans l'url
Mais je ne vois pas d'où il vient
Voici le formulaire utilisé

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

        <select name="id_mot" id="idselect" size="1">
            <option value="">Toutes les plantes</option>
            <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
                [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</option>]

            </BOUCLE_mot_famille>
        </select>

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

et je laisse le champ hidden tel quel ?

si c'est le cas, ça ne change rien et pareil si je mets un autre numéro de rubrique ou si je l'enlève

si j'enlève le champ hidden : retour à la page sommaire

Jean-Christophe Villeneuve a écrit :

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

et je laisse le champ hidden tel quel ?

il faut l'enlever

si c'est le cas, ça ne change rien et pareil si je mets un autre numéro de rubrique ou si je l'enlève

si j'enlève le champ hidden : retour à la page sommaire

avec quelle url ?

Yoann NOGUES (zerax) a écrit :

Jean-Christophe Villeneuve a écrit :

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

et je laisse le champ hidden tel quel ?

il faut l'enlever

si c'est le cas, ça ne change rien et pareil si je mets un autre numéro de rubrique ou si je l'enlève

si j'enlève le champ hidden : retour à la page sommaire

avec quelle url ?

ok je l'ai viré et j'ai mis <form name="familles" action="#URL_RUBRIQUE{14}" method="get">
et j'obtiens
.../spip.php?id_mot=21
avec retour vers sommaire

Le 26 juin 08 à 17:14, Jean-Christophe Villeneuve a écrit :

Yoann NOGUES (zerax) a écrit :

Jean-Christophe Villeneuve a écrit :

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

et je laisse le champ hidden tel quel ?

il faut l'enlever

si c'est le cas, ça ne change rien et pareil si je mets un autre numéro de rubrique ou si je l'enlève

si j'enlève le champ hidden : retour à la page sommaire

avec quelle url ?

ok je l'ai viré et j'ai mis <form name="familles" action="#URL_RUBRIQUE{14}" method="get">
et j'obtiens
.../spip.php?id_mot=21
avec retour vers sommaire

je pense qu'il faudrait avoir toutes les données pour comprendre ton problème.
parce que sur le principe de faire un script de recherche par mot avec des url propre, ToutEnSpip il n'y a pas de raison que ça le fasse pas.
pierre

Pierre Fiches a écrit :

Le 26 juin 08 à 17:14, Jean-Christophe Villeneuve a écrit :

Yoann NOGUES (zerax) a écrit :

Jean-Christophe Villeneuve a écrit :

Ca vient simplement de ton champ hidden.
Autre solution :
<form name="familles" action="#URL_RUBRIQUE{14}" method="get">

et je laisse le champ hidden tel quel ?

il faut l'enlever

si c'est le cas, ça ne change rien et pareil si je mets un autre numéro de rubrique ou si je l'enlève

si j'enlève le champ hidden : retour à la page sommaire

avec quelle url ?

ok je l'ai viré et j'ai mis <form name="familles" action="#URL_RUBRIQUE{14}" method="get">
et j'obtiens
.../spip.php?id_mot=21
avec retour vers sommaire

je pense qu'il faudrait avoir toutes les données pour comprendre ton problème.
parce que sur le principe de faire un script de recherche par mot avec des url propre, ToutEnSpip il n'y a pas de raison que ça le fasse pas.
pierre
_______________________________________________

Ok, voici les données
Sur un spip 1.9.2.d, j'ai une rubrique avec des articles.
A chaque article est affecté un mot-clé appartenant au groupe "familles" par exemple
J'ai un squelette particulier qui affiche tous les articles de cette rubrique avec une pagination
Ce squelette est appelé via le plugin "squelette par mot-clé"
J'ai dans ce squelette un formulaire qui permet de choisir un mot-clé puis d'afficher les seuls articles correspondant à ce mot-clé

Voilà le code de ce formulaire :
<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS) {type=famille}{par titre} >
                 [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'
selected="selected"',''})]>(#TITRE)</option>]
             </BOUCLE_mot_famille>
         </select>

<button type="submit">Aller</button>
</form>

Tout fonctionne très bien avec les urls classiques de spip, en dehors du fait que j'obtiens une url du style
http://monsite/spip.php?rubrique14=&id_mot=9
avec un = de trop mais tout fonctionne

Le souci est que si je passe en url propres, ça ne fonctionne pas, le clic sur le bouton submit me renvoie la page avec tous les articles.

Voir le problème :
http://www.villagesbotaniques.fr/spip.php?rubrique14

Voilà
Je ne sais pas si tu veux d'autres précisions.

Jean-Christophe Villeneuve <jcvilleneuve@cegetel.net> wrote:

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS) {type=famille}{par titre} >
                 [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'
selected="selected"',''})]>(#TITRE)</option>]
             </BOUCLE_mot_famille>
         </select>

<button type="submit">Aller</button>
</form>

et
<form name="familles" action="#SELF" method="get">
sans le champ de type hidden

ou alors tes soucis proviennent peut-être du mélange entre des urls
"spip" compactes du type spip.php?rubrique14 et la même en éclaté
spip.php?page=rubrique&id_rubrique=14

que donne
<form name="famille"
action="spip.php?page=rubrique&id_rubrique=#ID_RUBRIQUE method="get">

ou l'équivalent dans le champ hidden
--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Le 27 juin 08 à 18:28, Jean-Christophe Villeneuve a écrit :

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

peux tu tenter cela :
<form name="familles" action="#URL_PAGE{rubrique}" method="get">
<input type="hidden" name="id_rubrique" value="[(#ID_RUBRIQUE)]" />

pierre

Pierre Fiches a écrit :

Le 27 juin 08 à 18:28, Jean-Christophe Villeneuve a écrit :

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

peux tu tenter cela :
<form name="familles" action="#URL_PAGE{rubrique}" method="get">
<input type="hidden" name="id_rubrique" value="[(#ID_RUBRIQUE)]" />

pierre
_______________________________________________
l

Je tente tout ce que tu veux

Ta proposition donne l'urk
http://monsite/spip.php?id_rubrique=134&id_mot=14
qui renvoie à la page sommaire

Pierre Fiches a écrit :

Le 27 juin 08 à 18:28, Jean-Christophe Villeneuve a écrit :

<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

peux tu tenter cela :
<form name="familles" action="#URL_PAGE{rubrique}" method="get">
<input type="hidden" name="id_rubrique" value="[(#ID_RUBRIQUE)]" />

pierre
_______________________________________________
l

Je tente tout ce que tu veux

Ta proposition donne l'url
http://monsite/spip.php?id_rubrique=134&id_mot=14
qui renvoie à la page sommaire

Dominique a écrit :

Jean-Christophe Villeneuve  wrote:

  
<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS) {type=famille}{par titre} >
                 [<option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}|?{'
 selected="selected"',''})]>(#TITRE)</option>]
             </BOUCLE_mot_famille>
         </select>

<button type="submit">Aller</button>
</form>
    

et 
<form name="familles" action="#SELF" method="get">
sans le champ de type hidden
  

ça donne
et renvoie à la page sommaire idem me donne l’url

Jean-Christophe Villeneuve <jcvilleneuve@cegetel.net> wrote:

> peux tu tenter cela :
> <form name="familles" action="#URL_PAGE{rubrique}" method="get">
> <input type="hidden" name="id_rubrique" value="[(#ID_RUBRIQUE)]" />
>
> pierre
> _______________________________________________
> l
>
Je tente tout ce que tu veux

Ta proposition donne l'urk
http://monsite/spip.php?id_rubrique=134&id_mot=14
qui renvoie à la page sommaire

C'est bizare #URL_PAGE{rubrique} devrait générer un
spip.php?page=rubrique

alors que donne ?
<form name="familles"
action="#URL_PAGE{rubrique,id_rubrique=#ID_RUBRIQUE}" method="get">
et pas de champ de type hidden

question ton script est-il dans la page ? est-ce que tu passes bien les
paramètres si c'est dans un inclure ?? est-ce que c'est un modèle ?
J'ai bien vu ton squelette de rubrique mais j'ai pas réussi à voir
comment tu appelais ton menu de choix pour les plantes.
Est-ce un squelette particulier à la rubrique 14, un plugin ???
Je crois qu'il faut les infos complètes au point où on en est.

Si je peux me permettre pour ton squelette de rubrique (ou article) tu
devrais faire une seule boucle englobante sur les rubriques comme cela
tu estr anquille pour la suite et cela simplifie les choses et donne une
meilleure gestion par spip des erreurs 404

#CACHE{...}
<BOUCLE_rubrique (RUBRIQUES) {id_rubrique}>
<html>
<head>

</head>
<body>

</body>
</html>
</BOUCLE_rubrique>

comme cela tu n'es plus obligé de refaire une requete à chaque fois. par
exemple ta partie :
<div id="ombreportee">
<BOUCLE_titre1 (RUBRIQUES) {id_rubrique}>
[(#TITRE|supprimer_numero)]
</BOUCLE_titre1>
</div>
<div id="titrepage">
<BOUCLE_titre2 (RUBRIQUES) {id_rubrique}>
[(#TITRE|supprimer_numero)]
</BOUCLE_titre2>
</div>

devient

<div id="ombreportee">
[(#TITRE|supprimer_numero)]
</div>
<div id="titrepage">
[(#TITRE|supprimer_numero)]
</div>

Ce qui veut dire 2 requètes en moins sur la base.
idem pour le reste en dessous tu passes direct à ta requète sur les
articles vu que dans toute ta page tu es bien dans le contexte de la
rubrique courante...

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Dominique a écrit :

Jean-Christophe Villeneuve  wrote:

  
peux tu tenter cela :
<form name="familles" action="#URL_PAGE{rubrique}" method="get">
<input type="hidden" name="id_rubrique" value="[(#ID_RUBRIQUE)]" />

pierre
_______________________________________________
l

      
Je tente tout ce que tu veux

Ta proposition donne l'urk

qui renvoie à la page sommaire
    

C'est bizare #URL_PAGE{rubrique} devrait générer un
spip.php?page=rubrique

alors que donne ?
<form name="familles"
action="#URL_PAGE{rubrique,id_rubrique=#ID_RUBRIQUE}" method="get">
et pas de champ de type hidden 

question ton script est-il dans la page ? est-ce que tu passes bien les
paramètres si c'est dans un inclure ?? est-ce que c'est un modèle ?
J'ai bien vu ton squelette de rubrique mais j'ai pas réussi à voir
comment tu appelais ton menu de choix pour les plantes.
Est-ce un squelette particulier à la rubrique 14, un plugin ???
Je crois qu'il faut les infos complètes au point où on en est.

  

J’obtiens encore une url du type
et renvoi vers page sommaire Le script est bien dans la page et ne passe pas par un inclure Ce n’est pas un modèle non plus La rubrique a bien son squelette spécifique et j’utilise le plugin « squelette par mot clé » qui va chercher le squelette avec le mot-clé « plantes » ou « familles » pour le classement de toutes les plantes par familles Et merci du conseil pour la boucle englobante, c’est en effet plus simple.

Jean-Christophe Villeneuve <jcvilleneuve@cegetel.net> wrote:

La rubrique a bien son squelette spécifique et j'utilise le plugin
"squelette par mot clé" qui va chercher le squelette avec le mot-clé
"plantes" ou "familles" pour le classement de toutes les plantes par
familles

C'est probablement de là que proviennent les pb.
en fait ta page n'est pas
spip.php?page=rubrique&id_rubrique=14
mais
spip.php?page=rubrique-plantes&id_rubrique=14
et c'est peut-être le mécanisme du plugin qui est à mettre en cause

Dans le cas présent est-ce que ce ne serait pas plus simple de garder un
seul squelette rubrique.html et à l'intérieur suivant le mot clé attaché
à la rubrique, d'inclure une noisette qui va bien pour afficher ce que
tu veux ? Pas besoin ainsi en cas d'évolution de maintenir plusieurs
squelettes qui sont souvent proches par leur architecture...

<BOUCLE_type_rubrique (MOTS){id_rubrique}{type=type_rubrique}{0,1}>
[(#TITRE|=={plantes}|?{' ',''})
[(#INCLURE{fond=inc-plantes}{id_rubrique}{id_mot})]]
</BOUCLE_type_rubrique>

et dans ta noisette inc-plantes.html ton bout de squelette

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>

  <BOUCLE_articles_mots(ARTICLES){id_rubrique}>
    <BOUCLE_mots_rubrique(MOTS){type=famille}{id_article}{doublons
mots}>
    </BOUCLE_mots_rubrique>
  </BOUCLE_articles_mots>

<div id="choix-plantes">
<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
                 [<option value="#ID_MOT"
[(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</optio
n>]
             </BOUCLE_mot_famille>

         </select>

<button type="submit">Aller</button>
</form>
</div>

ainsi si ta rubrique est rattachée au mot clé "plantes" du groupe
"type_rubrique"
inc-plantes sera inclus à l'endroit voulu...

Cela me semble plus simple que le plugin squelette par mot clés et ne
nécessite pas de maintenir plusieurs squelettes

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Dominique a écrit :

Jean-Christophe Villeneuve  wrote:

  
La rubrique a bien son squelette spécifique et j'utilise le plugin 
"squelette par mot clé" qui va chercher le squelette avec le mot-clé 
"plantes" ou "familles" pour le classement de toutes les plantes par 
familles
    

C'est probablement de là que proviennent les pb.
en fait ta page n'est pas 
spip.php?page=rubrique&id_rubrique=14
mais 
spip.php?page=rubrique-plantes&id_rubrique=14
et c'est peut-être le mécanisme du plugin qui est à mettre en cause

Dans le cas présent est-ce que ce ne serait pas plus simple de garder un
seul squelette rubrique.html et à l'intérieur suivant le mot clé attaché
à la rubrique, d'inclure une noisette qui va bien pour afficher ce que
tu veux ? Pas besoin ainsi en cas d'évolution de maintenir plusieurs
squelettes qui sont souvent proches par leur architecture...

<BOUCLE_type_rubrique (MOTS){id_rubrique}{type=type_rubrique}{0,1}>
[(#TITRE|=={plantes}|?{' ',''})
[(#INCLURE{fond=inc-plantes}{id_rubrique}{id_mot})]]
</BOUCLE_type_rubrique>

et dans ta noisette inc-plantes.html ton bout de squelette

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>

  <BOUCLE_articles_mots(ARTICLES){id_rubrique}>
    <BOUCLE_mots_rubrique(MOTS){type=famille}{id_article}{doublons
mots}>
    </BOUCLE_mots_rubrique>
  </BOUCLE_articles_mots>

<div id="choix-plantes">
<form name="familles" action="spip.php" method="get">
<input type="hidden" name="rubrique#ID_RUBRIQUE" />

         <select name="id_mot" id="idselect" size="1">
             <option value="">Toutes les plantes</option>
             <BOUCLE_mot_famille(MOTS){!doublons mots}{par titre} >
                 [<option value="#ID_MOT"
[(#ENV{id_mot}|=={#ID_MOT}|?{'selected="selected"',''})]>(#TITRE)</optio
>]
             </BOUCLE_mot_famille>

         </select>

<button type="submit">Aller</button>
</form>
</div>

ainsi si ta rubrique est rattachée au mot clé "plantes" du groupe
"type_rubrique"
inc-plantes sera inclus à l'endroit voulu...
  

oui mais il faudrait virer le reste
Mais la piste semble prometteuse.
Je vais creuser ça.