Des catégories repliables Bouton_activeDes catégories repliables Bouton_hoverDes catégories repliables Fb-hoverDes catégories repliables Fb-active
CSSActif, le forum, n'est plus maintenu. Il est néanmoins disponible pour consultation. Pour des outils pratiques, rendez-vous sur:

Découvrez CSSActif, une collection d'outils et de tutoriels interactifs pour les développeurs Web — HTML, CSS, JavaScript et bien plus!

Derniers sujets
» Système d'onglets simple et personnalisable
Des catégories repliables EmptyLun 03 Juin 2024, 17:20 par birds

» Fiche de Présentation RPG
Des catégories repliables EmptySam 30 Mar 2024, 22:07 par Peyton972

» [RPG] Fiche personnage avec bannière
Des catégories repliables EmptySam 30 Mar 2024, 22:06 par Peyton972

» Structure de Qui Est En Ligne (1)
Des catégories repliables EmptyLun 04 Mar 2024, 23:20 par Peyton972

» Qui Est En Ligne - Utopia
Des catégories repliables EmptyDim 24 Déc 2023, 18:16 par romee

» Pack forum complet "Androïd Sylver" RPU (N°2)
Des catégories repliables EmptyJeu 02 Nov 2023, 06:42 par Hydrar

» Formulaire de connexion rapide amélioré
Des catégories repliables EmptySam 04 Mar 2023, 18:57 par Krager

» Avatar centré dans le profil
Des catégories repliables EmptySam 11 Fév 2023, 06:04 par Krager

Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

Partagez
 

Des catégories repliables

Voir le sujet précédent Voir le sujet suivant Aller en bas 
http://ny-m39.forumactif.com/forum.htm
M39
M39
{ Membre }
{ Membre }

Masculin Messages : 130



Des catégories repliables Empty

Catégories rétractables


Informations générales

Description :
Ce tutoriel vous permettra de rendre les catégories de votre forum "rétractables" : un clic sur la barre de titre et elles se refermeront !
D'après une méthode donnée par Etana : Ici

Démo :
(Aucune démo disponible)

Testé sur :
Firefox, Chrome et Internet Explorer

Crédits :
Proposé par M39 le 18/09/10 | Validé par Hortie
- Code d'origine par Etana

Mise(s) à jour :
Refonte complète le 05/08/2012 par 'Christa Lostmindy

Le tutoriel


• Vous devez être fondateur du forum pour pouvoir éditer les templates
• Ce tutoriel est destiné aux forums ForumActif en version phpbb2


Préparation


Tout d'abord, il vous faudra vous rendre dans votre panneau d'administration et cliquer sur l'onglet Affichage puis dans le menu Page d'accueil » Structure et Hiérarchie. Choisissez alors l'option séparer les catégories (deuxième ligne), sans quoi ce tutoriel ne fonctionnera pas.

Sans logo pour signaler la rétraction


Rendez-vous dans l'onglet Affichage puis dans le menu Templates » Général et éditez le template Index_box. Cherchez le code suivant (n'oubliez pas le <tr>, c'est le plus important) :

Code:
<!-- BEGIN catrow --><!-- BEGIN tablehead --><table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="0">
  <tr>
Maintenant que vous avez trouvé cette portion de code, enregistrez-la quelque part au cas où vous voudriez revenir sur votre décision. Puis remplacez-la par le code suivant :

Code:
<!-- BEGIN catrow --><!-- BEGIN tablehead --><table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="0">
  <tr onClick="i= 0;e=this.parentNode.childNodes; while(++i<e.length) if(e[i].tagName=='TR')e[i].style.display=(e[i].style.display=='none')?'':'none';">
Si vous suivez bien, nous venons d'ajouter un attribut onClick dans la balise <tr>, dont la valeur est le script nécessaire pour votre effet.

Enregistrez votre modification, publiez votre template et voilà ! Ce n'était pas bien difficile, n'est-ce pas ?

Avec un bouton (+) et (-) cliquable pour signaler la rétraction


Attention : les deux effets ne sont pas compatibles entre eux, c'est soit l'un, soit l'autre !

Si vous préférez afficher un petit bouton pour faciliter la compréhension de vos membres, la méthode est légèrement différente.

On va utiliser deux boutons : Des catégories repliables 2z9dxyt et Des catégories repliables Xmmlpg

