Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Auteur : Bruno Laplace
Petite mod sans prétention, pour m'amuser avec DOM et javascript.
Cette mod sert à cacher ou montrer une catégorie en cliquant sur son titre.
Par défaut, on voit toutes les catégories et on les cache en cliquant dessus.
La position est gardée en mémoire par un cookie (punbb_dyncat).
Note : Aucune modification du fichier index.php, juste un <pun_include "..."> à ajouter au template main.tpl. Testé sur FF 1.5 & 2.0 ainsi qu'IE 6.
Version 1.2 : Tout ce passe désormais en javascript façon DOM dans des fichiers .js séparés du squelette xhtml.
C'est la dernière version de DynCat sauf si besoin d'une correction de bug. La suite se nommera DynBoard.
Cette version n'a été testé que sous Firefox pour le moment mais devrait marcher sur IE & cie.
Dernière modification par mangafan (24-08-2007 20:06:48)
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Et ca ressemble à quoi ?!
M@x.
...
Hors ligne
Elle est installée sur mon forum !
A gauche sous l'avatar
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Plugin utile merci a toi! bravo pour la simplicité d'installation
BxNxG FOREVER - Forum
Hors ligne
merci mais elles s'affichent ou les images fleches ?
Hors ligne
bonjour,
c'est sympa qd on a un bon packet de forum et qu'on veut pas installer la mod sous forum
mais je crois que la même chose peut être réalisé en CSS pure
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
C'est vraiment très sympa !
M@x.
...
Hors ligne
bonjour,
c'est sympa qd on a un bon packet de forum et qu'on veut pas installer la mod sous forum
mais je crois que la même chose peut être réalisé en CSS pure
Hum la mod sous forum créait bien des forums dans les forums donc dyncat n'est pas vraiment incompatible par son fonctionnement.
Full css, sincèrement je crois pas ! Pour les images d'icônes oui, mais le reste je vois pas trop ? En plus dans l'idée c'est pas sémantique, les css ne servent pas à ça.
Comment garder les positions en cookie et avec un fonctionnement en temps réel (sans rechargement de la page et ancres inutiles) sans toucher au squelette xhtml ? Tout cela sans javascript et compatible avec tous les brouteurs (*) ?
* ie et les hover sur d'autres éléments qu'une balise <a> il aime pas !
merci mais elles s'affichent ou les images fleches ?
A gauche du texte de la catégorie, pour le moment, c'est pas en css car ça peut écraser une règle de style déjà inclus avec c'est méthode ou chevaucher un petit logo présent dans le background de la balise <h2> comme sur punbb.fr par exemple.
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Dyncat v1.2 ne marche pas si vous avez la chatbox 2.0 (en ajax) sur l'index du forum ça chamboule tout et on peut même pas envoyer de message sur la chatbox a cause d'un bouton qui le remplace
BxNxG FOREVER - Forum
Hors ligne
Cette Chatbox Je suis vraiment pas fan de l'outil donc j'ai pas voulu l'installer pour tester jusqu'à maintenant... Je verrais ça dans la soirée.
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
c'est un problèmes de compatibilité avec l'ajax je penses, j'avais installé un mod avant en ajax (un mod qui agrandit une image dans un post pour ceux qui connaissent, j'ai oublié le nom), ça ne marchait pas, enfin si ça marchait, sauf que la ChatBOX buggé, le petit logo de chargement en .gif obtenait une taille démesuré!!
BxNxG FOREVER - Forum
Hors ligne
J'ai pas le bug en local mais c'est surement parce que j'ai encore modifié dyncat en l'inclut au futur dynboard.
Du coup je met du nouveau fichier common.js :
function dyncat(i, titre) {
var h2 = document.getElementById("idx"+i).getElementsByTagName("h2")[0];
var box = document.getElementById("idx"+i).getElementsByTagName("div")[0];
if (box.style.display=='none') {
box.style.display='';
h2.getElementsByTagName("span")[0].innerHTML = '<img src="img/dynboard/min.gif" title="Réduire" /> ' + titre;
pref[i] = 1;
} else {
box.style.display='none';
h2.getElementsByTagName("span")[0].innerHTML = '<img src="img/dynboard/plus.gif" title="Développer" /> ' + titre;
pref[i] = 0;
}
}
function ArrayIdx() {
var category = new Array();
for ( i = 1; document.getElementById("idx"+i) != null; i++)
{
if( document.getElementById("idx"+i) != null)
{
category[""+i] = document.getElementById("idx"+i);
}
}
category.shift();
return category.length;
}
date = new Date;
date.setFullYear(date.getFullYear()+1);
var pref = new Array();
function catfind() {
if( document.getElementById("punindex") ) {
if (LireCookie("punbb_dyncat")) {
var cookie_value = LireCookie("punbb_dyncat");
var pref_save = cookie_value.split('_');
} else {
var pref_save = new Array();
}
var nbcat = ArrayIdx();
for( i = 1; i <= nbcat; i++)
{
(pref_save[i]) ? pref[i] = pref_save[i] : pref[i] = 1;
var h2 = document.getElementById("idx"+i).getElementsByTagName("h2")[0];
var box = document.getElementById("idx"+i).getElementsByTagName("div")[0];
var dh = h2.getElementsByTagName("span")[0].firstChild.data;
if(pref[i] == 1) {
h2.getElementsByTagName("span")[0].innerHTML = '<img src="img/dynboard/min.gif" title="Réduire" /> ' + dh;
box.style.display='';
} else {
h2.getElementsByTagName("span")[0].innerHTML = '<img src="img/dynboard/plus.gif" title="Développer" /> ' + dh;
box.style.display='none';
}
h2.i = i;
h2.titre = dh;
h2.setAttribute("onclick",function() {
dyncat(this.i, this.titre);
var pref_save = pref.join('_');
EcrireCookie("punbb_dyncat", pref_save, date);
});
h2.onclick = function() {
dyncat(this.i, this.titre);
var pref_save = pref.join('_');
EcrireCookie("punbb_dyncat", pref_save, date);
};
}
}
}
document.write('<'+'style type="text/css" media="screen">');
document.write('.hide { display: none; }');
document.write('<'+'/style>');
document.write('<div class="hide"><img src="img/dynboard/plus.gif" /><img src="img/dynboard/min.gif" /><\/div>');
if (window.attachEvent) {
window.attachEvent("onload",catfind);
} else if (window.addEventListener) {
window.addEventListener("load",catfind, false);
}
Ca fera de la lecture en plus et c'est pas que j'ai la flemme de faire une 1.2.1 pour ça ( ) mais DynBoard devrait arriver bientôt donc
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Ok on patientera! Je n'ai pas le temps de voir non plus a cause des sites que je fais donc désolé j'aurais aimé du moins. Je verrai plus tard a bientôt
BxNxG FOREVER - Forum
Hors ligne
salut mangafan,
j'ai essayé de faire un collapse pour un tableau personnalisé en bas de mon forum, le collapse marche bien mais j'ai un problème avec les cookies; je te renvois à cette discussion où j'explique mon problème.
Si tu peux me donner un coup de main ce serait super cool, merci.
Hors ligne
Bonsoir,
Je viens juste d'installer cette mod pour Easy-Forums (Tests en local) mais en effet j'ai du tester avec la chatbox sur l'index :
Après quelques recherches voici ce que j'aimerais : (Juste un lien à droite plutôt que toute la barre de la catégorie cliquable)
Il saggit de la même base, ou d'une autre modification ?
Merci de votre aide.
M@x.
EDIT : Je pense que j'ai trouvé sur PunRes : http://www.punres.org/files.php?pid=84
Dernière modification par M@x (13-01-2008 03:15:10)
...
Hors ligne
Le bug avec la chatbox, on en a déjà parlé ici ou pas loin (edit : quelques messages plus haut en fait). Et j'y peux pas grand chose. Enfin si faut que je fasse une bonne fois pour toute une version finale modifiable aisément.
Parce qu'il faudra m'expliquer pourquoi la chatbox (outil que j'exècre en général) utilise des balises h2 pour le look (la grande barre grise sur ton screen avec le moins et celle avec une chackbox en bas *) alors qu'il suffisait de faire un border sur la div qui contient les blabla fabuleusement intéressant de la chatbox...
Machin dit : Salut ça va.
Machine dit : Oui ça va.
Testeur dit : Up.
Trucmuche dit : Il faut bô.
Osef dit : J'ai mangé une pomme ce midi.
Bidulle dit : J'ai démouler un cake ce matin.
D.V. dit : Luke, je suis ton père.
* Une checkbox dans une balise h2 du snobisme juste pour dire moi je serais pas conforme au norme
Tu peux utiliser collapse en effet mais c'est plus long à installer ça touche à tout, là où dyncat ne nécessite que 2-3 lignes.
Dernière modification par mangafan (13-01-2008 05:48:53)
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
En effet l'installation est plus longue. POur ce qui est de la chatBox je suis complètement d'accord avec toi mais bon ce n'est pas moi qui choisie : j'héberge des forums, ils font ce qu'il souhaitent... (Parfois ça ne rime à rien )
M@x.
...
Hors ligne
mangafan : je viens de modifier ta mod pour en faire une extension de punbb 1.3
Je poste un lien si ça te dérange pas (j'ai pas trouvé d'informations sur la licence).
Hors ligne
Y a pas de soucis, je pensais le faire mais y a un truc qui m'a dérouté dans le système des hooks. Une boucle maudite... qui rend l'astuce des hooks assez contraignante, je trouve.
http://punbb.org/forums/viewtopic.php?id=18254
Pour la petite histoire, j'ai enfin saisi l'astuce pour avoir ma petite image au bon endroit mais je ne pourrais jamais l'avoir après la fermeture du tableau vu le positionnement du hook et la manière dont la boucle se termine...
Du coup je suis curieux de voir comment tu as adapté le code. Personnellement je voulais me débarasser du compte des tag H2 pour éviter les collision avec les nombreuses extensions à venir.
Dernière modification par mangafan (04-02-2008 18:37:14)
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Bah je me suis pas embêté, j'ai juste inclus les deux fichiers JS avec le hook hd_index_head. Et changé un poil le javascript.
Pour les h2, c'est vrai que ça peut poser problème. J'ai pas apporté de modification, mais il suffirait de sélectionner la "category+i" puis de prendre le nœud précédent (div de classe main-head), et enfin de prendre le premier nœud enfant, ou sélectionner avec un getByTagName('h2')[0].
Dernière modification par tms (04-02-2008 19:47:09)
Hors ligne
C'est vrai que ça s'adapte assez vite avec la vieille méthode de la 1.2...
Faut voir, j'aurais vraiment préféré faire ça se fasse différement mais si tu veux diffuser ton adaptation tu peux le faire y a pas de soucis.
Dernière modification par mangafan (05-02-2008 01:23:06)
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Bon du coup tms, tu m'as remit dans le bains de cette mod/extension et j'en ai refait une version en lisant tes remarques.
Permettant d'éviter tout les bugs que j'ai croisé jusque la avec les autres mods.
Me reste à voir un truc avec les noeuds car le moteur Gecko est très joueurs. Du coup il fat que je cherche un peut mieux si [c]if ( navigator.product == 'Gecko' )[/c] suffit à éviter tout les bugs et si d'autres broutteurs sont tout aussi joueur que lui.
Un petit truc en passant assez sympa d'aiileurs, si tu es confronté au mêmes ennuis que moi.
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Un lien qui devrait t'intéresser :
http://developer.mozilla.org/en/docs/Wh … in_the_DOM
Tu as un lien vers ta nouvelle version ?
Hors ligne
Oui une des dernières versions par ici.
http://www.punbb.fr/forums/viewtopic.php?id=7105
Mais maintenant c'est la façon dont Opera gère le dom qui me met des bâtons dans les roues et ie qui fait un caca nerveux en appliquant les modifs à sa façon.
J'ai une autre version en local ou ie ne plante pas car j'utilisais l'ancienne méthode en partie en gardant le clique sur le h2 de la catégorie.
Là j'ai voulu faire plus propre en plaçant une div avant les catégories et sous Firefox, ça roule comme d'habitude, après avoir bidouiller pour qu'il arrête de planter à voir des nœuds là ou il n'y en a pas, mais les deux autres broutteurs mettent leur grain de sel.
Sous Opéra du grand art il me place la div après le h2 de la catégorie et sous ie la mise en page saute après la première catégorie.
Dans l'ensemble, je dois pouvoir me contenter avec un mélange de l'ancienne et de la nouvelle méthode. Mais cela aurait été bien plus propre et plus souple avec une nouvelle div que tout le monde aurait pu modifier à sa guise sans trop s'embêter (la mettre à gauche, à droite ou au milieu, cahnger son visuel...).
Mangafan : Mettez un chat dans votre processeur !
Hors ligne
Bonjour, j'installe le mod et tout marche parfaitement. Sauf que quand je veux masquer (par exemple) la catégorie "Aide", c'est la catégorie d'au-dessus qui se masque ?
Voici un petit apercu : http://keve.kv.free.fr/visu-team/forums … /index.php
Quel est le moyen de résoudre ce problème génant ? (merci)
EDIT: PB REGLÉ
Dernière modification par VisuTeam (20-04-2008 08:23:52)
Hors ligne