Version 5 — Août 2015 — placido
Placido : Voici une proposition d’organisation de vos fonctions js.
Il s’agit d’une approche globale, qui privilégie le chargement d’un seul fichier, quelque soit la page du site.
La première partie du fichier contient vos fonctions.
La seconde partie les rassemble en séquence d’éxécution.
App.init() -> lancement initial
App.reboot initAjax () -> exécution à la suite d’un rechargement ajax de spipApp . foo() -> un autre ensemble de fonctions à éxécuter ensemble
Les conditions de traitement des éléments se font dans les fonctions.
NB : vous pouvez remplacer les occurrences occurences de ’App’ par le prefix de votre plugin par exemple.
Insérer ce fichier, ainsi que son appel dans le head
comme bon vous semble, par exemple via insert_head
ainsi :
<code class=’php’>
< ? ’>< ? php
function prefixe_insert_head($flux)
$js = find_in_path(’js/App.js’) ;
$flux .= « \n
\n » ;
$flux .= «
\n » ;
return $flux ;
?>
<code class=« javascript »>
//////////////
">//////////////
// App.js //
/////////////
var App = function ()
var App = function ()
var fn1 = function()
//exemple ////exemple de test conditionnel :
// fn1 s’applique uniquement sur la page sommaire
if ($(’.page_sommaire’).length == ) return false ;
console.log(’fn1’) ;
var fn2 = function()
console.log(’fn2’) ;
var fn3 = function()
console.log(’fn3’) ;
///////////////////////////////////
return
// l’ordre des fonctions importe
au chargement initial
init : function ()
fn1() ;
fn3 fn2 () ;
// surveiller le rechargement ajax
if (typeof onAjaxLoad === ’function’)
onAjaxLoad(App.reboot initAjax ()) ;
,
// ici les fonctions à relancer à la suite d’un rechargement ajax de SPIP
reboot : function ()
fn2() ;
;
() ;
// ici les fonctions « ajaxproof »
initAjax : function ()
//console.log(’xhr’) ;
fn3() ;
;
() ;