/** * Class mootools qui permet de gérer les modèles favoris Eroblog */ var MooCookieList = new Class({ getOptions: function() { return { fav_btn_class:'foo_add_to_favourite', destination_div:'foo_my_favourites_models', whois_online:new Array(), cookie_name:'foo_cookie_name' } }, initialize: function(domain, options) { this.setOptions(this.getOptions(), options); if($(this.options.destination_div)) { this.memory = new Array(); this.ids_list = new Array(); this.domain = domain; var list_content = this.readCookie(); this.createContener(); $$('.'+this.options.fav_btn_class).each(function(el,i) { this.addClickAddEvent(el); }.bind(this)); for(i=0;i0) { var li_classname = 'online'; } else { var li_classname = 'offline'; } li.adopt(new Element('a',{'href':'/fr/profil/'+obj.id+'/view.html', 'class':li_classname, 'html':obj.name.substr(0,15)})); var a = new Element('a',{'href':'#', 'html':'(x)', 'class':'del'}); this.addClickRemoveEvent(obj.id,a); li.adopt(a); /* li.adopt(new Element('a',{'href':'#', 'html':'(x)'}).addEvent( 'click', function(e) {e.stop(); this.removeFromMemory(obj.id);}.bind(this) )); */ this.ul_contener.adopt(li); var box_id = this.options.model_box_id.replace('%ID%',obj.id); var box_el = $(box_id); if(box_el) { var addlink = box_el.getElement('.'+this.options.fav_btn_class); if(addlink) { //on ajoute le onclick de suppression this.addClickRemoveEvent(obj.id,addlink); } this.addVisualAlert(box_el); } }, removeFromMemory: function(id) { var tmp_memory = new Array(); var tmp_ids_list = new Array(); this.memory.each(function(el,i) { if(el.id != id) { tmp_memory.push(el); } }); this.createContener(); this.favContent = ''; this.memory = new Array(); this.ids_list = new Array(); this.write(tmp_memory); var box_id = this.options.model_box_id.replace('%ID%',id); var box_el = $(box_id); if(box_el) { var addlink = box_el.getElement('.'+this.options.fav_btn_class); if(addlink) { //on ajoute le onclick d'ajout this.addClickAddEvent(addlink); } this.removeVisualAlert(box_el); } }, /** * Gestiond des cookie */ readCookie: function() { var cookie_content = Cookie.read(this.options.cookie_name); var result_array = new Array(); if(cookie_content!='' && cookie_content!=null) { this.favContent = cookie_content; var line = cookie_content.substr(0,cookie_content.length-2).split('||'); line.each(function(el,i) { var item = el.split(':'); result_array.push({id:item[0],name:item[1]}); }); } else { this.favContent = ''; } return result_array; }, writeCookie: function(content) { Cookie.write(this.options.cookie_name, content, {domain:this.domain, path:'/', duration:365}); }, clearCookie: function() { Cookie.dispose(this.options.cookie_name); }, /** * gestion du visuel html */ createContener: function() { $(this.options.destination_div).innerHTML = ''; this.ul_contener = new Element('ul'); $(this.options.destination_div).adopt(this.ul_contener); }, addVisualAlert: function(el) { //do nothing //a surcharger dans les class qui hérite de celle-ci }, removeVisualAlert: function(el) { //do nothing //a surcharger dans les class qui hérite de celle-ci } }); MooCookieList.implement(new Options);