Expression régulière...

Bonjour à tous :slight_smile:

Voici mon petit soucis d'aujourd'hui...

Je voudrais pouvoir exclure, dans certaines boucles, tous les itmes
associés un mot-clé dont le titre commencerait par "invisible",
mais en affichant tous les autres évidemment...

Voici le code que j'utilise, pour une boucle BREVES par exemple :

<code>
<BOUCLE_breves(BREVES) {titre_mot!==^invisible} {tout}>
</code>

Alors, ça fonctionne assez bien dans l'ensemble, sauf, bizarrement,
pour les éléments ne disposant d'aucun mot-clé associé !

Comment résoudre ce cas de figure ?
La syntaxe de l'expression régulière est incorrecte ?

J'avoue que là... je patôge :-/

Question subsidiaire, aurait-il un autre moyen, plus simple ou direct,
que d'utiliser une expression régulière ?

Merci :slight_smile:

bonjour,

ce n'est pas, je crois, une questioin de expression régulière non OK, mais
de boucle Spip.

j'imagine qu'il suffit, par exemple, d'avoir une boucle englobante pour
faire agir le code aux éléments qui n'ont pas de mots clés, non ?

franck saint germain
http://ecoetsante2010.free.fr/
pour réconclier enfin l'économie et la santé

----- Original Message -----
From: "FredoMkb" <fredomkbfr@yahoo.fr>
To: <spip@rezo.net>
Sent: Thursday, August 17, 2006 7:01 AM
Subject: [Spip] Expression régulière...

Bonjour à tous :slight_smile:

Voici mon petit soucis d'aujourd'hui...

Je voudrais pouvoir exclure, dans certaines boucles, tous les itmes
associés un mot-clé dont le titre commencerait par "invisible",
mais en affichant tous les autres évidemment...

Voici le code que j'utilise, pour une boucle BREVES par exemple :

<code>
<BOUCLE_breves(BREVES) {titre_mot!==^invisible} {tout}>
</code>

Alors, ça fonctionne assez bien dans l'ensemble, sauf, bizarrement,
pour les éléments ne disposant d'aucun mot-clé associé !

Comment résoudre ce cas de figure ?
La syntaxe de l'expression régulière est incorrecte ?

J'avoue que là... je patôge :-/

Question subsidiaire, aurait-il un autre moyen, plus simple ou direct,
que d'utiliser une expression régulière ?

Merci :slight_smile:

_______________________________________________
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
FAQ : http://www.spip-contrib.net/spikini/FaQ

FredoMkb <fredomkbfr <at> yahoo.fr> writes:

Bonjour à tous

Voici mon petit soucis d'aujourd'hui...

Je voudrais pouvoir exclure, dans certaines boucles, tous les itmes
associés un mot-clé dont le titre commencerait par "invisible",
mais en affichant tous les autres évidemment...

Voici le code que j'utilise, pour une boucle BREVES par exemple :

<code>
<BOUCLE_breves(BREVES) {titre_mot!==^invisible} {tout}>
</code>

Alors, ça fonctionne assez bien dans l'ensemble, sauf, bizarrement,
pour les éléments ne disposant d'aucun mot-clé associé !

effectivement le critère titre_mot (comme id_mot) refuse une expression négative
! C'est intéressant !
Cela signifie que tous les autres articles ou brèves doivent avoir un mot clé
pour être choisi positivement... à moins qu'il n'y ait une subtilité de boucle
pour pallier le problème...

Question subsidiaire, aurait-il un autre moyen, plus simple ou direct,
que d'utiliser une expression régulière ?

titre_mot=invisible fonctionne. Et en principe titre_mot!=invisible devrait être
aussi recevable... mais il ne l'est pas... :slight_smile:

Stanislas

spip-bounces@rezo.net wrote:

effectivement le critère titre_mot (comme id_mot) refuse une
expression négative ! C'est intéressant !
Cela signifie que tous les autres articles ou brèves doivent
avoir un mot clé pour être choisi positivement... à moins
qu'il n'y ait une subtilité de boucle pour pallier le problème...

{doublons}

franck saint germain <franck.saintgermain <at> free.fr> writes:

ce n'est pas, je crois, une questioin de expression régulière non OK, mais
de boucle Spip.

Bon, si la syntaxe de l'exp-rég. est OK, c'est déjà un soucis en moins.

j'imagine qu'il suffit, par exemple, d'avoir une boucle englobante pour
faire agir le code aux éléments qui n'ont pas de mots clés, non ?

