xml, blocs statiques, navigation ...

Bonjour tout le monde,
  Avant tous, comme je viens de m'inscrire à l'instant, je m'introduis
comme on dit : Pif, développeur dans une boite qui fait entre autres
des sites webs de type publishing. Je suis en train de potasser spip
pour voir s'il s'adapterait bien à la migration d'un site existant assez
volumineux (plusieurs centaines de rubriques, plusieurs dizaines de
miliers d'articles).
  Si ça se fait, j'espère pouvoir vous en dire plus, notamment sur les
aspects "migration d'un existant".
  je ne sais pas encore si j'aurais le droit de "publier" les
éventuelles modifications qu'on apportera à SPIP en interne, mais je
l'espère bien.

  C'est très prometteur, mais il y a 2 3 choses délicates sur lesquelles
j'aimerais votre avis:
- l'existant stocke ses articles en xml et les affiche via xsl.
    J'ai copié quelques articles du site existant en mettant comme texte
  l'xml original, mais il me faut maintenant un moyen de balancer le
  contenu des articles à travers un xsl avant l'affichage.
    Avec les filtres, et php/sablotron, ça parait immédiat, mais comment
  spécifier quel xsl utiliser pour quel article puisqu'un filtre
  utilisateur n'accepte qu'un seul argument ?
    Quelqu'un à t'il déjà fait ça ?

- y-a t'il moyen d'inserer dans une page un bloc html "statique" qui ne
  soit pas une brève ou un article mais simplement un fichier.
    Avec un <?include?> on s'en sort bien sur, mais ça n'est pas caché
  comme une boucle, c'est pas top en perf (l'existant en contient des
  tonnes ...)
    Serait-il pertinent et/ou compliqué à votre avis de créer un tag
  <INCLUDE fichier...> qui serait parsé au même moment que les <BOUCLE>
  et qui profiterait des mêmes mécanismes d'héritage que les squelettes.

- j'ai essayé de faire une barre de navigation hiérarchique, mais je
  coince sur un point.
En gros, quand je suis dans la rubrique B > BA > BAB, je voudrais
  afficher ça :
A
B
BA
   BAA
   BAB
      BABA
      BABB
   BAC
BB
BC
C

  En clair, je veux "déplier" l'arborescence.
  Avec une bouche HIERARCHIE ou une boucle RUBRIQUE récursive, j'arrive
presque à lister les rubriques comme je veux, mais comment forcer
à afficher les sous rubriques de B après "B" ? il faudrait faire une
boucle avec une condition du style {id_rubrique<id_rubrique_parent}
puis une avec un = dans laquelle on liste les fils, puis une avec un >
pour les suivantes, sauf que y'a pas "id_rubrique_parent" on dirait ?
  Dans ce que j'ai vu du php généré par un squelette, dans une boucle,
on a accès aux infos des boucles englobantes. Serait-il possible d'y
accéder en permettant dans les conditions du style {champ opérateur
valeur} de mettre comme valeur une référence à une clé de la boucle
parente ?

Bon, ça fait déjà 3 questions, c'est un bon début :wink:

A+, Pif.

Salut,
Q n° 3 : essaie ça
  <BOUCLE_liste(RUBRIQUES){id_parent=0}{par titre}>
    #TITRE<br>
    <BOUCLE_liste1(RUBRIQUES){id_parent}>
      #TITRE<br>
      <BOUCLE_liste2(BOUCLE_liste1)></BOUCLE_liste2>
    </BOUCLE_liste1>
  </BOUCLE_liste>
Tchô!

Le mardi 2 juillet 2002, à 10:26 AM, Christian Lefebvre a écrit :

Bonjour tout le monde,
  Avant tous, comme je viens de m'inscrire à l'instant, je m'introduis
comme on dit : Pif, développeur dans une boite qui fait entre autres
des sites webs de type publishing. Je suis en train de potasser spip
pour voir s'il s'adapterait bien à la migration d'un site existant assez
volumineux (plusieurs centaines de rubriques, plusieurs dizaines de
miliers d'articles).
  Si ça se fait, j'espère pouvoir vous en dire plus, notamment sur les
aspects "migration d'un existant".
  je ne sais pas encore si j'aurais le droit de "publier" les
éventuelles modifications qu'on apportera à SPIP en interne, mais je
l'espère bien.

  C'est très prometteur, mais il y a 2 3 choses délicates sur lesquelles
j'aimerais votre avis:
- l'existant stocke ses articles en xml et les affiche via xsl.
    J'ai copié quelques articles du site existant en mettant comme texte
  l'xml original, mais il me faut maintenant un moyen de balancer le
  contenu des articles à travers un xsl avant l'affichage.
    Avec les filtres, et php/sablotron, ça parait immédiat, mais comment
  spécifier quel xsl utiliser pour quel article puisqu'un filtre
  utilisateur n'accepte qu'un seul argument ?
    Quelqu'un à t'il déjà fait ça ?

- y-a t'il moyen d'inserer dans une page un bloc html "statique" qui ne
  soit pas une brève ou un article mais simplement un fichier.
    Avec un <?include?> on s'en sort bien sur, mais ça n'est pas caché
  comme une boucle, c'est pas top en perf (l'existant en contient des
  tonnes ...)
    Serait-il pertinent et/ou compliqué à votre avis de créer un tag
  <INCLUDE fichier...> qui serait parsé au même moment que les <BOUCLE>
  et qui profiterait des mêmes mécanismes d'héritage que les squelettes.

