Contrôleur - Vue avec ajaxReload - commentairesContrôleur - Vue avec ajaxReload2020-05-26T12:52:23Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment5053952020-05-26T12:52:23Z<p>Yop,</p>
<p>une petite suggestion d'amélioration du tuto : si Javascript est désactivé, le clic sur un article de la liste amène à la page de l'article, ce qui n'est pas le même comportement qu'en ajax (on change de page).</p>
<p>Dans la liste d'articles, un lien vers <code class="spip_code spip_code_inline" dir="ltr">[(#SELF|parametre_url{id_article,#ID_ARTICLE})]</code> au lieu de #URL_ARTICLE permettrait de reproduire la même chose (on recharge la page avec une autre actu à droite).</p>Contrôleur - Vue avec ajaxReload2019-03-22T10:41:52Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment5005502019-03-22T10:41:52Z<p>Bonjour,</p>
<p>j'ai testé le code sur mon site et lorsque je charge la page actualités, le script me dit qu'aucun article chargé</p>
<p>j'ai essayé en y ajoutant un id_rubrique via une rubrique de mon site et toujours rien</p>
<p>une explication<small class="fine d-inline"> </small>?<br class="autobr">
faut-il parametrer kke chose en spip pour que l'ajax fonctionne<small class="fine d-inline"> </small>? car ce n'est pas la 1<sup class="typo_exposants">re</sup> fois que j'essaye d'utiliser de l'ajax et je me suis toujours pris un mur</p>Contrôleur - Vue avec ajaxReload2019-02-08T15:26:37Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4999742019-02-08T15:26:37Z<p>J'ai trouvé la réponse grâce à la liste et je la partage ici car cela peut en aider d'autres<br class="autobr">
Pour le contrôleur :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_groupes(GROUPES_MOTS){par titre}{tout}>
<B_mots>
<h3>#TITRE</h3>
<ul> <BOUCLE_mots(MOTS mots_liens){objet=article}{id_groupe}> <li><a href="[(#SELF|parametre_url{id_mot,#ID_MOT})]">#TITRE</a></li> </BOUCLE_mots>
</ul>
</B_mots>
</BOUCLE_groupes> </code></pre></div>
<p>Pour la vue :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_actu(ARTICLES){id_mot}>
<ul><li><a href="#URL_ARTICLE">#TITRE </a></li></ul>
</BOUCLE_actu></code></pre></div>
<p>Merci<br class="autobr">
SPIP c'est génial<small class="fine d-inline"> </small>!</p>Contrôleur - Vue avec ajaxReload2019-02-07T22:29:18Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4999672019-02-07T22:29:18Z<p>Après des jours ... d'essai<br class="autobr">
J'essaie de faire afficher les mots-clés par groupe (qui contiennent un article lié) du côté du contrôleur et les titres cliquables des articles liés du côté de la vue <br class="autobr">
Voici ce que j'ai mis du coté du controleur :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_groupes(GROUPES_MOTS){par titre}{tout}>
<h1>#TITRE</h1>
<BOUCLE_actu(MOTS){id_groupe}{par titre}>
<ul><li><a href="#URL_ARTICLE">#TITRE</a></li></ul>
<BOUCLE_articles(ARTICLES){id_mot}{id_rubrique}>
#TITRE
</BOUCLE_articles> </BOUCLE_actu>
</BOUCLE_groupes></code></pre></div>Contrôleur - Vue avec ajaxReload2019-02-04T14:14:34Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4999082019-02-04T14:14:34Z<p>Bonjour,<br class="autobr">
Bravo pour ton explication. Tout fonctionne<small class="fine d-inline"> </small>! <br class="autobr">
Par contre, j'aimerai remplacer le div « ajax-id-vue_actu » par un div fullscreen slide. On peut voir <a href="https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay" class="spip_out" rel='nofollow external'>ici</a>l'effet.<br class="autobr">
Quand j'ajoute onclick=«<small class="fine d-inline"> </small>closeNav()<small class="fine d-inline"> </small>» de cette façon :</p>
<div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><a href="#URL_ARTICLE" onclick="closeNav()" class="liste_actus_item" data-id="#ID_ARTICLE">Lire</a></code></pre></div> <p>L'overlay avec l'article apparaît mais se ferme de suite.<br class="autobr">
Dans le JS, j'ai changé :</p>
<div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>return true;</code></pre></div>
<p>Et ajouté :</p>
<div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code>function openNav() { document.getElementById("myNav").style.width = "100%";
}</code></pre></div>
<p>Et dans vue_actu :</p>
<div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code><div id="myNav" class="overlay vue_actu"></code></pre></div>
<p>Des idées<small class="fine d-inline"> </small>?</p>Contrôleur - Vue avec ajaxReload2019-02-01T17:38:08Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4998702019-02-01T17:38:08Z<p>Bravo pour ton explication. Tout fonctionne<small class="fine d-inline"> </small>! <br class="autobr">
Par contre, j'aimerai remplacer le div « ajax-id-vue_actu » par un div fullscreen slide. On peut voir <a href="https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay" class="spip_out" rel='nofollow external'>ici</a> l'effet.</p>
<p>Pour cela, il faut ajouter dans le JS</p>
<pre>.style.width = "100%"</pre>
<p>...<br class="autobr">
Mais comment faire<small class="fine d-inline"> </small>?</p>
<p>Des idées<small class="fine d-inline"> </small>?</p>Contrôleur - Vue avec ajaxReload2019-02-01T16:12:54Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4998662019-02-01T16:12:54Z<p>Bravo pour ton explication. Tout fonctionne<small class="fine d-inline"> </small>! <br class="autobr">
Par contre, j'aimerai remplacer le div « ajax-id-vue_actu » par un div fullscreen slide. On peut voir ici l'effet : <a href="https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay" class="spip_url spip_out auto" rel="nofollow external">https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay</a><br class="autobr">
Quand j'ajoute onclick=«<small class="fine d-inline"> </small>closeNav()<small class="fine d-inline"> </small>» de cette façon :</p>
<div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><a href="#URL_ARTICLE" onclick="closeNav()" class="liste_actus_item" data-id="#ID_ARTICLE">Lire</a></code></pre></div> <p>Et bien, ça ne fonctionne pas...<br class="autobr">
Des idées<small class="fine d-inline"> </small>?</p>Contrôleur - Vue avec ajaxReload2019-02-01T16:08:45Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4998642019-02-01T16:08:45Z<p>Bravo pour ton explication. Tout fonctionne<small class="fine d-inline"> </small>! <br class="autobr">
Par contre, j'aimerai remplacer le div « ajax-id-vue_actu » par un div fullscreen slide. On peut voir ici l'effet : <a href="https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay" class="spip_url spip_out auto" rel="nofollow external">https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_overlay</a><br class="autobr">
Quand j'ajoute onclick=«<small class="fine d-inline"> </small>closeNav()<small class="fine d-inline"> </small>» de cette façon :</p>
<div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><a href="#URL_ARTICLE" onclick="closeNav()" class="liste_actus_item" data-id="#ID_ARTICLE">Lire</a></code></pre></div> <p>Et bien, ça ne fonctionne pas...<br class="autobr">
Des idées<small class="fine d-inline"> </small>?</p>Contrôleur - Vue avec ajaxReload2018-12-21T09:55:03Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4991902018-12-21T09:55:03Z<p>Hello,</p>
<p>tu ne pourras pas « pousser » une valeur par défaut. C'est ta vue qui doit intégrer une valeur par défaut.</p>
<p>Une solution serait de calculer la valeur par défaut de l'id_article au chargement initial de la vue (dans dans <i>inclure/vue_actu.html</i> donc)</p>
<p>Par exemple, récupèrer le dernier article de ta rubrique Actus :</p>
<div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><BOUCLE_derniere_actu(ARTICLES){id_rubrique=9}{!par date}{0,1}>#SET{id_last_actu,#ID_ARTICLE}</BOUCLE_derniere_acu> <BOUCLE_actu_vue(ARTICLES){id_article=#ENV{id_article,#GET{id_last_actu}}></code></pre></div>Contrôleur - Vue avec ajaxReload2018-12-19T17:22:19Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4991712018-12-19T17:22:19Z<p>Petite question. Comment pousser une valeur par défaut (sans clique) à la fois dans le contrôleur (classe active) et dans la vue Ajaxée<small class="fine d-inline"> </small>? Et ainsi avoir le dernière article en date au chargement de la page. Merci.</p>Contrôleur - Vue avec ajaxReload2018-09-28T16:31:30Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4983072018-09-28T16:31:30Z<p>Mince, j'avais zappé la phrase explicative ou elle a été rajoutée après<small class="fine d-inline"> </small>? Oups, désolé.</p>Contrôleur - Vue avec ajaxReload2018-09-28T13:27:58Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4982942018-09-28T13:27:58Z<p>A priori, si la page demo est automatiquement active si vous déposez les fichiers du zip dans votre répertoire squelettes/</p>Controleur - Vue avec ajaxReload2018-09-28T13:15:59Zhttps://files.spip.net/Controleur-Vue-avec-ajaxReload#comment4982932018-09-28T13:15:59Z<p>La page démo n'est pas active a priori.</p>