Aide modification javascript (skittlish : WP)

Fermé
scemamadan - 12 déc. 2009 à 01:41
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 12 déc. 2009 à 03:51
Bonjour,
Voila je vais essayé de vous expliqué au mieu mon probleme : J'ai crée un blog sous wordpress 2.8 et j'ai ajouté le theme Skittlish .
Ce theme propose un changement de couleur de la sidebar selon notre choix.. Mais celle par default est "orange" Or je trouve ca tres moche.. Il y a un script java qui controle tout ca il me semble avec des histoire de cookies mais je comprends vraiment pas tres bien.. Voici le code java :

/* base class extensions */
String.prototype.trim = function() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
Array.prototype.indexOf = function(elem) {
for (var i=0; i<this.length; i++) {
if (this[i] == elem) return i;
}
return -1;
}

/* dom helpers */
function hasClass(elem, name) {
var arr = elem.className.split(' ');
if (arr.indexOf(name) != -1) {
return true;
}
return false;
}
function addClass(elem, name) {
var arr = elem.className.split(' ');
if (arr.indexOf(name) == -1) {
arr.push(name);
elem.className = arr.join(" ");
}
}
function removeClass(elem, name) {
var arr = elem.className.split(' ');
var arr2 = [];
for (var i=0; i<arr.length; i++) {
if (arr[i] != name) {
arr2.push(arr[i]);
}
}
elem.className = arr2.join(" ");
}
// we want to touch the className only once
// yeah, it's not dry :p
function replaceClass(elem, old_class, new_class) {
var arr = elem.className.split(' ');
var arr2 = [];
for (var i=0; i<arr.length; i++) {
if (arr[i] != old_class) {
arr2.push(arr[i]);
}
}
arr2.push(new_class);
elem.className = arr2.join(" ");
}

/* cookie helpers */
function setCookie(name, value, permanent) {
var expires = '';
if (permanent) {
expires = '; expires=' + (new Date()).toGMTString().replace(/20\d\d/, 2020);
}
document.cookie = name+"="+value+expires+"; path=/";
}
function getCookie(name) {
var i, crumbs, crumb;
crumbs = document.cookie.split(';');
for (var i=0; i<crumbs.length; i++) {
crumb = crumbs[i].trim();
if (crumb.indexOf(name + "=") == 0) {
return crumb.substring((name + "=").length);
}
}
return '';
}

/* el customizer */
function loadPreferences() {
var cookie = getCookie('skittlish');
if (cookie == '') {
cookie = 'fixed orange';
}
document.getElementsByTagName('body')[0].className = cookie;
}
window.onload = function() {
var o = document.getElementById("options");
var lis = o.getElementsByTagName("LI");

for (var i=0; i< lis.length; i++) {
li = lis[i];
parts = li.id.split("_");
//li.title = parts[1] + ": " + parts[2];

li.onclick = function() {
var body = document.getElementsByTagName('BODY')[0];
var new_option_group = this.id.split("_")[1];
var new_option = this.id.split("_")[2];
if (new_option_group == 'size') {
if (new_option == 'fluid') {
replaceClass(body, 'fixed', 'fluid');
} else {
replaceClass(body, 'fluid', 'fixed');
}
} else {
var colors = 'blue,cyan,green,orange,pink,red,violet'.split(',');
var current_color = '';
for (var i=0; i<colors.length; i++) {
if (hasClass(body, colors[i])) {
current_color = colors[i];
break;
}
}
if (new_option != current_color) {
replaceClass(body, current_color, new_option);
}
}
setCookie('skittlish', body.className, true);
return false;
}

}

}


Si quelqu'un sait comment modifier ce code afin que la couleur par default soit Cyan et non plus orange je lui en serait tres reconnaissant !

Merci de vos réponses, Dan
A voir également:

1 réponse

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
12 déc. 2009 à 03:51
Salut,
c'est JavaScript, pas Java. (https://fr.wikipedia.org/wiki/JavaScript) Je sais que je suis chiant mais j'insiste ! :P

Grosso modo, ton script est divisié en deux sections. La première ajoute et redéfinit certaines fonctions du langage (méthode trim</itam> pour String, <ital>indexOf pour array, etc.), et la seconde (à partir de « /* el customizer */ ») utilise ces fonctions pour écrire le cookie qui nous intéresse.
C'est cette partie qu'il faut modifier :

function loadPreferences() {
var cookie = getCookie('skittlish');
if (cookie == '') {
cookie = 'fixed orange';
}
document.getElementsByTagName('body')[0].className = cookie;
}

La fonction, comme son nom l'indique, charge les préférences de l'utilisateur. Elle commence par rechercher un cookie du nom de skittlish, et s'il n'y en a pas, utilise la valeur 'fixed orange'. À la fin (la grosse ligne commençant par « document »), c'est le body qui récupère la classe ainsi déterminée.

Je précise tout de suite que tu peux remplacer cette ligne
document.getElementsByTagName('body')[0].className = cookie;

par
document.body.className = cookie;

c'est beaucoup plus court, ça fait la même chose, et c'est suffisamment vieux pour garantir que ça marche sous tous les navigateurs. (En fait ça fait partie du DOM niveau 1, donc c'est là depuis le début ^^)

Bon voilà on a tout : à la place de 'fixed orange', tu mets 'fixed cyan' et c'est dans la poche.

;)
0