Je vais tester, mais c'est vrai que dans la mesure du possible,
je tente d'éviter l'imbrication de trop de boucles, j'ai l'impression
que c'est source de ralentissements à la longue...

Merci en tout cas Franck pour cette piste, je vais voir si elle s'avère
utile dans mon cas... :slight_smile:

Stanislas <stanislas76 <at> free.fr> writes:

> <code>
> <BOUCLE_breves(BREVES) {titre_mot!==^invisible} {tout}>
> </code>
> Alors, ça fonctionne assez bien dans l'ensemble, sauf, bizarrement,
> pour les éléments ne disposant d'aucun mot-clé associé !

effectivement le critère titre_mot (comme id_mot) refuse une expression
négative ! C'est intéressant !
Cela signifie que tous les autres articles ou brèves doivent avoir
un mot clé pour être choisi positivement...

Je suis arrivé exactement à la même conclusion...
Mais, concrétement, il va toujours exister des articles ou brèves
qui ne seront associés à aucun mot-clé, je dois donc trouver
une solution pour les afficher quand-même...

à moins qu'il n'y ait une subtilité de boucle pour pallier le problème...

Je cherche aussi :slight_smile:

> Question subsidiaire, aurait-il un autre moyen, plus simple ou direct,
> que d'utiliser une expression régulière ?
titre_mot=invisible fonctionne. Et en principe titre_mot!=invisible devrait
être aussi recevable... mais il ne l'est pas...

Ha ! je n'avais pas testé cette autre possibilité, c'est intéressant en effet...
Alors, forcément, la question que tout le monde redoute serait :
Ne serions-nous pas face à un petit bug ?

Merci Stanislas pour tes essais instructifs... :slight_smile:

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

> effectivement le critère titre_mot (comme id_mot) refuse une
> expression négative ! C'est intéressant !
> Cela signifie que tous les autres articles ou brèves doivent
> avoir un mot clé pour être choisi positivement... à moins
> qu'il n'y ait une subtilité de boucle pour pallier le problème...

{doublons}

Merci Olivier, je viens d'essayer, mais ça ne fonctionne toujours pas...

Je vais continuer mes tests, si ce n'est pas un bug, on devrait
finir par trouver une solution acceptable à ce problème...

Merci à tous, si certains ont d'autres pistes, n'hésitez-pas :slight_smile:

spip-bounces@rezo.net wrote:

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

effectivement le critère titre_mot (comme id_mot) refuse une
expression négative ! C'est intéressant !
Cela signifie que tous les autres articles ou brèves doivent avoir
un mot clé pour être choisi positivement... à moins qu'il n'y ait
une subtilité de boucle pour pallier le problème...

{doublons}

Merci Olivier, je viens d'essayer, mais ça ne fonctionne
toujours pas...

Montre tes boucles de test, normalement ça devrait fonctionner.

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

Montre tes boucles de test, normalement ça devrait fonctionner.

Voici une parmi d'autres testées :

