Une autre aproche objet
Bon j'essaye de m'y remettre un peu ;) je prépare un nouveau design et dans le but de garder le principe des billets ouvert fermé sur la même page (le ptit plus qui dévoile le contenu du billet) je me dis que je vais garder les billets ouvert en cookie pour qu'on ai pas perpétuellement a réouvrir ceux qui nous intéresse ...
Bon je suis a fond dans l'objet et j'avais déja fait un billet sur l'objet en javascript. Depuis j'ai appris des trucs que je n'avais pas encore mis en pratique ... Donc pour vous faire par de mes découvertes j'ai repris le billet concernant la gestion des cookes en javascript (qui date quand même du 10 février ;)) et je l'ai remis à la sauce objet ...
/************************************************************************ Cookies.js - Copyright Jonathan Adami **************************************************************************/ /** * This class is able to manage access and manipulations of cookies * class Cookie */ Cookies = function () { this._init (); } /** * The constructor of the Cookies class */ Cookies.prototype._init = function () { } /** * This function is able to return the value of the cookie by its name. * * @param string name The name of the cookie * @return string The value requested or null if the cookie does not exists */ Cookies.prototype.get = function (name) { var cookies = document.cookie; var pos = cookies.indexOf(name); if (pos != -1) { var cook = cookies.slice(pos,cookies.length); var cook = (cook.indexOf(';') != -1) ? cook.slice(0,cook.indexOf(';')) : cook; return cook.slice(cook.indexOf('=')+1,cook.length); } else { return null; } } /** * This function is able to define a new cookie * * @param string name The name of the cookie * @param mixed value The value associated with the cookie */ Cookies.prototype.set = function (name, value) { document.cookie = name + "=" + value; } /** * This function is able to set or redefine the expiration gap of a given cookie * * @param string name The name of the focused cookie * @param int gap the delay between now and the cookie expiration (in seconds) */ Cookies.prototype.setExpiration = function (name, gap) { var d = new Date(); d.setTime(d.getTime()+(gap*60000)); this.set(name,this.get(name) + ";expires = " + d.toGMTString()); } /** * This function is able to remove a cookie. * * @param string name The name of the cookie to delete */ Cookies.prototype.del = function (name) { this.setExpiration(name,0); }
Bon je suis sur qu'il y a plein de petites choses a rajouter/modifier/perfectionner mais disons que ça marche ... petit test pour se le prouver :
c = new Cookies(); alert(c.get('testCookie')); c.set('testCookie','Thats my first test'); alert(c.get('testCookie'));
Premier affichage : 'null' et 'Thats my first test', après F5 on a deux fois la même phrase j'en déduis que ça fonctionne ;)
