[spip+php] defit de boucle

Salut, j'ai une surprise pour tout le monde !

Mais je suis une *quiche qui débute en php* c'est pour ca que je ne donne
pas direct la surprise (elle ne marche pas encore) !

Je voudrais écrire une boucle pour obtenir une chaine composée de la
concaténation des urls relatives des documents joints à un article, séparées
par une virgule.

Cette chaine doit etre accessible dans une url.

Une fois qu'on aura trouvé, je donne à tout le monde une surprise !

J'ai un début de quelquechose que je donnerais plus tard si personne
n'arrive à démarrer sans indice supplémentaire.

indice de départ : Il faut utiliser une Boucle document avec #URL_DOCUMENT.

Si vous cherchez la réponse :

- vous ferez des progres en spip et php
- vous serez encore plus content d'avoir la surprise

Si vous trouvez la réponse, vous épaterez la galerie et vous permettrez à la
communauté d'avoir la surprise attendue.

@ +

BoOz, qui ne sait pas remplir un tableau php avec une boucle et le revider
ensuite dans une url.

Le Tue 21/10/2003 à 15:50, BoOz a écrit :

Je voudrais écrire une boucle pour obtenir une chaine composée de la
concaténation des urls relatives des documents joints à un article, séparées
par une virgule.

Cette chaine doit etre accessible dans une url.

J'ai pas tout compris.
Ce que tu veux, c'est ça ?
<BOUCLE_art(ARTICLES){id_article}>
  <BOUCLE_doc(DOCUMENTS){id_article}{,}>#URL_DOCUMENT</BOUCLE_doc>
</BOUCLE_art>

Bonjour Christian,

Dans mon enthousiame j'ai été peu clair.

En fait je veux utiliser cet appel de fonction en javascript :

preloadimages("img1","img2","img3","img4",...,"imgN");

Et je cherche à reconstituer cette chaine

"img1","img2","img3","img4",...,"imgN"

avec une boucle.

BoOz

"Christian Lefebvre" <christian.lefebvre@atosorigin.com> a écrit dans le
message de news: 1066745655.8403.173.camel@pmd-pc38.dev.atos.fr...

Le Tue 21/10/2003 à 15:50, BoOz a écrit :
> Je voudrais écrire une boucle pour obtenir une chaine composée de la
> concaténation des urls relatives des documents joints à un article,

séparées

> par une virgule.
>
> Cette chaine doit etre accessible dans une url.

J'ai pas tout compris.
Ce que tu veux, c'est ça ?
<BOUCLE_art(ARTICLES){id_article}>
  <BOUCLE_doc(DOCUMENTS){id_article}{,}>#URL_DOCUMENT</BOUCLE_doc>
</BOUCLE_art>

----------------------------------------------------------------------------
----

Une simple boucle avec une variable PHP et de la concaténation de chaine...

<?php $urls = ""; ?>

<BOUCLE_d(DOCUMENTS){id_article}{mode=document}>
  <?php $urls.="#URL_DOCUMENT,"; ?>
</BOUCLE_d>

Après quoi $urls contient le liste de URLs des document (en relatif), ce qui permet d'en faire ce qu'on veut. Pour l'utiliser en paramètre dans une autre URL il faut la filtré (à cause de "?"), il em semble qu'il exizste une fonction PHP pour ça. Mais il y a aussi un , en trop à la fin de la chaine, avec un tableau on peut l'éviter.

<?php $urlsTab = array(); ?>

<BOUCLE_d(DOCUMENTS){id_article}{mode=document}>
  <?php $urlsTab[]="#URL_DOCUMENT"; ?>
</BOUCLE_d>

Et après un $urls=explode($urlsTab,",") pour obtenir un string de même format que sans le tableau mais sans un ',' final.

PS: d'un coup je doute de la signature de la fonction explode(), mais le concept y est.

J'ai bon ou j'ai mal compris l'énoncé?

Bravo,

Avec ça, spip fait par exemple un beau diaporama (javascript,flash) avec des
images.
Je vous donne un lien dès que j'ai quelque chose.

Merci à Christian et Pierre.

**************************************
Liste des urls des documents joints à un article.
**************************************

<?php $urlsTab = array(); ?>

<BOUCLE_d(DOCUMENTS){id_article}{mode=document}>
<?php $urlsTab="#URL_DOCUMENT"; ?>
</BOUCLE_d>

Et après un $urls=explode($urlsTab,",") pour obtenir un string de même
format que sans le tableau mais sans un ',' final.

"Pierre BUYLE" <pbu@info.fundp.ac.be> a écrit dans le message de news:
bn3fn8$6bu$1@sea.gmane.org...

Une simple boucle avec une variable PHP et de la concaténation de

chaine...

<?php $urls = ""; ?>

<BOUCLE_d(DOCUMENTS){id_article}{mode=document}>
<?php $urls.="#URL_DOCUMENT,"; ?>
</BOUCLE_d>

Après quoi $urls contient le liste de URLs des document (en relatif), ce
qui permet d'en faire ce qu'on veut. Pour l'utiliser en paramètre dans
une autre URL il faut la filtré (à cause de "?"), il em semble qu'il
exizste une fonction PHP pour ça. Mais il y a aussi un , en trop à la
fin de la chaine, avec un tableau on peut l'éviter.

<?php $urlsTab = array(); ?>

<BOUCLE_d(DOCUMENTS){id_article}{mode=document}>
<?php $urlsTab="#URL_DOCUMENT"; ?>
</BOUCLE_d>

Et après un $urls=explode($urlsTab,",") pour obtenir un string de même
format que sans le tableau mais sans un ',' final.

PS: d'un coup je doute de la signature de la fonction explode(), mais le
concept y est.

J'ai bon ou j'ai mal compris l'énoncé?

Le Tue 21/10/2003 à 16:22, BoOz a écrit :

Bonjour Christian,

Dans mon enthousiame j'ai été peu clair.

En fait je veux utiliser cet appel de fonction en javascript :

preloadimages("img1","img2","img3","img4",...,"imgN");

  alors comme ça, nan ? (pas sur de la syntaxe du {,}, mais ça doit
ressembler à ça, peut être {","}, j'sais plus)

<BOUCLE_art(ARTICLES){id_article}>
  <B_doc>preloadimages(
  <BOUCLE_doc(DOCUMENTS){id_article}{,}>"#URL_DOCUMENT"</BOUCLE_doc>
  );</B_doc>
</BOUCLE_art>

À+, Pif.