trouver un mot clé en remontant la hiérarchie rubrique...

Bonjour,

En vue d'adopter une solution de remplacement a la disparition du plugin squelette par mots clés en SPIP 2, j'utilise les fichiers article.HTML et rubrique.html pour retrouver le mot cle nécessaire.
Mais voilà, j'aimerai me compliquer la tâche en retrouvant le mot clé (groupe défini) en remontant mon arborescence rubrique. Autrement dit, si ma rubrique courante n'a pas le mot clé alors je passe a la rubrique juste au dessus et ainsi de suite.

Une idée pour cette réalisation?

Cordialement,

Teddy Payet
http://www.maloya.org/
http://www.vileso-studio.com/

Payet Teddy a écrit :

Bonjour,

En vue d'adopter une solution de remplacement a la disparition du plugin squelette par mots clés en SPIP 2, j'utilise les fichiers article.HTML et rubrique.html pour retrouver le mot cle nécessaire.
Mais voilà, j'aimerai me compliquer la tâche en retrouvant le mot clé (groupe défini) en remontant mon arborescence rubrique. Autrement dit, si ma rubrique courante n'a pas le mot clé alors je passe a la rubrique juste au dessus et ainsi de suite.

Salut,

si j'ai bien compris, à vue de nez je passerai par un filtre perso avec une fonction récursive qui remonte l'arbo jusqu'à trouver (ou pas) le mot clé.

J'utilise une fonction comme ça (en 1.9.2) dans un petit plugin maison pour chercher un mot clé par son titre (ce n'est pas un filtre, mais c'est facilement adaptable) :

function motcle_in_arbo_rubrique($motcle, $id_rubrique) {
  $res = spip_abstract_fetsel(
    'm.titre, r.id_parent',
    'spip_rubriques r left join spip_mots_rubriques mr using(id_rubrique) left join spip_mots m using(id_mot)',
    'r.id_rubrique = '._q($id_rubrique)
  );
  if( $res['titre'] == $motcle ){
    return true;
  } else if( $res['id_parent']>0 ){
    return motcle_in_arbo_rubrique($motcle, $res['id_parent']);
  } else {
    return false;
  }
}

--
Nico D.

bonjour,
pour la rubrique j’ai utilisé le code suivant ( sans fonction)

#CACHE{86400} [(#REM) aiguillage en fonction du mot clé] [(#REM) la rubrique ou une rubrique de sa hierarchie ( prééminence à la plus proche ) a un mot clé dans Squelettes_rubrique ] [(#REM)pas de mot clé dans Squelettes_rubriques]

</BOUCLE_rubrique_principal>
<:aucune_rubrique:>
<//B_rubrique_principal>

pour l’article

