diff --git a/inclure-ajaxload.php b/inclure-ajaxload.php index ac9fe4d3963ae42e3e9ba7c7cb4db5d3f9cea755..03f66a54882418cdc332151318355e743f55773a 100644 --- a/inclure-ajaxload.php +++ b/inclure-ajaxload.php @@ -76,6 +76,11 @@ function recuperer_fond_ajax() { $ajax = urlencode($ajax); $ret = "spip.php?var_ajax=recuperer&var_ajax_env=$ajax"; + } else if ($methode == "esi") { + $ajax = urlencode($ajax); + $ret = "<!--esi <esi:include src='spip.php?var_ajax=recuperer&var_ajax_env=$ajax' />-->"; + $ret .= "<esi:remove><div class='includestatic'><a href=\"#\" rel=\"spip.php?var_ajax=recuperer&var_ajax_env=$ajax\">$searching</a></div></esi:remove>"; + } else if ($methode == "url_html") { $fichier = sous_repertoire(_DIR_VAR, 'cache-ajaxload').$cle.".html"; @@ -152,7 +157,11 @@ function remettre_fond_ajax_static($matches) { } function INCLUREAJAXLOAD_affichemeta($page) { - if (strpos($page, "includeajax") > 0 || strpos($page, "includestatic") > 0) { + + if ( + (strpos($page, "includeajax") > 0 || strpos($page, "includestatic") > 0) + && !strpos($page, "<esi:remove><div class='includestatic'>") > 0 + ) { $javascript = '<?php if ($_COOKIE["no_js"] != "no_js" && !_IS_BOT && _request("no_js") != "oui") { ?> <script type="text/javascript"><!-- diff --git a/plugin.xml b/plugin.xml index abbd280f96f9396387feb09184ec70c9e477ea5d..393ef3e2108a9881a934dad31cd73c857e16fc8e 100644 --- a/plugin.xml +++ b/plugin.xml @@ -3,12 +3,16 @@ <slogan>Ajoute une option <code>{ajaxload}</code> à la balise <code>#INCLURE</code></slogan> <auteur>Fil, ARNO*</auteur> <licence>© 2009 GNU/GPL</licence> - <version>1.2.0</version> + <version>1.3.0</version> <etat>stable</etat> <description> Ce plugin ajoute une option <code>{ajaxload}</code> à la balise <code>#INCLURE</code>. La noisette n'est alors pas incluse, mais chargée dynamiquement en Ajax au chargement de la page. Autre méthode: <code>{ajaxload=html}</code> fabrique une noisette statique (en HTML non dynamique) dans <code>/local/cache-ajaxload</code>, son appel se faisant ainsi hors SPIP. Le cache n'est donc plus géré par le <code>#CACHE</code> de SPIP; il est par défaut de 2 heures, on peut le forcer en ajoutant le critère <code>{ttl_ajaxload=60*60*24}</code>. + + Permet de plus d’utiliser l’<a href="https://www.varnish-cache.org/docs/3.0/tutorial/esi.html">inclusion ESI de Varnish</a>, en indiquant <code>{ajaxload=esi}</code>. + + Pour gérer les chargements Ajax «à la main», on peut récupérer l'URL des noisettes en modifiant le critère: -- <code>{ajaxload=url}</code> retourne l'URL de la noisette dynamique;