- j'ai essayé de faire une barre de navigation hiérarchique, mais je
  coince sur un point.
En gros, quand je suis dans la rubrique B > BA > BAB, je voudrais
  afficher ça :
A
B
BA
   BAA
   BAB
      BABA
      BABB
   BAC
BB
BC
C

  En clair, je veux "déplier" l'arborescence.
  Avec une bouche HIERARCHIE ou une boucle RUBRIQUE récursive, j'arrive
presque à lister les rubriques comme je veux, mais comment forcer
à afficher les sous rubriques de B après "B" ? il faudrait faire une
boucle avec une condition du style {id_rubrique<id_rubrique_parent}
puis une avec un = dans laquelle on liste les fils, puis une avec un >
pour les suivantes, sauf que y'a pas "id_rubrique_parent" on dirait ?
  Dans ce que j'ai vu du php généré par un squelette, dans une boucle,
on a accès aux infos des boucles englobantes. Serait-il possible d'y
accéder en permettant dans les conditions du style {champ opérateur
valeur} de mettre comme valeur une référence à une clé de la boucle
parente ?

Bon, ça fait déjà 3 questions, c'est un bon début :wink:

A+, Pif.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
http://listes.rezo.net/mailman/listinfo/spip

On Tue, 2002-07-02 at 11:58, zerrel@univ-lyon2.fr wrote:

Salut,
Q n° 3 : essaie ça
  <BOUCLE_liste(RUBRIQUES){id_parent=0}{par titre}>
    #TITRE<br>
    <BOUCLE_liste1(RUBRIQUES){id_parent}>
      #TITRE<br>
      <BOUCLE_liste2(BOUCLE_liste1)></BOUCLE_liste2>
    </BOUCLE_liste1>
  </BOUCLE_liste>

Hum .. a priori, ça va sortir la totalité de l'arbo.
Je voudrais ne déplier que les rubriques de la hiérarchie en cours,
  sinon ça fait un peu épais comme liste (j'ai près de 800 rubriques)

Salut,
rapidement, il me semble que si tu changes id_parent=0 par id_rubrique, tu dois déplier l'arbo à partir de l'id-rubrique.
Si id_rubrique = 1-1
alors tu auras
1-1
1-1-1
1-1-1-1
1-1-1-2
1-1-2
1-1-2-1
etc..............
je regarde et je te confirme.

Tchô!
Le mardi 2 juillet 2002, à 12:08 PM, Christian Lefebvre a écrit :

On Tue, 2002-07-02 at 11:58, zerrel@univ-lyon2.fr wrote:

Salut,
Q n° 3 : essaie ça
  <BOUCLE_liste(RUBRIQUES){id_parent=0}{par titre}>
    #TITRE<br>
    <BOUCLE_liste1(RUBRIQUES){id_parent}>
      #TITRE<br>
      <BOUCLE_liste2(BOUCLE_liste1)></BOUCLE_liste2>
    </BOUCLE_liste1>
  </BOUCLE_liste>

Hum .. a priori, ça va sortir la totalité de l'arbo.
Je voudrais ne déplier que les rubriques de la hiérarchie en cours,
  sinon ça fait un peu épais comme liste (j'ai près de 800 rubriques)

après contrôle, vi, tu ne déplies que la hiérarchie en cours.
pour les Q 1 et 2, je jette un oeil (juste un oeil, car fil, arno, nicolas ou d'autres pourront te répondre de manière certainement plus pertinente que moi :-()
Tchô!
Le mardi 2 juillet 2002, à 12:08 PM, Christian Lefebvre a écrit :

On Tue, 2002-07-02 at 11:58, zerrel@univ-lyon2.fr wrote:

Salut,
Q n° 3 : essaie ça
  <BOUCLE_liste(RUBRIQUES){id_parent=0}{par titre}>
    #TITRE<br>
    <BOUCLE_liste1(RUBRIQUES){id_parent}>
      #TITRE<br>
      <BOUCLE_liste2(BOUCLE_liste1)></BOUCLE_liste2>
    </BOUCLE_liste1>
  </BOUCLE_liste>

Hum .. a priori, ça va sortir la totalité de l'arbo.
Je voudrais ne déplier que les rubriques de la hiérarchie en cours,
  sinon ça fait un peu épais comme liste (j'ai près de 800 rubriques)

À propos de mon histoire de dérouler les rubriques "ancêtres" de celle
  ou je suis, j'ai le tiercé, mais dans le désordre :

<BOUCLE_papa(RUBRIQUES){id_enfant}>
  * #TITRE<br>
  <BOUCLE_tonton(RUBRIQUES){meme_parent}{exclus}>
    - #TITRE<br>
  </BOUCLE_tonton>
  <hr>
  <BOUCLE_grandpa(BOUCLE_papa)></BOUCLE_grandpa>
</BOUCLE_papa>

  Ça, ça sort la liste des rubriques parentes, grand-parentes ...
avec leurs soeurs respectives.
  Mais, ça va en remontant, et les filles d'une rubriques ne sont
pas affichées sous sa mère.

  Au départ, mon idée était de dérouler à partir d'une hierarchie,
comme ça :
<BOUCLE_hier(HIERARCHIE){id_rubrique}>
  * #TITRE<br>
  <BOUCLE_liste(RUBRIQUES){meme_parent}{exclus}>
    - #TITRE<br>
  </BOUCLE_liste>
  <hr>
</BOUCLE_hier>

  Mais on a alors les rubriques de la hierarchie en cours qui sont
"déclassées", et pas moyen de dérouler les sous rubriques de la
hiérarchie en dessous de leurs parentes.
  Il faudrait faire ça :
<BOUCLE_hier(HIERARCHIE){id_rubrique}>
  <BOUCLE_liste(RUBRIQUES){meme_parent}>
    <B_chemin>
    <BOUCLE_chemin(RUBRIQUES){id_rubrique=id_rubrique de la hierarchie}>
      * #TITRE<br>
    </BOUCLE_chemin>
    </B_chemin>
      - #TITRE<br>
    <//B_chemin>
  </BOUCLE_liste>
  <hr>
</BOUCLE_hier>

  Comme ça, on aurait déjà les rubriques dans le bon ordre, mais on
n'aurait toujours pas les filles dans les jupons de leur mère ...

Question subsidiaire : y'a t'il moyen de savoir à quelle itération j'en
  suis ? pour mettre une indentation en fonction de la profondeur
  notamment.

Re salut,
Q n°1 : jamais fait :frowning:
Q n°2 : t'as essayé l'article virtuel ? (un =url dans le chapeau avec la version1.3.2 et un truc beaucoup mieux avec les versions 1.4)
C'hai pô si ça répond à ta question, mais les personnes que j'ai citées sauront certainement te répondre.

tchô!
Le mardi 2 juillet 2002, à 10:26 AM, Christian Lefebvre a écrit :

Bonjour tout le monde,
  Avant tous, comme je viens de m'inscrire à l'instant, je m'introduis
comme on dit : Pif, développeur dans une boite qui fait entre autres
des sites webs de type publishing. Je suis en train de potasser spip
pour voir s'il s'adapterait bien à la migration d'un site existant assez
volumineux (plusieurs centaines de rubriques, plusieurs dizaines de
miliers d'articles).
  Si ça se fait, j'espère pouvoir vous en dire plus, notamment sur les
aspects "migration d'un existant".
  je ne sais pas encore si j'aurais le droit de "publier" les
éventuelles modifications qu'on apportera à SPIP en interne, mais je
l'espère bien.

  C'est très prometteur, mais il y a 2 3 choses délicates sur lesquelles
j'aimerais votre avis:
- l'existant stocke ses articles en xml et les affiche via xsl.
    J'ai copié quelques articles du site existant en mettant comme texte
  l'xml original, mais il me faut maintenant un moyen de balancer le
  contenu des articles à travers un xsl avant l'affichage.
    Avec les filtres, et php/sablotron, ça parait immédiat, mais comment
  spécifier quel xsl utiliser pour quel article puisqu'un filtre
  utilisateur n'accepte qu'un seul argument ?
    Quelqu'un à t'il déjà fait ça ?

- y-a t'il moyen d'inserer dans une page un bloc html "statique" qui ne
  soit pas une brève ou un article mais simplement un fichier.
    Avec un <?include?> on s'en sort bien sur, mais ça n'est pas caché
  comme une boucle, c'est pas top en perf (l'existant en contient des
  tonnes ...)
    Serait-il pertinent et/ou compliqué à votre avis de créer un tag
  <INCLUDE fichier...> qui serait parsé au même moment que les <BOUCLE>
  et qui profiterait des mêmes mécanismes d'héritage que les squelettes.

- j'ai essayé de faire une barre de navigation hiérarchique, mais je
  coince sur un point.
En gros, quand je suis dans la rubrique B > BA > BAB, je voudrais
  afficher ça :
A
B
BA
   BAA
   BAB
      BABA
      BABB
   BAC
BB
BC
C

  En clair, je veux "déplier" l'arborescence.
  Avec une bouche HIERARCHIE ou une boucle RUBRIQUE récursive, j'arrive
presque à lister les rubriques comme je veux, mais comment forcer
à afficher les sous rubriques de B après "B" ? il faudrait faire une
boucle avec une condition du style {id_rubrique<id_rubrique_parent}
puis une avec un = dans laquelle on liste les fils, puis une avec un >
pour les suivantes, sauf que y'a pas "id_rubrique_parent" on dirait ?
  Dans ce que j'ai vu du php généré par un squelette, dans une boucle,
on a accès aux infos des boucles englobantes. Serait-il possible d'y
accéder en permettant dans les conditions du style {champ opérateur
valeur} de mettre comme valeur une référence à une clé de la boucle
parente ?

Bon, ça fait déjà 3 questions, c'est un bon début :wink:

A+, Pif.

On Tue, 2002-07-02 at 12:22, zerrel@univ-lyon2.fr wrote:

après contrôle, vi, tu ne déplies que la hiérarchie en cours.

  On s'est mal compris (je maitrise pas encore le vocabulaire spip,
désolé, j'ai commencé jeudi dernier ...).
  Quand je suis dans la rubrique "x > y > z", je veux afficher les
soeurs de x, de y et de z, pas les cousines de y et z, ni la totalité
des descendantes de z.
  Dans mon mail précédent, je montre deux moyens de le faire, mais aucun
ne permet de lister les filles de x sous l'entrée x de la liste des
soeurs de x (c'est un bordel à expliquer c'te truc ! :slight_smile:

À+, Pif.

par cette belle journée, Pif se demande :

- y-a t'il moyen d'inserer dans une page un bloc html "statique" qui ne
soit pas une brève ou un article mais simplement un fichier.
Avec un <?include?> on s'en sort bien sur, mais ça n'est pas caché
comme une boucle, c'est pas top en perf (l'existant en contient des
tonnes ...)
Serait-il pertinent et/ou compliqué à votre avis de créer un tag
<INCLUDE fichier...> qui serait parsé au même moment que les <BOUCLE>
et qui profiterait des mêmes mécanismes d'héritage que les squelettes.

le tag <INCLUDE{fichier}{parametre}> doit bientôt apparaître si j'ai bien
suivi les discussions de spip-dev.

pour ton menu qui déplie l'arborescence peut être avec le critère aieul,
voir ce patch proposé sur spip dev également (pas encore dans le cvs)

Dorian

En ce qui concerne l'utilisation du XML dans un article SPIP, il suffit
d'utiliser un filtre du genre :
.....[(#TEXTE|doc_xml)]...
avec la fonction "doc_xml($data)" définie dans le fichier
"mes_fonctions.php3".
Dans l'exemple de filtre ci-dessus, $data contiendra le "texte" à analyser.
Il suffit de reconnaître que c'est bien du xml, d'y trouver le xsl adhoc,
puis de traiter tout ça pour retourner à l'appelant le contenu à afficher.
Si ce n'est pas du xml, il suffit de retourner $data inchangé.
Les 1ère et dernière lignes d'un doc xml pourraient être
<DOCXML ficxsl="....">
   ...
</DOCXML>

Me suis-je bien fait comprendre ???
A+
   François

On Wed, 2002-07-03 at 02:25, François GALLAIS-HAMONNO wrote:

En ce qui concerne l'utilisation du XML dans un article SPIP, il suffit
d'utiliser un filtre du genre :
.....[(#TEXTE|doc_xml)]...
avec la fonction "doc_xml($data)" définie dans le fichier
"mes_fonctions.php3".
Dans l'exemple de filtre ci-dessus, $data contiendra le "texte" à analyser.
Il suffit de reconnaître que c'est bien du xml, d'y trouver le xsl adhoc,
puis de traiter tout ça pour retourner à l'appelant le contenu à afficher.

Me suis-je bien fait comprendre ???

Tout à fait !
d'ailleurs, c'est ce que je disais :slight_smile:

   Avec les filtres, et php/sablotron, ça parait immédiat, mais comment
spécifier quel xsl utiliser pour quel article puisqu'un filtre
utilisateur n'accepte qu'un seul argument ?

  Mon problème, c'est ce que tu appelles "trouver le xsl adhoc" :slight_smile:
  L'idéal serait de passer le nom du xsl en argument au filtre, mais on
sait pas faire ...
  Par contre, entre temps, j'ai vu qu'à l'intérieur d'un filtre,
on avait accès à quelques variables globales qui devrait me suffire.
  À suivre ...