Browse Source

v 2.6.3

Correction : argument manquant dans la fonction triggerAjaxLoad()
L'usage du l'inclure dynamique n'apporte pas grandchose, on en profite pour passer à un fichier statique minifié sur une seule ligne
pull/1/head
placido@roxing.net 5 years ago
parent
commit
ee99176721
  1. 2
      .gitattributes
  2. 60
      javascript/zapl.scripts.js
  3. 65
      javascript/zapl.scripts.js.html
  4. 2
      paquet.xml
  5. 16
      zcore_pipelines.php

2
.gitattributes vendored

@ -53,7 +53,7 @@ inclure/resume/mot.html -text
inclure/resume/rubrique.html -text
inclure/resume/site.html -text
inclure/resume/syndic_article.html -text
javascript/zapl.scripts.js.html -text
javascript/zapl.scripts.js -text
lang/paquet-zcore_en.php -text
lang/paquet-zcore_fr.php -text
lang/zcore.xml -text

60
javascript/zapl.scripts.js

@ -0,0 +1,60 @@
// equivalent de $.get en pur js
var getAjax = function(url, success) {
var r = new XMLHttpRequest();
r.open('GET', url);
r.onreadystatechange = function() {
if (r.readyState > 3 && r.status == 200) success(r.responseText);
};
r.send();
return r;
};
// peupler le zbloc et dire qu'il est prêt
function getZapl(bloc) {
var myurl = window.location + "";
myurl = myurl.split('#');
myurl = myurl[0] + ((myurl[0].indexOf("?") > 0) ? "&" : "?") + "var_zajax=" + bloc;
getAjax(myurl, function(data) {
var el = document.querySelector("#zapl-" + bloc);
var newEl = document.createElement('div');
newEl.innerHTML = data;
el.parentNode.replaceChild(newEl, el);
// un array qui liste les zblocs traités
if (!window.zapl_list) {
window.zapl_list = [];
}
window.zapl_list.push(bloc);
});
};
// attendre jQuery et les zblocs pour renclencher AjaxLoad
window.zapl_loop_index = 0;
zapl_loop = setInterval(function() {
//console.log("loop index : " + window.zapl_loop_index + " - jQuery chargé ? : " + (typeof jQuery.spip.triggerAjaxLoad !== 'undefined') + " - Nb zapl traités:" + window.zapl_list.length );
if ( (typeof jQuery.spip.triggerAjaxLoad === 'function') &&
(typeof window.zapl_list !== 'undefined') &&
!(document.querySelectorAll("[id^='zapl-']").length) ) {
clearInterval(zapl_loop);
var h = window.location.hash;
if (h) {
// $b correspond à la selection jQuery des zblocs
var $b = $();
window.zapl_list.forEach(function(e) {
$b = $b.add(e);
});
if ($b.find(h)[0]) {
jQuery(h).positionner(true);
}
}
jQuery.spip.triggerAjaxLoad(document);
return;
}
// Au dela de 20 sec ...
else if (window.zapl_loop_index < 200) {
window.zapl_loop_index++;
}
// ... auto-débraillage
else {
clearInterval(zapl_loop);
}
}, 100);

65
javascript/zapl.scripts.js.html

@ -1,65 +0,0 @@
[(#HTTP_HEADER{Content-type:application/javascript[; charset=(#CHARSET)]})]
[//(#REM) equivalent de $.get en pur js]
var getAjax = function(url, success) {
var r = new XMLHttpRequest();
r.open('GET', url);
r.onreadystatechange = function() {
if (r.readyState>3 && r.status==200) success(r.responseText);
};
r.send();
return r;
}
[//(#REM) Peupler le zbloc et dire qu'il est prêt ]
function getZapl(bloc) {
var myurl = window.location + "";
myurl = myurl.split('#');
myurl = myurl[0] + ((myurl[0].indexOf("?")>0)?"&":"?") + "var_zajax=" + bloc;
getAjax(myurl, function(data){
var el = document.querySelector("#zapl-"+ bloc);
var newEl = document.createElement('div');
newEl.innerHTML = data;
el.parentNode.replaceChild(newEl, el);
[//(#REM) un array qui liste les zblocs traités ]
if(!window.zapl_list) {window.zapl_list = [];}
window.zapl_list.push(bloc);
});
};
[//(#REM) attendre jQuery et les zblocs pour déclencher AjaxLoad ]
window.zapl_loop_index = 0;
zapl_loop = setInterval(function() {
[//(#REM) DEBUG
console.log("loop index:" + window.zapl_loop_index);
console.log("jQuery ?:" + (typeof jQuery.spip.triggerAjaxLoad !== 'undefined'));
console.log("Nb zapl traités:" + window.zapl_list.length );
//]
if ((typeof jQuery.spip === 'object')
&& (typeof jQuery.spip.triggerAjaxLoad === 'function')
&& (typeof window.zapl_list !== 'undefined')
&& !(document.querySelectorAll("[id^='zapl-']").length) ) {
clearInterval(zapl_loop);
jQuery.spip.triggerAjaxLoad();
var h = window.location.hash;
if (h) {
[//(#REM) $b correspond à la selection jQuery des zbloc ]
var $b = $();
window.zapl_list.forEach(function(e){
$b=$b.add(e);
});
if ($b.find(h)[0]) {
jQuery(h).positionner(true);
}
}
return;
}
[//(#REM) Au dela de 20 sec ... ]
else if (window.zapl_loop_index < 200){
window.zapl_loop_index++;
}
[//(#REM) ... auto-débraillage ]
else {
clearInterval(zapl_loop);
}
}, 100);

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="Zcore"
categorie="outil"
version="2.6.2"
version="2.6.3"
etat="stable"
compatibilite="[3.0.0;3.2.*]"
logo="prive/themes/spip/images/z-core-32.png"

16
zcore_pipelines.php

@ -165,7 +165,7 @@ function zcore_pre_propre($flux) {
}
/**
* Ajouter les scripts pour getZaplBloc() dans head, directement, sans src
* Ajouter les scripts pour getZaplBloc()
* Ajouter le inc-insert-head du theme si il existe
*
* @param string $flux
@ -173,9 +173,16 @@ function zcore_pre_propre($flux) {
* @return string
*/
function zcore_insert_head($flux) {
// on utilise recuperer_fond() car on veut pouvoir s'affranchir de jQl pour agir plus tôt
if ( defined('_Z_AJAX_PARALLEL_LOAD_OK') AND $fond = recuperer_fond('javascript/zapl.scripts.js', array(), array('ajax' => false) )) {
$flux = "\n<script type=\"text/javascript\">\n" . compacte($fond,"js") . "</script>\n". $flux;
// insertion du script pour le chargement parallelisé des zblocs (ZAPL)
// mode "one-liner" car on veut rester hors de la compression des js ou du chargement différe jQl pour agir plus vite.
if ( defined('_Z_AJAX_PARALLEL_LOAD_OK') AND ($file = find_in_path('javascript/zapl.scripts.js')) ) {
include_spip('filtres/compresseur');
if (function_exists('compacte')) {
$file = compacte($file, 'js');
}
lire_fichier($file, $js);
$flux .= "\n".'<script type="text/javascript">/*<![CDATA[*/'. str_replace(PHP_EOL,'',$js) .'/*]]>*/</script>'."\n";
}
if (find_in_path('inc-insert-head.html')) {
@ -193,6 +200,7 @@ function zcore_insert_head($flux) {
* @return string
*/
function zcore_insert_head_css($flux) {
include_spip('public/styliser_par_z');
$contenu = z_blocs(false);
$contenu = reset($contenu);

Loading…
Cancel
Save