Nous avions vu dans un article précédent comment limiter l’affichage de certains widgets à certaines pages grâce aux balises conditionnelles </b:if xxx>.
La particularité de cette méthode est que les éléments encadrés par les balises <b:if xxxxxxx> et </b:if> ne peuvent être affiché que sur les pages indiquées.
Ainsi, en mettant un élément entre les balises <b:if cond='data:blog.url == data:blog.homepageUrl'> et </b:if> les éléments encadrés ne seront visible que si et seulement si l’on se trouve à la page d’accueil (homepageurl).
Comme le voulaient certains ici, on est en droit de se poser la question de savoir quoi faire pour afficher un élément partout, sauf à la page d’accueil.
Pour cela, il suffit d’effectuer un simplement changement dans le code qui contient deux signes d’égalité (= = ) signifiant “ afficher si et seulement si c’est cette page ”. A la place du premier signe d’égalité (=) on met un point d’exclamation (!) pour dire a Blogger de n’afficher la partie encadré que dans le cas où on ne se trouve pas sur la page indiqué dans le code.
Ainsi, quand on met = = c’est une conditionnalité positive qui pourrait dire “ Afficher si et seulement si c’est cette page ”. Tandis que quand on met != c’est une conditionnalité négative qui pourrait dire “ Afficher seulement si ce n’est pas cette page ” (dire que j’ai souvent échoué en math. Ah, Blogger, tu me permet de tirer vengeance).
Notez toutefois deux méthodes pour interdire l'affichage d'un widget :
1. Mettre les balises de conditionnement à l'intérieur du widget
Cocher sur "développer des modèles de gadget" et trouver le widget pour lequel on voudrait interdire l'affichage. Mettre les balises de conditionnement après la première ligne du widget et avant la dernière, celle qui clôture (</b:widget>).
Ceci va donner quelque chose du genre :
<b:widget id='HTML1' locked='false' title='' type='HTML'>
<b:if cond='data:blog.pageType != "item"'>
<b:includable id='main'>
CONTENU DU WIDGET
</b:includable>
</b:if>
</b:widget>
2. Créer une nouvelle section contenant le widget (ou les widgets) à ne pas afficher
Ici, c'est mieux de travailler sans cocher sur “ développer des modèles de gadget ”.
Ainsi, si je veux mettre un widget html entre des balises de limitation pour qu’il ne s’affiche que si on n’est pas à la page d’accueil, je vais créer une nouvelle section dans laquelle j’insère le widget et l’entoure (la section) des balises voulues.
<b:if cond='data:blog.url != data:blog.homepageUrl'>
<b:section id= 'Ma nouvelle section 1'>
<b:widget id='HTML1' locked='false' title='' type='HTML'/>
</b:section>
</b:if>
Bon, comme à ce niveau je crois que vous devez avoir compris de quoi il retourne, voyons les différents codes à utiliser pour ne pas afficher un élément sur une page donnée et l’afficher sur le reste des pages.
1. Afficher un élément seulement si ce n’est pas à la page d’accueil
<b:if cond='data:blog.url != data:blog.homepageUrl'>
Contenu à ne pas afficher à la page d’accueil
</b:if>
2. Afficher un élément seulement si ce n’est pas aux pages de messages (d’articles)
<b:if cond='data:blog.pageType != "item"'>
Contenu à ne pas afficher aux pages d’articles
</b:if>
3. Afficher un élément seulement si ce n’est pas à la page d’un libellé donné
<b:if cond='data:blog.url != "http:// nom-de-votre-blog.blogspot.com/search/label/nom-du-libellé"'>
Contenu
</b:if>
4. Afficher un élément seulement si ce n’est pas sur un article portant un libellé donné :
<b:if cond='data:label.name != "Nom du libellé"'>
contenu à ne pas afficher
</b:if>
Ce code pourrait aider Beetleone qui voulait ne pas afficher la publicité adsense sur les pages d’articles sponsorisés qu’il écrit pour Ebuzzing. En attribuant à ces articles le même libellé (Articles sponsorisés par exemple), on peut encadrer le code adsense qu’on utilise avec cette balise de limitation afin qu’il ne s’affiche que quand on n’est pas sur les pages ayant pour libellé “ Articles sponsorisés ”.
Ceci va donner quelque chose du genre :
<b:if cond='data:label.name != "Nom du libellé"'>
<script debut code adsense>
contenu du code
</script fin du code adsense>
</b:if>
5. Afficher un élément seulement si ce n’est pas la page d’un article quelconque
<b:if cond='data:blog.url != "URL_DE_VOTRE_PAGE"'>
Contenu à ne pas afficher sur la page d’un article donné
</b:if>
Grâce à cette balise, j’ai interdit l’affichage de la barre latérale (sidebar) quand on se trouve sur la page dédié aux résultats de recherche (ça parce que je voulais utilisé Google recherche personnalisée. J’ai abandonné l’option parce que j’ai trouvé que les résultats fournis par Google blogsearch était plus pertinent et n’affichaient pas ceux des autres sites ou blog).
J’avais donc encadré la sidebar de cette manière :
<b:if cond='data:blog.url != "http://blogger-au-bout-du-doigt.blogspot.com/2007/05/recherche.html"'>
<b:section id= ‘sidebar’>
contenu de la sidebar
</b:section>
</b:if>
Bon, j’espère qu’avec ça, et l’autre méthode positive pour limiter l’affichage de certaines composantes sur certaines pages, vous pourrez épater vos visiteurs.
P.S : BLOgixtrA vous propose du people à fond.
La particularité de cette méthode est que les éléments encadrés par les balises <b:if xxxxxxx> et </b:if> ne peuvent être affiché que sur les pages indiquées.
Ainsi, en mettant un élément entre les balises <b:if cond='data:blog.url == data:blog.homepageUrl'> et </b:if> les éléments encadrés ne seront visible que si et seulement si l’on se trouve à la page d’accueil (homepageurl).
Comme le voulaient certains ici, on est en droit de se poser la question de savoir quoi faire pour afficher un élément partout, sauf à la page d’accueil.
Pour cela, il suffit d’effectuer un simplement changement dans le code qui contient deux signes d’égalité (= = ) signifiant “ afficher si et seulement si c’est cette page ”. A la place du premier signe d’égalité (=) on met un point d’exclamation (!) pour dire a Blogger de n’afficher la partie encadré que dans le cas où on ne se trouve pas sur la page indiqué dans le code.
Ainsi, quand on met = = c’est une conditionnalité positive qui pourrait dire “ Afficher si et seulement si c’est cette page ”. Tandis que quand on met != c’est une conditionnalité négative qui pourrait dire “ Afficher seulement si ce n’est pas cette page ” (dire que j’ai souvent échoué en math. Ah, Blogger, tu me permet de tirer vengeance).
Notez toutefois deux méthodes pour interdire l'affichage d'un widget :
1. Mettre les balises de conditionnement à l'intérieur du widget
Cocher sur "développer des modèles de gadget" et trouver le widget pour lequel on voudrait interdire l'affichage. Mettre les balises de conditionnement après la première ligne du widget et avant la dernière, celle qui clôture (</b:widget>).
Ceci va donner quelque chose du genre :
<b:widget id='HTML1' locked='false' title='' type='HTML'>
<b:if cond='data:blog.pageType != "item"'>
<b:includable id='main'>
CONTENU DU WIDGET
</b:includable>
</b:if>
</b:widget>
2. Créer une nouvelle section contenant le widget (ou les widgets) à ne pas afficher
Ici, c'est mieux de travailler sans cocher sur “ développer des modèles de gadget ”.
Ainsi, si je veux mettre un widget html entre des balises de limitation pour qu’il ne s’affiche que si on n’est pas à la page d’accueil, je vais créer une nouvelle section dans laquelle j’insère le widget et l’entoure (la section) des balises voulues.
<b:if cond='data:blog.url != data:blog.homepageUrl'>
<b:section id= 'Ma nouvelle section 1'>
<b:widget id='HTML1' locked='false' title='' type='HTML'/>
</b:section>
</b:if>
Bon, comme à ce niveau je crois que vous devez avoir compris de quoi il retourne, voyons les différents codes à utiliser pour ne pas afficher un élément sur une page donnée et l’afficher sur le reste des pages.
1. Afficher un élément seulement si ce n’est pas à la page d’accueil
<b:if cond='data:blog.url != data:blog.homepageUrl'>
Contenu à ne pas afficher à la page d’accueil
</b:if>
2. Afficher un élément seulement si ce n’est pas aux pages de messages (d’articles)
<b:if cond='data:blog.pageType != "item"'>
Contenu à ne pas afficher aux pages d’articles
</b:if>
3. Afficher un élément seulement si ce n’est pas à la page d’un libellé donné
<b:if cond='data:blog.url != "http:// nom-de-votre-blog.blogspot.com/search/label/nom-du-libellé"'>
Contenu
</b:if>
4. Afficher un élément seulement si ce n’est pas sur un article portant un libellé donné :
<b:if cond='data:label.name != "Nom du libellé"'>
contenu à ne pas afficher
</b:if>
Ce code pourrait aider Beetleone qui voulait ne pas afficher la publicité adsense sur les pages d’articles sponsorisés qu’il écrit pour Ebuzzing. En attribuant à ces articles le même libellé (Articles sponsorisés par exemple), on peut encadrer le code adsense qu’on utilise avec cette balise de limitation afin qu’il ne s’affiche que quand on n’est pas sur les pages ayant pour libellé “ Articles sponsorisés ”.
Ceci va donner quelque chose du genre :
<b:if cond='data:label.name != "Nom du libellé"'>
<script debut code adsense>
contenu du code
</script fin du code adsense>
</b:if>
5. Afficher un élément seulement si ce n’est pas la page d’un article quelconque
<b:if cond='data:blog.url != "URL_DE_VOTRE_PAGE"'>
Contenu à ne pas afficher sur la page d’un article donné
</b:if>
Grâce à cette balise, j’ai interdit l’affichage de la barre latérale (sidebar) quand on se trouve sur la page dédié aux résultats de recherche (ça parce que je voulais utilisé Google recherche personnalisée. J’ai abandonné l’option parce que j’ai trouvé que les résultats fournis par Google blogsearch était plus pertinent et n’affichaient pas ceux des autres sites ou blog).
J’avais donc encadré la sidebar de cette manière :
<b:if cond='data:blog.url != "http://blogger-au-bout-du-doigt.blogspot.com/2007/05/recherche.html"'>
<b:section id= ‘sidebar’>
contenu de la sidebar
</b:section>
</b:if>
Bon, j’espère qu’avec ça, et l’autre méthode positive pour limiter l’affichage de certaines composantes sur certaines pages, vous pourrez épater vos visiteurs.
P.S : BLOgixtrA vous propose du people à fond.
Çà frôle la transmission de pensée çà!!!
RépondreSupprimerUne heure que je cherche ce genre de code pour mon blog et super-Rodney le publie ici! Dingue :)
Vraiment intéressant, mais malgré l'aide de ton article (et de google) je n'arrive toujours pas à trouver comment faire une condition "or" et/ou "and". Peut être n'est-ce pas possible ...
RépondreSupprimerAu passage merci pour ton blog j'ai pu y trouver ce qu'il me fallait pour cacher la navbar et certains widget ;)
Bonne continuation
Bonjour Rodney
RépondreSupprimerSaurais tu interdire l'affichage des messages dont le libellé est "xxxx" ?
merci de ton aide
@ Dom : il existe une méthode, mais elle est un peut trop compliquée. Je crois que je vais écrire sur le sujet. mais sache d'avance que cette méthode ne pourra être appliqué qu'à un libellé et les messages ayant ce libellé ne s'afficheront pas à l'accueil et autre.
RépondreSupprimer@+
merci de ta réponse Rodney
RépondreSupprimerl'idée est de créer un bloc message blog2 dans lequel ne serait afficher que les articles ayant le libellé "xxxx" , je tourne en rond sur le sujet depuis un bon moment.
ton point 4 :
ne répond pas vraiment à la question et de plus j'ai un message d'erreur malgré la création d'une section , l'utilises tu ?
a bientôt Dom
@ Philippe Tyrode : Entourez le code publicitaire de adsense par les codes en rouge de l'étape 2.
RépondreSupprimerBonsoir Rodney,
RépondreSupprimerMerci pour ces précieuses informations. Je cherche à faire la même chose que DOM, à savoir : interdire l'affichage des messages dont le libellé est "xxxx"
Je pense que cela doit être faisable avec la nouvelle fonctionnalité pages de blogger mais je ne trouve pas comment.
Auriez vous une idée (même compliquée :D) ?
Salut Rodney !
RépondreSupprimerAu passage très chouette blog, j'y ai déjà trouvé pas mal d'astuce.
Par contre en appliquant ton code, ca ne fonctionne pas. Je dois avoir mal appliqué la manoeuvre.
J'aimerai que mon image de fond ne s'applique pas lorsqu"on est sur une certaine page tout en restant visible sur les autres. J'ai donc tenté d'appliquer ton code. Mais alors, le fond disparait dans toutes les pages .
Voici mon code :
background: url(http://dl.dropbox.com/u/5362724/Fond12.png) no-repeat scroll center top;
ça marche très bien sur mon blog merci beaucoup !
RépondreSupprimerSalut, Rodney. Aurais-tu une astuce pour afficher un widget ou un bout de code uniquement pour les admins d'un blog, de la même manière que les quickedit/pencil ? Tu penses que c'est possible ? J'ai essayé deux-trois trucs de base que je connaissais comme jouer avec les b:include etc mais ca ne fonctionne pas :(
RépondreSupprimermerci ça marche très bien sur mon site : http://chroniquehistoire.blogspot.com/ Dis moi ce que tu en penses ?
RépondreSupprimer