![]() ![]() |
clairiere inscrit le 18/01/2010 |
Bonjour,
Je souhaiterais différencier ce que voient les inscrits et les non inscrits sur mon forum (clairiere.les-forums.com) J'ai bien réussi à rajouter un pied de page en dessous du footer de base, mais mon souci est le suivant : je ne veux pas que les non inscrits puissent voir les membres connectés (information qui apparaît dans la navigation haute et dans le footer de base). J'ai réussi à masquer le footer "de base" en le mettant à une hauteur de 0, mais dans ce cas il est aussi masqué pour les inscrits et mon pied de page personnalisé est caché aussi... J'arrive aussi à faire en sorte que le pop-up (minipopup) ne montre pas le nom des connectés (en mettant le texte et le fond de la même couleur), mais là encore mon problème est que je souhaiterais différencier ce qui s'affiche selon que l'on soit inscrit ou pas. J'ai cherché avant de poster si je trouvais cette question dans les FAQ ou dans ce forum mais ne l'ai pas trouvée... Pour l'instant j'ai triché en masquant le pied de page pour tout le monde, et en remettant les informations qui m'intéressent en en-tête pour les inscrits. mais j'aimerais bien comprendre comment faire quand même ![]() Merci de votre aide. Message modifié le 19/01 à 00:51:30 par clairiere. |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Salut, c'est plus élégant de *masquer* le contenu que de le mettre à une hauteur de zéro, même si le résultat peut être identique.
En CSS, ce serait plutôt: "display: none;" que "height: 0;". Ensuite il est prévu de pouvoir identifier si l'affichage concerne un utilisateur connecté ou un internaute anonyme non enregistré, à même les identifiants de style de la structure CSS. Dans le body: div#navigateur_gecko (dans mon cas car c'est Mozilla Firefox) > div#div_principal .div_identifie Il s'agit donc d'une classe "div_identifie" (sans le point devant, qui est une notation CSS). Le hack CSS concernant les identifiés sera: div.div_identifie ElementSurLequelAgir { |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
Je vais aller tester ça, merci beaucoup. ![]() J'aime bien l'élégance et je me doutais que je trouverais ici une solution plus jolie que mon tatonnage de débutante ![]() |
![]() ![]() |
Leydorn![]() inscrit le 05/07/2004 |
Pas tant que ça non plus hein quand on voit les vrais débutants ![]() Les inconnus tu veux dire Baba ? Anonyme ici c'est identifié. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
merci, étant une vraie débutante ça fait plaisir à lire ![]() ![]() ![]() alors le display : none, impeccable pour les minipopup je suis ravie!! En revanche : ça ne fonctionne pas pour le footer, j'ai remis mon "height : 0" Message modifié le 19/01 à 22:57:44 par clairiere. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
ah et pour mes "inscrits" - "non inscrits" en écrivant mieux mon code pour mon footer spécial inscrits, je me suis finalement servi de l'onglet "apparence-intégration", autant se servir des solutions de facilité mises à disposition ![]() |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
quitte à vous embêter.. maintenant que j'ai fait toutes mes modifications... je fais comment pour sauvegarder mon thème avec les conditions "inscrit/pas inscrits" et les hacks (si j'affiche la source, il me semble que je perds les conditions... )
y a-t-il un petit bouton "exporter thème" que je ne verrais pas? Merci de votre aide ![]() |
![]() ![]() |
Leydorn![]() inscrit le 05/07/2004 |
Le sauvegarder tu veux dire l'enregistrer ailleurs que sur le forum ?
Tu vas ravir Babaorum toi, y en a tellement qui même sans être forcément débutants ne comprennent pas car ils ne lisent pas, et toi qui prouves bien que comme il dit à chaque fois, il suffit de lire ! Tu t'es servie de sa FAQ aussi ? ![]() |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
ah oui, quand je dis vive les FAQ ce sont celles de Baborum ![]() oui je veux dire les enregistrer ailleurs... au cas où je fasse une modification malheureuse, pour éviter de tout reparamétrer pas à pas... je suis un poil fainéante quand il s'agit de refaire un truc déjà fait ![]() Message modifié le 20/01 à 10:14:55 par clairiere. |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Clairière ![]() Pour ce qui est d'enregistrer ton code... je n'en vois pas l'intérêt, il l'est sur le serveur, puisqu'appliqué à ton forum. Mais si tu veux une 2ème copie pour plus de sécurité, je te recommande tout simplement d'utiliser le bloc-notes de l'administrateur (Administration > Généralités > bas de page: "Mémo"). Ou encore de le sauvegarder dans un fichier texte sur ton disque dur, là tu ne dépends plus du tout du serveur. Par contre pour externaliser ton code CSS tu as deux solutions: il l'est déjà en tant que hach CSS dans la partie Administration > Apparence-thème > Hack (ajout de CSS aux thèmes), sinon tu peux faire encore plus propre en copiant toi-même ton code dans un fichier *.css que tu héberges quelque part sur internet, puis tu indiques son adresse en tant que feuille de style externe: Administration > Apparence-intégration > Autres personnalisations > Feuille de style (le code mis là sous forme de fichier CSS prend le pas sur les modifications faites dans l'onglet "Apparence-thème", que ce soit les réglages "faciles" des formulaires, ou bien les hacks CSS, dans le cas où il y aurait des redondances (mais rien n'est perdu, hein, juste une prééminence de certains réglages sur d'autres). Si tu as fait les modifications avec l'éditeur d'apprence avancée (Administration > Apparence avancée) c'est un peu plus compliqué mais possible... si tu as choisi le mode avancé en faisant tes modifications: c'est juste une petite séance de copier-coller: - il faut afficher chacune de tes modifications (proposées dans la boîte déroulante en haut du module; après avoir activé le pointeur bien sûr, sinon la boîte déroulante reste inaccessible) - pour chaque modification, aller dans la partie de configuration de l'apparence (en-dessous des options de sélection de l'élément modifié) et cocher la case "Mode avancé" - écrire la déclaration de style ainsi: [Ligne de pointeur CSS juste au-dessus de la zone de texte] { Dans ton cas, comment as-tu fait ? (hack CSS/feuille de style externe/appanrence avancée) Leydorn Les inconnus tu veux dire Baba ? Anonyme ici c'est identifié. oui, les inconnus -- Baba Message modifié le 20/01 à 14:46:46 par Babaorum. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
Babaorum, l'externaliser c'était juste parce que je me connais... je vais encore "bidouiller" ![]() mais tu as raison, avant de faire des modifs, je ferai des copier-coller, dans le mémo ou dans un fichier texte, il n'y a pas tant de "pavés" que ça ![]() je cherchais s'il y avait un "bouton" qui fasse l'export complet du thème modifié en une seule fois non je n'ai pas utilisé l'éditeur d'apparance avancée car je suis sur IE la plupart du temps et pas de possibilité de mettre Mozilla à la place. pour le code, je partais de #footer { height: 0px; } qui fonctionnait, donc je l'ai remplacé par #footer { display : none; } Merci de ton aide |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Ah je sais, voilà l'occasion de t'apprendre une subtilité importante des CSS: la notion de "surenchère".
En fait, voilà ce qui se passe: ta règle de style concernant #footer est tout à fait correcte, standard et bien supportée par tout navigateur digne de ce nom. Seulement voilà: il y a déjà une règle de style concernant le même élément ("#footer") dans une autre déclaration de style (probablement l'une des multiples déclarations de base attenantes à chaque forum), qui utilise aussi la propriété "display", avec une valeur différente. Il faut donc outrepasser cette règle avec la tienne. Pourquoi la tienne passe après ? C'est un peu compliqué, je ne vais pas t'embrouiller, l'essentiel est de connaître le moyen de la faire passer avant: rajouter le mot-clé "!important". Il ne se rajoute pas n'importe où dans la règle de style, mais juste après la valeur de la propriété et avant le point-virgule final, comme ceci: Code CSS: display: none !important; Et là ça va fonctionner, je viens de tester. ![]() Maintenant as-tu su faire des règles différentes pour les inscrits/non-inscrits au niveau du style ? Car pour faire cela, tu n'as pas besoin de toucher au HTML, tu peux tout faire en CSS, de la manière suivante: Code CSS: div_anonyme #header ... { Y a-t-il d'autres choses à voir, Clairière (tant que je suis chaud ![]() Message modifié le 21/01 à 13:19:01 par Babaorum. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
super, je vais essayer! merci beaucoup!
non, pour mes pieds de pages personnalisés je suis passé par apparence-intégration pour me simplifier la vie, puisque du coup le display none ne fonctionnait pas. je vais me lancer dans ce que tu viens de m'expliquer et si je vois autre chose... je reviens mais pour l'instant je ne vois rien. merci beaucoup ! |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
GENIAL!! C'est bien mieux comme ça!
MERCIIIIIIIIII!!! ![]() |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
Hum encore une question :
Code CSS
ne fonctionne pas alors que Code CSS
est ok.... (j'ai aussi essayé avec des points à la place des #) why??? merci ![]() Message modifié le 21/01 à 15:50:49 par clairiere. |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Tu ne peux pas remplacer le point "." par le dièse "#": le premier marque un nom de classe tandis que le deuxième marque un nom d'identifiant (lequel doit être --normalement-- unique dans tout le document).
Au niveau du code HTML, ça va se retranscrire respectivement par: <BaliseHTML class="...">et <BaliseHTML id="..."> A toi de voir duquel il s'agit, mais c'est forcément l'un et pas l'autre, dans chacun des cas présentés. "minipopup", par exemple, est une classe et doit donc être marqué ".minipopup". Mais en fait je crois qu'il est temps de savoir ce que tu veux réellement cacher au niveau des connectés: si c'est le pseudo-popup (et non pas le lien libellant le nombre de connectés, sur lequel on passe pour afficher le-dit pseudo-popup), il faut le prendre dans son ensemble. L'élément le plus global dans la structure HTML de ce pseudo-popup, qui ait la classe "minipopup" est un élément tableau <TABLE>, qui n'est pas l'élément LE PLUS global en soit: ce TABLE est encore englobé dans un DIV, dont l'identifiant est "overDiv". C'est probablement celui-là en entier qu'il faut cacher: #overDiv { display: none; } Par ailleurs dans ton premier bloc d'exemple, tu as en début de chaque "pointeur" CSS un ".div_anonyme" qui précise que l'élément après doit se trouver dans un DIV de classe "div_anonyme"... ce qui concrètement signifie que l'on est sur une page affichée par un internaute non connecté. Cette déclaration n'est donc valable que pour un non-connecté. Je ne sais pas comment tu as testé ton code. Je te laisse vérifier/inspecter le reste pour que tu te familiarise avec la démarche. Savoir lire le code-source est important pour savoir sur quoi on agit. Message modifié le 21/01 à 21:30:39 par Babaorum. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
merci Baba
pour le test, je l'ai fait comme pour le pied de page : en me déconnectant pour le reste, je vois bien ce que je veux mais je n'ai pas dû bien l'exprimer ou alors mal interpréter un mélange de tes réponses et des faq. je reprendrai tout ça à tête reposée. pour le moment j'ai laissé le mini pop up en display : none pour tout le monde, y compris les connectés, ça me va bien. je reviendrai t'embêter quand je peaufinerai tout ça ![]() merci beaucoup de ton aide |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Ah je viens de trouver le pourquoi du comment, au sujet du popup des connectés: il n'est pas inclus dans le div#div_principal dont la classe est soit .div_identifie soit .div_anonyme... il est au-dessus.
Donc si j'écris: .div_anonyme #overDivça ne correspond à rien: div#overDiv en question ne sera jamais trouvé dans le div.div_anonyme ... ![]() Manque de pot le DIV#overDiv est le tout premier élément dans le <BODY>... </BODY> avant tout autre... Il faudrait alors: - soit bloquer l'affichage du popup de manière inconditionnelle (c.a.d. toujours, qu'il s'agisse d'un visiteur identifié ou non) - soit utiliser JavaScript pour analyser la qualité "non identifié" de l'utilisateur (= vérifier simplement s'il existe un div d'identifiant "#div_principal" et de classe ".div_anonyme": assez simple à faire) et alors, dynamiquement (= toujours par Javascript) modifier le style de ce popup DIV#overDiv pour le rendre invisible. Du style: code Javascript if(document.getElementById('div_principal').getAttribute('class') == 'div_anonyme') { Et exécuter ce bout de Javascript après le chargemnet de la page (c.a.d. une fois tout le code source HTML lu par le navigateur, ce qui assure que toute la structure HTML existe et sera trouvée (=existante) par le Javascript). Si ça t'intéresse, je te donne les détails pour l'implémenter dans ton forum, tout est prévu pour insérer ce genre de hack Javascript. |
![]() ![]() |
Twidi maire inscrit le 18/04/2001 |
Bonne idée baba sauf que je pense que le style "display" est géré automatiquement par le script de faux-popup |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Grmph...
Pas d'autre idée, à part tout zapper par le CSS, identifié ou pas. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
Je testerai Baba
sinon je laisse comme maintenant : zappé pour tous, c'est bien aussi ![]() |
![]() ![]() |
Babaorum adjoint inscrit le 22/04/2002 |
Twidi ![]() En revanche je viens de réfléchir à un truc: on parle dans le vide là, au sujet du popup des connectés... car *de toute façon il n'apparaît pas si on n'est pas connecté*, je viens de vérifier (il faut dire que je n'ai pas l'habitude de me déconnecter sans raison, donc jamais). Alors à quoi bon essayer de faire la différence entre connecté ou pas pour ce popup-là ? Si on n'en veut pas *du tout*, on bloque tout par CSS (div#overDiv {display:none;}), sinon rien à faire. Ou alors je me suis moi-même emmêlé les pinceaux secondairement ? ![]() [RE-EDIT] Petite nuance: il y a certaines pages où l'on a la mention des connectés: celle où l'on s'identifie notamment... même si à ce moment-là on est encore non-indentifié ! (je ne sais d'ailleurs pas si c'est vraiment logique...) Message modifié le 23/01 à 01:01:42 par Babaorum. |
![]() ![]() |
clairiere inscrit le 18/01/2010 |
ah oui... ton re-édit correspond mieux à ce que j'ai vu en testant ![]() |
![]() ![]() |