ThéorieFonctionnalitésAvancé

Domaine national de premier niveau - Comparer les url avec l'expression cond=''


Les posts publiés avant juin 2015 sont susceptibles de contenir des informations obsolètes !
Référez-vous à la nouvelle théorie du langage XML ou/et posez vos questions sur le forum pour en savoir plus.
Comparer les url blogspot avec l'expression cond
Lorsque l'on construit un modèle, il peut arriver qu'on aie besoin d'appliquer des restrictions d'affichage en employant des expressions conditionnelles cond.
Avec les domaines nationaux blogspot, la mise en place de restrictions en comparant les url, peut parfois prêter à confusion...
Que doit-on réellement comparer ? Le domaine national, l'url canonique ou une autre donnée ?

En théorie

Pour commencer, réinitialisez votre cerveau. La véritable extension de votre blog blogspot est blogspot.com, même si la barre d'adresses de votre navigateur indique une autre extension.
En savoir plus

Lorsque vous employez une balise fonctionnelle b:if, vous devez comparer une donnée d'une url non-canonique à une valeur d'une url canonique.

Exemple type
<b:if cond='NO-CANONICAL_URL_DATA == "CANONICAL_URL_VALUE"'>

</b:if>


Exemple réel avec la donnée universelle : URL
<b:if cond='data:blog.url == "https://bloggercode-blogconnexion.blogspot.com/2014/07/les-phenomenes-de-rupture.html"'>

</b:if>
Vrai si, l'url de la page courante est https://bloggercode-blogconnexion.blogspot.com/2014/07/les-phenomenes-de-rupture.html, même si le domaine national est différent dans la barre d'adresse du navigateur du visiteur.


Exemple 1 à éviter
<b:if cond='data:blog.url.canonical == "https://bloggercode-blogconnexion.blogspot.com/2014/07/les-phenomenes-de-rupture.html"'>

</b:if>
Une donnée d'une url canonique est comparée à une valeur d'une url canonique.
Même si l'écriture semble logique, le résultat restera faux.


Exemple 2 à éviter
<b:if cond='data:blog.url == "http://bloggercode-blogconnexion.blogspot.fr/2014/07/les-phenomenes-de-rupture.html"'>

</b:if>
Une donnée d'une url non-canonique est comparée à une valeur d'une url d'un domaine national.
Le résultat restera faux.

Ce petit tableau récapitule ce qui peut être comparé ou non.


La donnée La valeur Résultat
Donnée url non-canonique Valeur url canonique VRAI
Donnée url non-canonique Valeur url non-canonique FAUX
Donnée url canonique Valeur url non-canonique FAUX
Donnée url canonique Valeur url canonique FAUX


En pratique

Les exemples ci-dessous regroupent les principaux gadgets qui utilisent des données d'url blogspot et la méthode à employer pour que la comparaison ne soit pas rompue.

Dans le gadget PageList (Pages autonomes)
<b:widget id='PageList1' locked='false' title='' type='PageList'>
  <b:includable id='main'>
    <b:loop values='data:links' var='link'>
      <b:if cond='data:link.href == "https://BLOG_NAME.blogpost.com/p/STATIC_PAGE_NAME.html"'>
        
      </b:if>
    </b:loop>
  </b:includable>
</b:widget>
Le gadget PageList est la seule exception. La valeur peut être une url canonique ou un domaine national.


Dans le gadget PopularPosts (Articles populaires)
<b:widget id='PopularPosts1' locked='false' title='' type='PopularPosts'>
  <b:includable id='main'>
    <b:loop values='data:posts' var='post'>
      <b:if cond='data:post.href == "https://BLOG_NAME.blogpost.com/2014/07/POST_NAME.html"'>
        
      </b:if>
    </b:loop>
  </b:includable>
</b:widget>


Dans le gadget Label (Libellés)
<b:widget id='Label1' locked='false' title='' type='Label'>
  <b:includable id='main'>
    <b:loop values='data:labels' var='label'>
      <b:if cond='data:label.url == "https://BLOG_NAME.blogpost.com/search/label/LABEL_NAME"'>
        
      </b:if>
    </b:loop>
  </b:includable>
</b:widget>


Dans le gadget Blog (Articles et libellés)
<b:widget id='Blog1' locked='true' title='' type='Blog'>
  <b:includable id='main'>
    <b:loop values='data:posts' var='post'>
      <b:if cond='data:post.url == "https://BLOG_NAME.blogpost.com/2014/07/POST_NAME"'>
        
      </b:if>

      <b:loop values='data:post.labels' var='label'>
        <b:if cond='data:label.url == "https://BLOG_NAME.blogspot.com/search/label/LABEL_NAME"'>
          
        </b:if>
      </b:loop>

    </b:loop>
  </b:includable>
</b:widget>


Appliquer des conditions fiables

Vous l'avez très certainement compris. Comparer des url n'est pas si évident que cela avec les domaines blogspot.
Mais malheureusement, les difficultés ne s'arrêtent pas là. Si le visiteur atterri sur une page dont l'url contient des paramètres (par exemple, &m=1, &m=0), que vous possédez un domaine personnalisé ou blogspot, la condition risque de ne pas s'appliquer convenablement, voire être ignorée. Au pire, si vous changez l'adresse de votre blog, toutes les conditions faisant référence à des url seront brisées...

Donc, lorsque cela est possible, ne comparez plus les url.

Utilisez les identifiants des articles ou/et des pages autonomes. Les identifiants renforcent la fiabilité de la condition parce qu'ils sont uniques et ne peuvent pas être confondu avec autre chose.
Pour les index des libellés et des résultats de la recherche, utilisez le libellé et la requête.

Avec la donnée universelle postId - Un seul ID
<b:if cond='data:blog.postId == "1321280234369536403"'>
  <!-- VRAI si la page courante est une page d'un article avec l'identifiant 1321280234369536403 -->
</b:if>

Avec la donnée universelle postId - Plusieurs ID
<b:if cond='data:blog.postId in ["1321280234369536403","5517647434663743191","6192638415539138687"]'>
  <!-- VRAI si la page courante est une page d'un article avec l'un de ces identifiants 1321280234369536403 ou 5517647434663743191 ou 6192638415539138687 -->
</b:if>

Avec la donnée universelle pageId - Un seul ID
<b:if cond='data:blog.pageId == "1321280234369536403"'>
  <!-- VRAI si la page courante est une page autonome avec l'identifiant 1321280234369536403 -->
</b:if>

Avec la donnée universelle pageId - Plusieurs ID
<b:if cond='data:blog.pageId in ["1321280234369536403","5517647434663743191","6192638415539138687"]'>
  <!-- VRAI si la page courante est une page autonome avec l'un de ces identifiants 1321280234369536403 ou 5517647434663743191 ou 6192638415539138687 -->
</b:if>

Avec la donnée universelle searchLabel
<b:if cond='data:blog.searchLabel == "Mes musiques"'>
  <!-- VRAI si la page courante est une page d'index de libellés avec le libellé Mes musiques -->
</b:if>

Avec la donnée universelle searchQuery
<b:if cond='data:blog.searchQuery == "Je cherche"'>
  <!-- VRAI si la page courante est une page d'index de résultats de recherche avec la requête Je cherche -->
</b:if>

Dans le gadget PageList (Pages autonomes)
<b:widget id='PageList1' locked='false' title='' type='PageList'>
  <b:includable id='main'>
    <b:loop values='data:links' var='link'>
      <b:if cond='data:link.id == "1321280234369536403"'>
        <!-- VRAI si l'identifiant de la page autonome est 1321280234369536403 -->
      </b:if>
    </b:loop>
  </b:includable>
</b:widget>

Dans le gadget Label (Libellés)
<b:widget id='Label1' locked='false' title='' type='Label'>
  <b:includable id='main'>
    <b:loop values='data:labels' var='label'>
      <b:if cond='data:label.name == "Mes musiques"'>
        <!-- VRAI si le libellé est Mes musiques -->
      </b:if>
    </b:loop>
  </b:includable>
</b:widget>

Dans le gadget Blog (Articles et libellés)
<b:widget id='Blog1' locked='true' title='' type='Blog'>
  <b:includable id='main'>
    <b:loop values='data:posts' var='post'>
      <b:if cond='data:post.id == "1321280234369536403"'>
        <!-- VRAI si l'identifiant de l'article ou de la page autonome est 1321280234369536403 -->
      </b:if>
      <b:loop values='data:post.labels' var='label'>
        <b:if cond='data:label.name == "Mes musiques"'>
          <!-- VRAI si le libellé est Mes musiques -->
        </b:if>
      </b:loop>
    </b:loop>
  </b:includable>
</b:widget>
Dernière modification :
Assistance publique pour le produit Blogger sur les Forums d'aides :

Certifiée par Google - Experte Platine TC (Ambassador & Advanced Troubleshooter):
  • Affectation Google France, produit Blogger, du 11/07/2011 au 28/07/2014.
  • Affectation Google US, produit Blogger depuis le 28/07/2014.

Posts les plus consultés de ce blog

DéveloppementsFichiers XML
Populaire
DéveloppementsFichiers XML
Favicons multi-sets [icon / apple-touch-icon / msapplication]
Populaire
ThéorieRéférences XMLParamètres des données
Le paramètre Image redimensionnable [isResizable]
Populaire
DéveloppementsMulti-versions
Facebook : Bouton partager [Share button]
Populaire