<code>
<!-- Bloucle liste des 10 dernieres breves -->
<BOUCLE_breves(BREVES) {titre_mot!==^invisible}
{par date}{inverse} {doublons} {0,10}>
  <li class="menu_item_breve">
    <em>[- (#DATE|affdate_court)]</em> :
    <a href="#URL_BREVE">#TITRE</a>
  </li>
</BOUCLE_breves>
</code>

Merci :slight_smile:

PS. J'ai du couper l'instruction de la boucle parce que
le formulaire d'envoi de messages de la liste sur internet
n'accepte pas les lignes dépassant les 80 caractères...

spip-bounces@rezo.net wrote:

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

Montre tes boucles de test, normalement ça devrait fonctionner.

Voici une parmi d'autres testées :

<code>
<!-- Bloucle liste des 10 dernieres breves -->
<BOUCLE_breves(BREVES) {titre_mot!==^invisible} {par
date}{inverse} {doublons} {0,10}>
  <li class="menu_item_breve">
    <em>[- (#DATE|affdate_court)]</em> :
    <a href="#URL_BREVE">#TITRE</a>
  </li>
</BOUCLE_breves>
</code>

Merci :slight_smile:

Tu as lu Exclure selon un mot-clé - SPIP-Contrib ? Tu es
peut-être dans ce cas ?

FredoMkb <fredomkbfr <at> yahoo.fr> writes:

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

> Montre tes boucles de test, normalement ça devrait fonctionner.

Voici une parmi d'autres testées :

<code>
<!-- Bloucle liste des 10 dernieres breves -->
<BOUCLE_breves(BREVES) {titre_mot!==^invisible}
{par date}{inverse} {doublons} {0,10}>
  <li class="menu_item_breve">
    <em>[- (#DATE|affdate_court)]</em> :
    <a href="#URL_BREVE">#TITRE</a>
  </li>
</BOUCLE_breves>
</code>

Ach ya, bien sûr ! On me l'a pourtant déjà soufflé sur la liste pour une boucle
aléatoire ! C'est le fameux truc de la boucle à blanc qui avec son copain
"doublons" exclut du résultat les indésirables ! :slight_smile:
donc le principe c'est :
<BOUCLE_brevesnon(BREVES) {titre_mot=invisible}{doublons}>
</BOUCLE_brevesnon>
<BOUCLE_brevesoui(BREVES){doublons} {autres paramètres]>
#TITRE
</BOUCLE_brevesoui>

hé oui ! précédée par cette boucle à blanc la boucle va bel et bien exclure
toutes les brèves qui ont pour mot clé "invisible"...

Stanislas

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

Tu as lu Exclure selon un mot-clé - SPIP-Contrib ?
Tu es peut-être dans ce cas ?

GÉNIAL !!!

Merci beaucoup Olivier, ça marche vraiment bien...

Cérise sur le gâteau, je viens d'apprendre le rôle du critère {doublons},
je ne savais pas qu'une première boucle possédant ce critère, exclue
les données quelle trouve à la boucle suivante ayant aussi ce même
critère... c'est super ça, même si j'ai encore bien du mal à comprendre
le mécanisme et la logique de ce fonctionnement...

Enfin, maintenant je suis devant un dilème existentiel...
Que dois-je utiliser, cette solution strictement Spipienne,
ou il vaut mieux que je conserve la solution à la sauce Php ???

Quels seraient les avantages et inconvénients de chaque approche ?

Bon, ce matin je n'avais aucune solution, maintenant j'ai l'embarras
du choix, je vais pas me pleindre :wink:

Encore merci à tous :slight_smile:

Bonjour à tous :slight_smile:

Je voulais juste vous remercies, collectivement,
pour l'aide que vous aves su m'apporter.

J'ai finalement décidé d'utiliser la solution avec las boucles
purement Spipiennes, avec double critère {doublons},
je pense que ce sera toujours plus simple d'accès pour
les débutants qui voudront personnaliser le squelette.

Je m'apperçois, grâce à cet échange, que le langage de Spip
est assez puissant, et je crois qu'il va me falloir pas mal
de pratique encore avant de maîtriser toutes ses subtilités.

Si j'ai d'autres questions, je sais désormais où vous trouver :wink:

Encore merci à tous... :slight_smile:

spip-bounces@rezo.net wrote:

Enfin, maintenant je suis devant un dilème existentiel...
Que dois-je utiliser, cette solution strictement Spipienne,
ou il vaut mieux que je conserve la solution à la sauce Php ???

La solution à la sauce PHP travaille en deux fois, alors que la sauce SPIP
travaille en une fois et met en cache le résultat. A toi de voir si tu as
besoin d'alléger au maximum ton serveur ou si tu peux te permettre de
dégrader ses performances, et si les personnes qui maintiendront le site
après toi devront connaître SPIP ou SPIP _et_ PHP...

Olivier GENDRIN <o.gendrin <at> novactive.com> writes:

La solution à la sauce PHP travaille en deux fois, alors que la sauce SPIP
travaille en une fois et met en cache le résultat. A toi de voir si tu as
besoin d'alléger au maximum ton serveur ou si tu peux te permettre de
dégrader ses performances, et si les personnes qui maintiendront le site
après toi devront connaître SPIP ou SPIP _et_ PHP...

Ok, merci Olivier pour ces infos complémentaires...

J'avais déjà fais mon choix, en faveur de la méthode SPIP,
surtout orienté par un souci d'accessibilité au code
pour les débutants qui voudront le personnaliser,
et si en plus ce choix s'avère moins contraignant pour
le serveur, alors le doute n'est plus permis :slight_smile:

En revanche, hormis ces considérations de cache et
de sollicitation du serveur, en terme de performance pure,
pour l'exécution d'une fonction strictement similaire,
quel langage serait le plus véloce, SPIP ou Php ?

C'est juste par simple curiosité, car en général je préfère,
tant que c'est possible, travailler avec le langage propre
à l'environnement d'accueil, c'est toujours plus simple
après à modifier ou à faire évoluer...

Merci :slight_smile: