[SPIP Zone] Zpip et ajaxReload

Salut,

avec Zpip, j'essaie de mettre en place une navigation en ajax.

Avec la doc https://contrib.spip.net/Zpip-blocs-de-page-et-Ajax et https://contrib.spip.net/Controleur-Vue-avec-ajaxReload, j'arrive à recharger un bloc (au sens Zpip) à partir de l'extérieur (recharger "content" depuis la navigation principale) mais je ne vois pas comment faire pour en changer le contenu.

En fait, j'arrive à passer des arguments au bloc rechargé, mais je ne vois pas comment m'y prendre pour y charger le contenu du sommaire, de l'article ou rubrique cible (selon les cas) à partir de l'url demandée.
Ni même si c'est possible, d'ailleurs...

             jean marie

Hop,

Le 10/04/2019 à 15:45, Jean Marie Grall a écrit :

Salut,

avec Zpip, j'essaie de mettre en place une navigation en ajax.

Avec la doc Zpip, blocs de page et Ajax - SPIP-Contrib et Contrôleur - Vue avec ajaxReload - SPIP-Contrib, j'arrive à recharger un bloc (au sens Zpip) à partir de l'extérieur (recharger "content" depuis la navigation principale) mais je ne vois pas comment faire pour en changer le contenu.

En fait, j'arrive à passer des arguments au bloc rechargé, mais je ne vois pas comment m'y prendre pour y charger le contenu du sommaire, de l'article ou rubrique cible (selon les cas) à partir de l'url demandée.
Ni même si c'est possible, d'ailleurs...

Je me demande si c'est pas ça que tu cherches :