► Placer le bouton après "Derniers messages" :
Cherchez cette partie du code :
Code:
{L_LASTPOST}
Et ajoutez juste avant :
Code:
<img onClick="i= 0;e=this.parentNode.parentNode.parentNode.parentNode.childNodes; while(++i<e.length) if(e[i].tagName=='TR')e[i].style.display=(e[i].style.display=='none')?'':'none';this.src=(this.src=='http://i45.tinypic.com/2z9dxyt.gif')?'http://i47.tinypic.com/xmmlpg.gif':'http://i45.tinypic.com/2z9dxyt.gif';" src="http://i45.tinypic.com/2z9dxyt.gif" align="right"  class="BoutonRetrac" />
Ce bouton s'affichera juste après le texte "Derniers messages".

► Placer le bouton après le titre du forum
Si cet emplacement ne vous plaît pas, vous pouvez aussi placer le bouton juste après le titre du forum. Pour cela, cherchez la ligne :
Code:
 {catrow.tablehead.L_FORUM} 
Et ajoutez juste avant :
Code:
<img onClick="i= 0;e=this.parentNode.parentNode.parentNode.childNodes; while(++i<e.length) if(e[i].tagName=='TR')e[i].style.display=(e[i].style.display=='none')?'':'none';this.src=(this.src=='http://i45.tinypic.com/2z9dxyt.gif')?'http://i47.tinypic.com/xmmlpg.gif':'http://i45.tinypic.com/2z9dxyt.gif';" src="http://i45.tinypic.com/2z9dxyt.gif" align="right"  class="BoutonRetrac" />

► Modifier l'image utilisée
Dans les deux codes sont utilisés quatre liens, dans cette partie plus exactement :
Code:
this.src=(this.src=='http://i45.tinypic.com/2z9dxyt.gif')?'http://i47.tinypic.com/xmmlpg.gif':'http://i45.tinypic.com/2z9dxyt.gif';" src="http://i45.tinypic.com/2z9dxyt.gif"
Si vous voulez mettre d'autres images, voici comment placer les liens :
Code:
this.src=(this.src=='IMG-OUVERTURE')?'IMG-FERMETURE':'IMG-OUVERTURE;" src="IMG-OUVERTURE"

► Placer le bouton devant le texte plutôt que après
Dans les deux cas, vous pouvez aussi remplacer align="right" par align="left" pour que l'image se trouve à gauche et non plus à droite.

► Ajouter un pointeur au survol de l'image
L'image est associée à la classe .BoutonRetrac, ce qui facilite toute mise en page supplémentaire.

Dans votre panneau d'administration, sous l'onglet Affichage et dans le menu Images et couleurs » Couleurs, rendez vous dans l'onglet Feuille de styles CSS et déclarez la classe comme ceci :

Code:
.BoutonRetrac {
    cursor:pointer; /* un curseur au survol de l'image */
}

► Positionner l'image de façon plus originale
La méthode la plus simple consisterait à utiliser un peu de positionnement absolu. Pour cela, comme précédemment vous devrez définir un peu de CSS. Commencez par définir le conteneur (classe .forumline) comme élément relatif :
Code:
.forumline { position:relative; }
Partant de là, vous pourrez positionner votre bouton comme vous voulez par rapport à la table contenant la catégorie, en le définissant en position absolue et en spécifiant sa distance par rapport aux bords de la table :
Code:
.BoutonRetrac {
    position:absolute;
    top : -5px;
    left:20px;
}
Vous avez besoin d'un positionnement vertical (top ou bottom) et d'un positionnement horizontal (left ou right), donc même si l'exemple utilise top/left, vous pouvez aussi utiliser top/right, bottom/left et bottom/right. Faites vos essais pour positionner votre bouton comme vous le voulez.

Mais comment ça marche ce code ?


(Explication par 'Christa Lostmindy)
Cette explication vous servira si jamais vous comptez personnaliser votre forum et que la structure du template index_box est différente de celle d'origine.

Dans les deux cas, nous utilisons un script qui se déclenche au clic grâce à l'attribut HTML onclick.

Le script pour la première méthode (placé dans la ligne <tr>) est le suivant :
Code:
i=0;
e=this.parentNode.childNodes;
while(++i<e.length) if(e[i].tagName=='TR')e[i].style.display=(e[i].style.display=='none')?'':'none';

Le script pour la seconde méthode (placé sur l'image) est le suivant :
Code:
i=0;
e=this.parentNode.parentNode.parentNode.childNodes;
while(++i<e.length) if(e[i].tagName=='TR')e[i].style.display=(e[i].style.display=='none')?'':'none';
this.src=(this.src=='IMG_OUVRIR')?'IMG_FERMER':'IMG_OUVRIR';

Ces deux scripts contiennent trois instructions (qui finissent par un point virgule) communes :
- On initialise la variable i en lui donnant la valeur 0
- On initialise la variable e en lui attribuant un tableau de valeurs
- Pour chaque valeur de e, si e contient l'élément TR (ligne de tableau) on cache cet élément (sauf s'il était déjà caché, dans ce cas on l'affiche), puis on incrémente i (c'est à dire qu'on ajoute 1 à la valeur de la variable i)
En plus de ces instructions, dans le cas de l'image on a rajouté une instruction supplémentaire qui permet de changer l'image au clic.

En ce qui concerne la valeur de "e", vous constaterez qu'elle change selon les cas, elle a même trois valeurs différentes dans tout le tutoriel. Voyons-ça de plus près :

e=this.parentNode.parentNode.parentNode.childNodes;
this désigne l'élément qui contient le script. Il s'agit donc de <tr> dans la version sans image, et de <img> dans la version avec l'image.

parentNode désigne le parent de l'élément ciblé, c'est à dire l'élément HTML qui contient l'élément ciblé. Donc c'est <table> dans le premier cas, et <tr> ou <div> dans la version avec image (si, si, vérifiez le code source, il y a un <div> autour de {L_LASTPOST})

parentNode.parentNode.parentNode c'est le parent du parent du parent. En gros, remontez d'un cran pour chaque parentNode. L'objectif est de monter jusqu'au <table class="forumline" ... >.

chidNodes cible donc les enfants du dernier élément trouvé (bah oui c'est au pluriel).

Au final, dans tous les cas, la variable contient toujours la liste des "enfants" de <table class="forumline" ... >.

Et pour conclure


Si vous utilisez ce tutoriel, pensez à créditer Etana du forum des forums de ForumActif pour son script Wink


Dernière édition par M39 le Jeu 30 Sep 2010, 20:37, édité 5 fois
MessageSujet: Des catégories repliables   Des catégories repliables EmptySam 18 Sep 2010, 13:18
Revenir en haut Aller en bas
http://www.i-love-harvard.com/
Kaiji
Kaiji
Blanche-Neige
Blanche-Neige

Féminin Messages : 5578



Des catégories repliables Empty
FAQ


Q
//

R
//


Pour toute question sur ce tutoriel, merci de poster une demande d'aide ici :
http://www.css-actif.com/f17-aide-css-xhtml
MessageSujet: Re: Des catégories repliables   Des catégories repliables EmptyJeu 21 Juil 2011, 21:03
Revenir en haut Aller en bas
http://enaevolare.fr
'Christa
'Christa
Lostmindy
Lostmindy

Féminin Messages : 2856



Des catégories repliables Empty
Tutoriel remis à jour et complété le 05/08/2012
MessageSujet: Re: Des catégories repliables   Des catégories repliables EmptyDim 05 Aoû 2012, 13:39
Revenir en haut Aller en bas
PanzerBlitz-1
{ Membre }
{ Membre }

Masculin Messages : 24



Des catégories repliables Empty
Merci
MessageSujet: Re: Des catégories repliables   Des catégories repliables EmptyMar 10 Mai 2016, 15:15
Revenir en haut Aller en bas
Contenu sponsorisé




Des catégories repliables Empty
MessageSujet: Re: Des catégories repliables   Des catégories repliables Empty
Revenir en haut Aller en bas
 

Des catégories repliables

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Problème de script pour l'affichage des sous catégories et forums dans un système de catégories en onglet. ( forum en phpBB2)
» Catégories/Sous-catégories
» catégories
» Catégories
» Modifications catégories

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
CSSActif :: Tutoriels de CSSActif :: ForumActif Pas à pas :: Les Forums et Catégories-

Partenaires Or


← Page précédente   ↑ Aller en haut Copyright © CSSActif 2009 - 2013 Tous droits réservés
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit