Squellette et optimisation.

Bonjour dans le cas de cette boucle (formulée grâce à la liste...) :

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par date}{inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

qui vise à afficher le logo de l'auteur si celui de l'article n'existe pas.

Peut-on dire, dans le cas où tous les articles disposent d'un Logo
qu'aucun accès ne sera fait sur la base/Table (au sens mySQL du terme)
auteurs ?

Merci.

* Krusti tapuscrivait, le 08/09/2009 12:56:

Bonjour dans le cas de cette boucle (formulée grâce à la liste...) :

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par date}{inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

qui vise à afficher le logo de l'auteur si celui de l'article n'existe pas.

Peut-on dire, dans le cas où tous les articles disposent d'un Logo
qu'aucun accès ne sera fait sur la base/Table (au sens mySQL du terme)
auteurs ?

Actuellement, les logos ne sont pas renseignés en base mais leur existence est recherchée par le nom du fichier dans IMG/
pour l'auteur 12, SPIP recherche les fichiers :
auton12.png
auton12.gif
auton12.jpg

Donc, aucun accès en base MySQL pour les balises #LOGO_type

--
RealET

OK c'est une première information très intéressante.

Je vais formuler ma question autrement pour la compléter.

Dans le cas (toujours le même) où mes 5 articles récents disposent tous
d'un logo, est-ce qu'une recherche sera effectué malgré tout au niveau
auteur (recherche d'un autonxx.***).

Ce que je redoute c'est que ma boucle tente de ramener 5 Logos articles et
même en cas de succés qu'elle fasse pareil au niveau des 5 logos Auteurs
pour ne se poser seulement à la fin la question:
Lequel j'affiche maintenant ?

Rappel de la boucle:

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par} {date}{inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

* Krusti tapuscrivait, le 08/09/2009 12:56:

Bonjour dans le cas de cette boucle (formulée grâce à la liste...) :

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par date}{inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

qui vise à afficher le logo de l'auteur si celui de l'article n'existe
pas.

Peut-on dire, dans le cas où tous les articles disposent d'un Logo
qu'aucun accès ne sera fait sur la base/Table (au sens mySQL du terme)
auteurs ?

Actuellement, les logos ne sont pas renseignés en base mais leur
existence est recherchée par le nom du fichier dans IMG/
pour l'auteur 12, SPIP recherche les fichiers :
auton12.png
auton12.gif
auton12.jpg

Donc, aucun accès en base MySQL pour les balises #LOGO_type

--
RealET

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc

--
www.frogus.net
www.krusti.net
www.hucault.com

* Krusti tapuscrivait, le 08/09/2009 13:31:

OK c'est une première information très intéressante.

Je vais formuler ma question autrement pour la compléter.

Dans le cas (toujours le même) où mes 5 articles récents disposent tous
d'un logo, est-ce qu'une recherche sera effectué malgré tout au niveau
auteur (recherche d'un autonxx.***).

Ce que je redoute c'est que ma boucle tente de ramener 5 Logos articles et
même en cas de succés qu'elle fasse pareil au niveau des 5 logos Auteurs
pour ne se poser seulement à la fin la question:
Lequel j'affiche maintenant ?

Il faudrait voir le code généré par SPIP.
Mais il y a :
- une première recherche de #LOGO_ARTICLE
- si elle est fructueuse, une 2e recherche de ce même #LOGO_ARTICLE (et oui, SPIP ne mémorise rien entre les 2
- sinon, une recherche de #LOGO_AUTEUR

Donc, tu as de toute manière au moins 2 recherches.

Avec #SET et #GET, tu pourrais en économiser 1 en cas de #LOGO_ARTICLE disponible.

Rappel de la boucle:

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par} {date}{inverse} {pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

* Krusti tapuscrivait, le 08/09/2009 12:56:

Bonjour dans le cas de cette boucle (formulée grâce à la liste...) :

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par date}{inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

qui vise à afficher le logo de l'auteur si celui de l'article n'existe
pas.

Peut-on dire, dans le cas où tous les articles disposent d'un Logo
qu'aucun accès ne sera fait sur la base/Table (au sens mySQL du terme)
auteurs ?

Actuellement, les logos ne sont pas renseignés en base mais leur
existence est recherchée par le nom du fichier dans IMG/
pour l'auteur 12, SPIP recherche les fichiers :
auton12.png
auton12.gif
auton12.jpg

Donc, aucun accès en base MySQL pour les balises #LOGO_type

--
RealET

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc

--
RealET

RealET a écrit

Donc, tu as de toute manière au moins 2 recherches.

Avec #SET et #GET, tu pourrais en économiser 1 en cas de #LOGO_ARTICLE disponible.

Ou, probablement et plus simplement, avec le filtre sinon
JLuc

* JLuc tapuscrivait, le 08/09/2009 15:46:

RealET a écrit

Donc, tu as de toute manière au moins 2 recherches.

Avec #SET et #GET, tu pourrais en économiser 1 en cas de #LOGO_ARTICLE disponible.

Ou, probablement et plus simplement, avec le filtre sinon

T'es trop fort !
Merci !

--
RealET

Euhhh il s'agit déjà d'un filtre sinon. Non ?

<BOUCLE_articles_recents(ARTICLES auteurs_articles) {par date} {inverse}
{pagination 5}>

#TITRE [(#LOGO_ARTICLE||?{#LOGO_ARTICLE, #LOGO_AUTEUR})]

</BOUCLE_articles_recents>

RealET a écrit

Donc, tu as de toute manière au moins 2 recherches.

Avec #SET et #GET, tu pourrais en économiser 1 en cas de #LOGO_ARTICLE
disponible.

Ou, probablement et plus simplement, avec le filtre sinon
JLuc

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc

--
www.frogus.net
www.krusti.net
www.hucault.com

* Krusti tapuscrivait, le 08/09/2009 15:59:

Euhhh il s'agit déjà d'un filtre sinon. Non ?

Si, là, c'est le filtre si oui, si non (if the else).
C'est
[(#LOGO_ARTICLE||sinon{#LOGO_AUTEUR})]

dont jluc parlait

--
RealET

Le filtre Si Oui, Si Non n'est jamais que l'évolution en 1.8 du simple
Filtre Sinon de la version 1.6 ( Les filtres de SPIP - SPIP )

Donc c'est le même business. On revient au départ.

Si le Filtre Sinon (ou filtre si oui si non) permet une optimisation cela
voudrait dire que Spip ne va chercher les logo-auteur QUE s'il n'a pas
trouvé de Logo pour l'article.

Il ne fait pas comme je le craignais une recherche des logos articles, une
recherche des logos auteurs et seulement ensuite un affichage de l'un ou
de l'autre selon qu'il a trouvé ou non un logo pour l'article....

* Krusti tapuscrivait, le 08/09/2009 15:59:

Euhhh il s'agit déjà d'un filtre sinon. Non ?

Si, là, c'est le filtre si oui, si non (if the else).
C'est
[(#LOGO_ARTICLE||sinon{#LOGO_AUTEUR})]

dont jluc parlait

--
RealET

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc

--
www.frogus.net
www.krusti.net
www.hucault.com

* Krusti tapuscrivait, le 08/09/2009 16:20:

Le filtre Si Oui, Si Non n'est jamais que l'évolution en 1.8 du simple
Filtre Sinon de la version 1.6 ( Les filtres de SPIP - SPIP )

Donc c'est le même business. On revient au départ.

Si le Filtre Sinon (ou filtre si oui si non) permet une optimisation cela
voudrait dire que Spip ne va chercher les logo-auteur QUE s'il n'a pas
trouvé de Logo pour l'article.

Il ne fait pas comme je le craignais une recherche des logos articles, une
recherche des logos auteurs et seulement ensuite un affichage de l'un ou
de l'autre selon qu'il a trouvé ou non un logo pour l'article....

?{si oui,si non} est une construction qui vient du PHP

http://www.commentcamarche.net/contents/php/phpcond.php3
(condition) ? instruction si vrai : instruction si faux

Donc, dans ton cas, la condition, si elle est vrai conduit au recalcul de la condition (#LOGO_ARTICLE est donc évalué 2 fois !)

--
RealET

ça se complique...

Je sais bien ce qu'est une boucle est une structure conditionnelle, c'est
vieux comme.... Ô purée c'est vieux.

Ma question ne porte pas sur le fonctionnement du filtre en tant que tel
mais plutôt sur ce sur quoi il porte (et si c'est déjà en mémoire ou déjà
stocké pour tout dire).

Si je reprends notre échange #Logo_Article sera évalué 2 fois. OK. ça
c'est vu.

Maintenant aura-t-il été voir (il c'est Spip) si il existait des
Logo_auteurs avant le "Sinon" ou bien est-ce qu'il va le déclencher au
moment où il s'aperçoit qu'il n'a pas de Logo_article

Pour tenter de gagner encore en clarté le SI Non (ou Si oui Si non)
va-t-il porter sur la recherche des logos ou bien sur l'affichage
seulement.

Cas 1... Sur la recherche ça donnerait

Je vais chercher logo_article, si j'ai je prends et je passe à l'article
suivant et on boucle là-dessus 5 fois pour mes 5 articles récents. J'avais
5 logo_articles je ne vais donc rien voir coté logo_auteur

Cas 2... Sur l'affichage ça donnerait

Je vais chercher logo_article si j'ai je prends et je vais chercher
logo-auteur si j'ai je prends aussi et je passe à l'article suivant et on
boucle là-dessus 5 fois pour mes 5 articles récents avec les 5 auteurs
associés.
A l'affichage je fais jouer mon bouléen Oui Non et j'affiche le bon.

On pourrait penser le cas 2 tordu mais pas tant que ça, le produit
pourrait le générer dés la connaissance de la déclaration de la boucle...

Merci de votre attention.

* Krusti tapuscrivait, le 08/09/2009 16:20:

Le filtre Si Oui, Si Non n'est jamais que l'évolution en 1.8 du simple
Filtre Sinon de la version 1.6 ( Les filtres de SPIP - SPIP
)

Donc c'est le même business. On revient au départ.

Si le Filtre Sinon (ou filtre si oui si non) permet une optimisation
cela
voudrait dire que Spip ne va chercher les logo-auteur QUE s'il n'a pas
trouvé de Logo pour l'article.

Il ne fait pas comme je le craignais une recherche des logos articles,
une
recherche des logos auteurs et seulement ensuite un affichage de l'un ou
de l'autre selon qu'il a trouvé ou non un logo pour l'article....

?{si oui,si non} est une construction qui vient du PHP

http://www.commentcamarche.net/contents/php/phpcond.php3
(condition) ? instruction si vrai : instruction si faux

Donc, dans ton cas, la condition, si elle est vrai conduit au recalcul
de la condition (#LOGO_ARTICLE est donc évalué 2 fois !)

--
RealET

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc

--
www.frogus.net
www.krusti.net
www.hucault.com

* Krusti tapuscrivait, le 08/09/2009 16:55:

ça se complique...

Je sais bien ce qu'est une boucle est une structure conditionnelle, c'est
vieux comme.... Ô purée c'est vieux.

Ma question ne porte pas sur le fonctionnement du filtre en tant que tel
mais plutôt sur ce sur quoi il porte (et si c'est déjà en mémoire ou déjà stocké pour tout dire).

Si je reprends notre échange #Logo_Article sera évalué 2 fois. OK. ça
c'est vu.

Maintenant aura-t-il été voir (il c'est Spip) si il existait des
Logo_auteurs avant le "Sinon" ou bien est-ce qu'il va le déclencher au
moment où il s'aperçoit qu'il n'a pas de Logo_article

D'après les échanges précédents :
1) la structure conditionnelle fonctionne comme cela (d'après le site sur le langage PHP) :
Remarques:

     * la condition doit être entre des parenthèses
     * Lorsque la condition est vraie, l'instruction de gauche est exécutée
     * Lorsque la condition est fausse, l'instruction de droite est exécutée
2) var_mode=debug va te permettre de lire le code php généré par SPIP et nous donner la réponse à ta question :wink:

--
RealET

Krusti a écrit :

Je vais chercher logo_article, si j'ai je prends et je passe à l'article
suivant et on boucle là-dessus 5 fois pour mes 5 articles récents. J'avais
5 logo_articles je ne vais donc rien voir coté logo_auteur

Je vais chercher logo_article si j'ai je prends et je vais chercher
logo-auteur si j'ai je prends aussi et je passe à l'article suivant et on
boucle là-dessus 5 fois pour mes 5 articles récents avec les 5 auteurs
associés.
A l'affichage je fais jouer mon bouléen Oui Non et j'affiche le bon.

pour chaque article retourné par la requête sql, spip va chercher le logo de l'article et, *s'il n'existe pas*, le logo de l'auteur.

donc : cas 1

OK c'est bien le cas 1...

Merci denisB pour cette réponse et merci RealET de m'avoir auguiller vers le debug (p'tain c'est bavard le debug tout comme y faut...)

----- Original Message ----- From: "denisb" <denisb@laposte.net>
To: <spip@rezo.net>
Sent: Tuesday, September 08, 2009 6:55 PM
Subject: Re: [Spip] [SPIP] Squellette et optimisation.

Krusti a écrit :

Je vais chercher logo_article, si j'ai je prends et je passe à l'article
suivant et on boucle là-dessus 5 fois pour mes 5 articles récents. J'avais
5 logo_articles je ne vais donc rien voir coté logo_auteur

Je vais chercher logo_article si j'ai je prends et je vais chercher
logo-auteur si j'ai je prends aussi et je passe à l'article suivant et on
boucle là-dessus 5 fois pour mes 5 articles récents avec les 5 auteurs
associés.
A l'affichage je fais jouer mon bouléen Oui Non et j'affiche le bon.

pour chaque article retourné par la requête sql, spip va chercher le
logo de l'article et, *s'il n'existe pas*, le logo de l'auteur.

donc : cas 1

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

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

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

Irc : de l'aide à toute heure : http://spip.net/irc