[(#REM) choix du squelette de l’article ]
<BOUCLE_article_principal(ARTICLES) {id_article}>
[(#REM) l’article a un mot clé squelette]
<BOUCLE_sqart(MOTS) {id_article}{type=Squelettes_article} {0,1}>
<INCLURE{fond=article-#TITRE}{id_article}{self=#SELF}{lang} >
</BOUCLE_sqart>
</B_sqart>
[(#REM)pas de mot clé dans Squelettes_articles …on cherche dans la hiérarchie]
<BOUCLE_hi(HIERARCHIE) {id_article} {0,1}{type_mot=Squelettes_rubrique} {inverse}>
[(#REM) une rubrique de sa hierarchie ( prééminence à la plus proche ) a un mot clé dans Squelettes_rubrique ]
<BOUCLE_sqhi(MOTS) {id_rubrique} {0,1}{type=Squelettes_rubrique} >
<INCLURE{fond=article-#TITRE}{id_article}{self=#SELF}{lang} >
</BOUCLE_sqhi>
</BOUCLE_hi>
</B_hi>
[(#REM)pas de mot clé dans Squelettes_rubriques]
<INCLURE{fond=article-normal}{id_article}{self=#SELF}{lang} >
<//B_hi>
<//B_sqart>

</BOUCLE_article_principal>
<:aucun_article:>
<//B_article_principal>

est-ce plus efficace, plus rapide ou plus complet avec la fonction ?

Message du 22/04/09 17:20
De : « Nico D. »
A : spip@rezo.net
Copie à :
Objet : Re: [Spip] trouver un mot clé en remontant la hiérarchie rubrique…

Payet Teddy a écrit :

Bonjour,

En vue d’adopter une solution de remplacement a la disparition du plugin
squelette par mots clés en SPIP 2, j’utilise les fichiers article.HTML
et rubrique.html pour retrouver le mot cle nécessaire.
Mais voilà, j’aimerai me compliquer la tâche en retrouvant le mot clé
(groupe défini) en remontant mon arborescence rubrique. Autrement dit,
si ma rubrique courante n’a pas le mot clé alors je passe a la rubrique
juste au dessus et ainsi de suite.

Salut,

si j’ai bien compris, à vue de nez je passerai par un filtre perso avec
une fonction récursive qui remonte l’arbo jusqu’à trouver (ou pas) le
mot clé.

J’utilise une fonction comme ça (en 1.9.2) dans un petit plugin maison
pour chercher un mot clé par son titre (ce n’est pas un filtre, mais
c’est facilement adaptable) :

function motcle_in_arbo_rubrique($motcle, $id_rubrique) {
$res = spip_abstract_fetsel(
‹ m.titre, r.id_parent ›,
‹ spip_rubriques r left join spip_mots_rubriques mr using(id_rubrique)
left join spip_mots m using(id_mot) ›,
'r.id_rubrique = '._q($id_rubrique)
);
if( $res[‹ titre ›] == $motcle ){
return true;
} else if( $res[‹ id_parent ›]>0 ){
return motcle_in_arbo_rubrique($motcle, $res[‹ id_parent ›]);
} else {
return false;
}
}


Nico D.


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Bonjour,

Je n’ai pas eu le temps de tester les différentes propositions faites. Mais on m’a envoyé ceci aussi:
<BOUCLE_oui(RUBRIQUES){id_rubrique}{id_groupe=XX}>

ok la rub a un mot-clef dans le groupe…
</BOUCLE_oui>
</B_oui>
<BOUCLE_non(RUBRIQUES){id_enfant}>
<BOUCLE_onrecommence(BOUCLE_oui)></BOUCLE_onrecommence>
</BOUCLE_non(RUBRIQUES)>
<//B_oui>

Il me semble que cette boucle va dans le même sens que ce que propose Josiane…

Le 23 avril 2009 10:42, Josiane ALETTO <josiane.aletto@orange.fr> a écrit :

bonjour,
pour la rubrique j’ai utilisé le code suivant ( sans fonction)

#CACHE{86400} [(#REM) aiguillage en fonction du mot clé] [(#REM) la rubrique ou une rubrique de sa hierarchie ( prééminence à la plus proche ) a un mot clé dans Squelettes_rubrique ] [(#REM)pas de mot clé dans Squelettes_rubriques]

</BOUCLE_rubrique_principal>
<:aucune_rubrique:>
<//B_rubrique_principal>

pour l’article

[(#REM) choix du squelette de l’article ]
<BOUCLE_article_principal(ARTICLES) {id_article}>
[(#REM) l’article a un mot clé squelette]
<BOUCLE_sqart(MOTS) {id_article}{type=Squelettes_article} {0,1}>
<INCLURE{fond=article-#TITRE}{id_article}{self=#SELF}{lang} >
</BOUCLE_sqart>
</B_sqart>
[(#REM)pas de mot clé dans Squelettes_articles …on cherche dans la hiérarchie]
<BOUCLE_hi(HIERARCHIE) {id_article} {0,1}{type_mot=Squelettes_rubrique} {inverse}>
[(#REM) une rubrique de sa hierarchie ( prééminence à la plus proche ) a un mot clé dans Squelettes_rubrique ]
<BOUCLE_sqhi(MOTS) {id_rubrique} {0,1}{type=Squelettes_rubrique} >
<INCLURE{fond=article-#TITRE}{id_article}{self=#SELF}{lang} >
</BOUCLE_sqhi>
</BOUCLE_hi>
</B_hi>
[(#REM)pas de mot clé dans Squelettes_rubriques]
<INCLURE{fond=article-normal}{id_article}{self=#SELF}{lang} >
<//B_hi>
<//B_sqart>

</BOUCLE_article_principal>
<:aucun_article:>
<//B_article_principal>

est-ce plus efficace, plus rapide ou plus complet avec la fonction ?

Message du 22/04/09 17:20
De : « Nico D. »
A : spip@rezo.net
Copie à :
Objet : Re: [Spip] trouver un mot clé en remontant la hiérarchie rubrique…

Payet Teddy a écrit :

Bonjour,

En vue d’adopter une solution de remplacement a la disparition du plugin
squelette par mots clés en SPIP 2, j’utilise les fichiers article.HTML
et rubrique.html pour retrouver le mot cle nécessaire.
Mais voilà, j’aimerai me compliquer la tâche en retrouvant le mot clé
(groupe défini) en remontant mon arborescence rubrique. Autrement dit,
si ma rubrique courante n’a pas le mot clé alors je passe a la rubrique
juste au dessus et ainsi de suite.

Salut,

si j’ai bien compris, à vue de nez je passerai par un filtre perso avec
une fonction récursive qui remonte l’arbo jusqu’à trouver (ou pas) le
mot clé.

J’utilise une fonction comme ça (en 1.9.2) dans un petit plugin maison
pour chercher un mot clé par son titre (ce n’est pas un filtre, mais
c’est facilement adaptable) :

function motcle_in_arbo_rubrique($motcle, $id_rubrique) {
$res = spip_abstract_fetsel(
‹ m.titre, r.id_parent ›,
‹ spip_rubriques r left join spip_mots_rubriques mr using(id_rubrique)
left join spip_mots m using(id_mot) ›,
'r.id_rubrique = '._q($id_rubrique)
);
if( $res[‹ titre ›] == $motcle ){
return true;
} else if( $res[‹ id_parent ›]>0 ){
return motcle_in_arbo_rubrique($motcle, $res[‹ id_parent ›]);
} else {
return false;
}
}


Nico D.


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip