Rev 23 | Rev 63 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
// configuration
var urlRacine = 'http://www.tela-botanica.org',
config = {
prod: {
urlWidgetNavigation : urlRacine + '/widget:reseau:navigation'
},
test: {
urlWidgetNavigation : urlRacine + '/widget-test:reseau:navigation',
},
local: {
urlWidgetNavigation : 'http://localhost/widget:reseau:navigation'
}
};
/**
* Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe
* dans la page appelante.
*
* Nécessite jQuery
*
* Utilisation :
* - prévoir un <div id="tb-navigation"> dans la page, qui accueillera la barre de navigation.
* - si ce <div> contient déjà quelque chose, son contenu sera reporté à la place de la zone ayant l'id "contenu-source"
* de la barre de navigation (si une telle zone existe)
* - si ce <div> contient un attribut "data-courant" et si la valeur de cet attribut correspond à l'id d'un des éléments
* de navigation, alors cet élément aura la classe "active" (pour localiser la page courante dans les menus)
* - si ce <div> contient un attribut "data-squelette", alors le widget de navigation sera appelé avec le paramètre
* "?squelette=contenu-de-data-squelette"; se reporter à la documentation du widget:reseau:navigation
*/
$(document).ready(function() {
var div = $('#tb-navigation');
if (div) {
var squelette = div.data('squelette'),
courant = div.data('courant'),
mode = div.data('mode') || 'prod',
contenu = div.html();
// chargement de la barre
var urlBarreNavigation = config[mode]['urlWidgetNavigation'];
if (squelette) {
urlBarreNavigation += '?squelette=' + squelette;
}
htmlBarre = $.ajax({
url: urlBarreNavigation,
type: 'get',
success: function(data) {
div.html(data);
// activation de l'entrée de menu
if (courant) {
var menuCourant = div.find('#' + courant);
if (menuCourant) {
menuCourant.addClass('active');
}
}
// remplacement de la zone contenu-source
var zoneSource = div.find('#contenu-source');
if (zoneSource) {
zoneSource.replaceWith(contenu);
}
},
error: function() {
div.html('Erreur: impossible de charger la barre de navigation');
}
});
}
});