args : liste d’argument qui seront passés à l’url lors du chargement du bloc (permet de modifier le #ENV du bloc mis à jour) ;

++
b_b

Le 10/04/2019 à 15:45, Jean Marie Grall a écrit :

Salut,

avec Zpip, j'essaie de mettre en place une navigation en ajax.

Avec la doc Zpip, blocs de page et Ajax - SPIP-Contrib et Contrôleur - Vue avec ajaxReload - SPIP-Contrib, j'arrive à recharger un bloc (au sens Zpip) à partir de l'extérieur (recharger "content" depuis la navigation principale) mais je ne vois pas comment faire pour en changer le contenu.

En fait, j'arrive à passer des arguments au bloc rechargé, mais je ne vois pas comment m'y prendre pour y charger le contenu du sommaire, de l'article ou rubrique cible (selon les cas) à partir de l'url demandée.
Ni même si c'est possible, d'ailleurs...

             jean marie

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Tu aurais un bout de code à montrer ? Il peut y avoir plusieurs types de réponse selon ce que tu veux faire :slight_smile:

Le 10/04/2019 à 15:56, Chourak a écrit :

Le 10/04/2019 à 15:45, Jean Marie Grall a écrit :

Salut,

avec Zpip, j'essaie de mettre en place une navigation en ajax.

Avec la doc https://contrib.spip.net/Zpip-blocs-de-page-et-Ajax et https://contrib.spip.net/Controleur-Vue-avec-ajaxReload, j'arrive à recharger un bloc (au sens Zpip) à partir de l'extérieur (recharger "content" depuis la navigation principale) mais je ne vois pas comment faire pour en changer le contenu.

En fait, j'arrive à passer des arguments au bloc rechargé, mais je ne vois pas comment m'y prendre pour y charger le contenu du sommaire, de l'article ou rubrique cible (selon les cas) à partir de l'url demandée.
Ni même si c'est possible, d'ailleurs...

Tu aurais un bout de code à montrer ? Il peut y avoir plusieurs types de réponse selon ce que tu veux faire :slight_smile:

@Chourak : Par exemple, avec la dist de Z V2, je voudrais changer le contenu du bloc "content" uniquement (https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/zpip-dist/trunk/body.html) avec, selon le lien cliqué, le contenu du sommaire, de l'article ou de la rubrique demandée.

@b_b : oui, c'est avec ça que j'arrive à passer des arguments type id_article, mais comment afficher le sommaire ou l'article selon le lien cliqué ?
Mon script avec lequel j'arrive à passer l'url demandé : http://spip.pastebin.fr/56593

             jean marie

@Chourak : Par exemple, avec la dist de Z V2, je voudrais changer le contenu du bloc "content" uniquement (https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/zpip-dist/trunk/body.html) avec, selon le lien cliqué, le contenu du sommaire, de l'article ou de la rubrique demandée.

@b_b : oui, c'est avec ça que j'arrive à passer des arguments type id_article, mais comment afficher le sommaire ou l'article selon le lien cliqué ?
Mon script avec lequel j'arrive à passer l'url demandé : http://spip.pastebin.fr/56593

Au niveau des args que tu envoies, il faut qu'ils correspondent à quelque chose.
Donc, dans le cas de ton code, tu peux essayer de remplacer

args:{toto:url_cible}

par

args:{id_article:url_cible}

Le 11/04/2019 à 10:01, Chourak a écrit :

@Chourak : Par exemple, avec la dist de Z V2, je voudrais changer le contenu du bloc "content" uniquement (https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/zpip-dist/trunk/body.html) avec, selon le lien cliqué, le contenu du sommaire, de l'article ou de la rubrique demandée.

@b_b : oui, c'est avec ça que j'arrive à passer des arguments type id_article, mais comment afficher le sommaire ou l'article selon le lien cliqué ?
Mon script avec lequel j'arrive à passer l'url demandé : http://spip.pastebin.fr/56593

Au niveau des args que tu envoies, il faut qu'ils correspondent à quelque chose.
Donc, dans le cas de ton code, tu peux essayer de remplacer

args:{toto:url_cible}

par

args:{id_article:url_cible}

Toto n'est qu'un test, bien sûr :slight_smile:

Mon souci n'est pas de passer les arguments, mais de savoir quoi passer pour que la navigation fonctionne sur l'ensemble du site : en fonction du lien cliqué, l'idée est de charger des squelettes différents (sommaire, rubrique, article...) dans le bloc "content".

Si je passe args:{id_article:XXX}, je ne peux afficher qu'un ou des articles, or j'aurais besoin d'afficher le sommaire quand je clique sur Accueil, la rubrique quand je clique dans la navigation principale, etc...

Mais plus j'avance, plus j'ai l'impression qu'il faudrait repenser mon squelette et ses inclures car, par ex, il y a des classes sur le <html> utilisées en fonction des compositions...

         jean marie

Hop,

Le 12/04/2019 à 11:40, Jean Marie Grall a écrit :

Toto n'est qu'un test, bien sûr :slight_smile:

Mon souci n'est pas de passer les arguments, mais de savoir quoi passer pour que la navigation fonctionne sur l'ensemble du site : en fonction du lien cliqué, l'idée est de charger des squelettes différents (sommaire, rubrique, article...) dans le bloc "content".

Si je passe args:{id_article:XXX}, je ne peux afficher qu'un ou des articles, or j'aurais besoin d'afficher le sommaire quand je clique sur Accueil, la rubrique quand je clique dans la navigation principale, etc...

Si tu passes un paramètre du type objet et que celui-ci permet de changer le squelette à inclure ça inclure ça devrait le faire, mais...

Mais plus j'avance, plus j'ai l'impression qu'il faudrait repenser mon squelette et ses inclures car, par ex, il y a des classes sur le <html> utilisées en fonction des compositions...

Oui, ça n'est pas une très bonne idée, car le head de ta page ne changerait pas, et donc toutes les pages risquent d'avoir le même title, description, etc.

++
b_b

Le 12/04/2019 à 11:40, Jean Marie Grall a écrit :

Le 11/04/2019 à 10:01, Chourak a écrit :

@Chourak : Par exemple, avec la dist de Z V2, je voudrais changer le contenu du bloc "content" uniquement (https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/zpip-dist/trunk/body.html) avec, selon le lien cliqué, le contenu du sommaire, de l'article ou de la rubrique demandée.

@b_b : oui, c'est avec ça que j'arrive à passer des arguments type id_article, mais comment afficher le sommaire ou l'article selon le lien cliqué ?
Mon script avec lequel j'arrive à passer l'url demandé : http://spip.pastebin.fr/56593

Au niveau des args que tu envoies, il faut qu'ils correspondent à quelque chose.
Donc, dans le cas de ton code, tu peux essayer de remplacer

args:{toto:url_cible}

par

args:{id_article:url_cible}

Toto n'est qu'un test, bien sûr :slight_smile:

Mon souci n'est pas de passer les arguments, mais de savoir quoi passer pour que la navigation fonctionne sur l'ensemble du site : en fonction du lien cliqué, l'idée est de charger des squelettes différents (sommaire, rubrique, article...) dans le bloc "content".

Si je passe args:{id_article:XXX}, je ne peux afficher qu'un ou des articles, or j'aurais besoin d'afficher le sommaire quand je clique sur Accueil, la rubrique quand je clique dans la navigation principale, etc...

Mais plus j'avance, plus j'ai l'impression qu'il faudrait repenser mon squelette et ses inclures car, par ex, il y a des classes sur le <html> utilisées en fonction des compositions...

        jean marie

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Bonjour Jean-Marie

J'ai fait un projet y'a quelques années ou le concept était un scroll horizontal de panneaux en panneaux (genre opne page), chaque panneaux était chargé en ajax suivant le lien cliqué, j'appliquais d'abord un scroll vers mon panneau, et sur le callback du scoll je lançais le chargement du contenu. Le but premier était de pouvoir écouter de la musique avec un player flash/ou autre sans que ça coupe quand on change de page (oui bon je sais j'ai vraiment que ça a faire … :stuck_out_tongue: )

ça dépend de ce que l'on veut faire, mais ça deviens vite casse tete ^^

la problématiques principale que j'avais eut de mémoire :

- le js doit être sur toute les pages et on ne peut pas commander une noisette depuis une autre : ce qui implique d'avoir un controleur central, dans mon cas j'utilisais z donc je n'ai utilisé que body et content/sommaire.

je crois que le skel était fait avec bootstrap2 a la base, je peut le déposer quelque pars a titre "éducatif", mais pas me lancer a le refaire marcher pour une démo ^^

--
Bonne journée
Arnaud B. (Mist. GraphX)

Le 12/04/2019 à 12:04, Bruno Bergot a écrit :

Mais plus j'avance, plus j'ai l'impression qu'il faudrait repenser mon squelette et ses inclures car, par ex, il y a des classes sur le <html> utilisées en fonction des compositions...

Oui, ça n'est pas une très bonne idée, car le head de ta page ne changerait pas, et donc toutes les pages risquent d'avoir le même title, description, etc.

Les pages existent en vrai avec leur code propre si on les appelle en direct (donc ok pour le référencement), les seules contraintes inévitables étant les éléments visibles par l'utilisateur (title et url de la page).

C'est après que ça se gâte :slight_smile: : classes et id qui changent en fonction des pages/compo entre autre..

Il faudrait donc, comme l'évoque Arnaud, un body avec uniquement 2 blocs Z : le contenu qui change avec la navigation en ajax à l'intérieur et celui qui ne change pas.

             jeanmarie

Salut Arnaud,

Le 12/04/2019 à 13:46, Mist. GraphX a écrit :

Bonjour Jean-Marie

J'ai fait un projet y'a quelques années ou le concept était un scroll horizontal de panneaux en panneaux (genre opne page), chaque panneaux était chargé en ajax suivant le lien cliqué, j'appliquais d'abord un scroll vers mon panneau, et sur le callback du scoll je lançais le chargement du contenu. Le but premier était de pouvoir écouter de la musique avec un player flash/ou autre sans que ça coupe quand on change de page (oui bon je sais j'ai vraiment que ça a faire … :stuck_out_tongue: )

ça dépend de ce que l'on veut faire, mais ça deviens vite casse tete ^^

la problématiques principale que j'avais eut de mémoire :

- le js doit être sur toute les pages et on ne peut pas commander une noisette depuis une autre : ce qui implique d'avoir un controleur central, dans mon cas j'utilisais z donc je n'ai utilisé que body et content/sommaire.

je crois que le skel était fait avec bootstrap2 a la base, je peut le déposer quelque pars a titre "éducatif", mais pas me lancer a le refaire marcher pour une démo ^^

Effectivement, c'est pour un site de radio avec la même contrainte de player. En fouillant, j'ai trouvé 2 façons de faire :
- avec une iframe (script type GitHub - cshum/scm-music-player: Seamless music for your website. HTML5 music player with continuous playback cross pages. mais qui parait non maintenu)
- avec de l'ajax (la plupart des radios fonctionnent comme ça)

Mon souci c'est que c'est un site avec une navigation complète (actus, archives des émissions et compagnie...), et le tout avec des maquettes différentes selon les secteurs, donc bcp de choses à bouger entre les pages...

Je veux bien jeter un œil à ton squelette par curiosité :slight_smile:

                 jean marie

Le 12/04/2019 à 15:36, Jean Marie Grall a écrit :

Salut Arnaud,

Le 12/04/2019 à 13:46, Mist. GraphX a écrit :

Bonjour Jean-Marie

J'ai fait un projet y'a quelques années ou le concept était un scroll horizontal de panneaux en panneaux (genre opne page), chaque panneaux était chargé en ajax suivant le lien cliqué, j'appliquais d'abord un scroll vers mon panneau, et sur le callback du scoll je lançais le chargement du contenu. Le but premier était de pouvoir écouter de la musique avec un player flash/ou autre sans que ça coupe quand on change de page (oui bon je sais j'ai vraiment que ça a faire … :stuck_out_tongue: )

ça dépend de ce que l'on veut faire, mais ça deviens vite casse tete ^^

la problématiques principale que j'avais eut de mémoire :

- le js doit être sur toute les pages et on ne peut pas commander une noisette depuis une autre : ce qui implique d'avoir un controleur central, dans mon cas j'utilisais z donc je n'ai utilisé que body et content/sommaire.

je crois que le skel était fait avec bootstrap2 a la base, je peut le déposer quelque pars a titre "éducatif", mais pas me lancer a le refaire marcher pour une démo ^^

Effectivement, c'est pour un site de radio avec la même contrainte de player. En fouillant, j'ai trouvé 2 façons de faire :
- avec une iframe (script type GitHub - cshum/scm-music-player: Seamless music for your website. HTML5 music player with continuous playback cross pages. mais qui parait non maintenu)
- avec de l'ajax (la plupart des radios fonctionnent comme ça)

Mon souci c'est que c'est un site avec une navigation complète (actus, archives des émissions et compagnie...), et le tout avec des maquettes différentes selon les secteurs, donc bcp de choses à bouger entre les pages...

Je veux bien jeter un œil à ton squelette par curiosité :slight_smile:

Je t'ai migré ça de svn vers git histoire de garder l'historique, ça date une peut ^^

a priori c'etait du spip-r, bootstrap less

--
Bonne journée
Arnaud B. (Mist. GraphX)

Hello,

Le 13/04/2019 à 09:14, Mist. GraphX a écrit :

Je t'ai migré ça de svn vers git histoire de garder l'historique, ça date une peut ^^

a priori c'etait du spip-r, bootstrap less

mister-graphx / SpipTOoLS / Squelettes / One page horizontal layout · GitLab

pris dans le jus, j'ai zappé de répondre, pas cool, désolé...

Ton plugin semble aller dans le même sens : pour faire de l'ajax facilement, il faut un site dont toutes les pages ont la même structure, ce qui permet de ne recharger que le contenu. Les menu, pied de page et autres parties ne bougeant pas.

ensuite, reste à changer les parties visibles par le visiteur (l'url et la balise <title>) en javascript.

Bref, mon cas ne le permet pas, donc je prends l'option iframe avec SCM PLayer GitHub - cshum/scm-music-player: Seamless music for your website. HTML5 music player with continuous playback cross pages.

Merci en tout cas

             jean marie