Comment afficher certains labels du plus vieux au plus récent ?

53 views
Skip to first unread message

Cours Mangas Inari Sensei

unread,
May 15, 2020, 11:37:30 AM5/15/20
to Forum Blogger Ambassade Francophone
Mon message
Bonjour,
Lorsque j'utilise la fonction Label pour afficher tous les articles portant le même label sur le blog, les articles sont affichés du plus récent en haut au plus vieux en bas... Or pour certaines catégories de labels, j'aimerais que cet ordre soit inversé (car j'aimerais écrire une série de cours qui se suivent et le premier cours doit toujours être en haut de la page.).
Est-ce que quelqu'un connaît une solution pour y arriver ?

Rachid Amaoui

unread,
May 16, 2020, 4:00:32 PM5/16/20
to Forum Blogger Ambassade Francophone
Bonjour, 
C'est possible en ajoutant l'attribut reverse à la boucle des posts.
Toutefois, l'ordre ne changera que pour les articles affichés dans une page quelconque

Cours Mangas Inari Sensei

unread,
May 16, 2020, 4:03:23 PM5/16/20
to Forum Blogger Ambassade Francophone
Merci de votre réponse, 
Comment ça se présente en code ? Où dois-je insérer ce reverse ?

Rachid Amaoui

unread,
May 16, 2020, 4:06:09 PM5/16/20
to Forum Blogger Ambassade Francophone
Vous utilisez quoi comme template? si vous ne le savez pas, vous pouvez partager le lien de votre Blog.

Cours Mangas Inari Sensei

unread,
May 16, 2020, 4:09:10 PM5/16/20
to Forum Blogger Ambassade Francophone
J'utilise un template Simple très modifié par mes soins...
Blogger Template Style
Name:     Simple
Designer: Blogger

Rachid Amaoui

unread,
May 16, 2020, 5:03:28 PM5/16/20
to blogg...@googlegroups.com

N'oublie pas de faire une sauvegarde avant de procéder aux changements suivants:
Accède au widget Blog1 puis ouvre l'inclusion main
J'ai du dupliquer la boucle en mettant une condition sur la première pour qu'elle ne s'affiche que dans la page avec le label "lol"... 
<b:if cond='data:view.search.label == "lol"'>
 
<b:loop reverse='true' values='data:posts' var='post'>
.....
 
</b:loop>
<b:else/>
 
<b:loop values='data:posts' var='post'>
.....
</b:loop>
</b:if>
Je sais que ce n'est beau à voir mais bon .......


 Normalement la boucle utilisée par défaut dans ce thème est :
<b:loop  values='data:posts' var='post'>
       
<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
          &lt;/div&gt;&lt;/div&gt;
       
</b:if>
       
<b:if cond='data:post.isDateStart'>
          &lt;div class=&quot;date-outer&quot;&gt;
       
</b:if>
       
<b:if cond='data:post.dateHeader'>
         
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
       
</b:if>
       
<b:if cond='data:post.isDateStart'>
          &lt;div class=&quot;date-posts&quot;&gt;
       
</b:if>
       
<div class='post-outer'>
         
<b:include data='post' name='post'/>
         
<b:include cond='data:blog.pageType in {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>
       
</div>


       
<!-- Ad -->
       
<b:if cond='data:post.includeAd'>
         
<div class='inline-ad'>
           
<data:adCode/>
         
</div>
       
</b:if>
     
</b:loop>

On la remplace dans un tel cas par: 
<b:if cond='data:view.search.label == "lol"'>
 
<b:loop reverse='true' values='data:posts' var='post'>
 
<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
 &lt;/div&gt;&lt;/div&gt;
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-outer&quot;&gt;
 
</b:if>
 
<b:if cond='data:post.dateHeader'>
 
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-posts&quot;&gt;
 
</b:if>
 
<div class='post-outer'>
 
<b:include data='post' name='post'/>
 
<b:include cond='data:blog.pageType in {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>
 
</div>


 
<!-- Ad -->
 
<b:if cond='data:post.includeAd'>
 
<div class='inline-ad'>
 
<data:adCode/>
 
</div>
 
</b:if>
 
</b:loop>
<b:else/>
 
<b:loop values='data:posts' var='post'>


 
<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
 &lt;/div&gt;&lt;/div&gt;
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-outer&quot;&gt;
 
</b:if>
 
<b:if cond='data:post.dateHeader'>
 
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-posts&quot;&gt;
 
</b:if>
 
<div class='post-outer'>
 
<b:include data='post' name='post'/>
 
<b:include cond='data:blog.pageType in {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>
 
</div>


 
<!-- Ad -->
 
<b:if cond='data:post.includeAd'>
 
<div class='inline-ad'>
 
<data:adCode/>
 
</div>
 
</b:if>
 
</b:loop>
</b:if>

Cours Mangas Inari Sensei

unread,
May 16, 2020, 5:12:48 PM5/16/20
to Forum Blogger Ambassade Francophone
Merci, je vais tester ce code demain matin.
Je me pose une question, est-ce que le fait d'ajouter cette condition et cette seconde boucle risque de ralentir le chargement du blog ?

Rachid Amaoui

unread,
May 16, 2020, 6:44:22 PM5/16/20
to Forum Blogger Ambassade Francophone
Salut,
 Y a mieux apparemment.
Oublie ce que je t'ai proposé au début...

Une méthode plus simple:
N'oublie pas de faire une sauvegarde avant de procéder aux changements suivants:
Accède au widget Blog1 puis ouvre l'inclusion main

Tu remplaces

<b:loop values='data:posts' var='post'>
 
<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
 &lt;/div&gt;&lt;/div&gt;
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-outer&quot;&gt;
 
</b:if>
 
<b:if cond='data:post.dateHeader'>
 
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-posts&quot;&gt;
 
</b:if>
 
<div class='post-outer'>
 
<b:include data='post' name='post'/>
 
<b:include cond='data:blog.pageType in {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>
 
</div>
 
<!-- Ad -->
 
<b:if cond='data:post.includeAd'>
 
<div class='inline-ad'>
 
<data:adCode/>
 
</div>
 
</b:if>
 
</b:loop>

Par

<b:with value='data:view.search.label == "lol" ? "true" : "false"' var='changement'>
<b:loop values='data:posts' reverse='data:changement' var='post'>

<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
 &lt;/div&gt;&lt;/div&gt;
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-outer&quot;&gt;
 
</b:if>
 
<b:if cond='data:post.dateHeader'>
 
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
 
</b:if>
 
<b:if cond='data:post.isDateStart'>
 &lt;div class=&quot;date-posts&quot;&gt;
 
</b:if>
 
<div class='post-outer'>
 
<b:include data='post' name='post'/>
 
<b:include cond='data:blog.pageType in {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>
 
</div>
 
<!-- Ad -->
 
<b:if cond='data:post.includeAd'>
 
<div class='inline-ad'>
 
<data:adCode/>
 
</div>
 
</b:if>
 
</b:loop>
</b:with>

Là, c'est beaucoup mieux, et c'est plus simple.

Cours Mangas Inari Sensei

unread,
May 17, 2020, 6:16:38 AM5/17/20
to Forum Blogger Ambassade Francophone
Merci ça fonctionne parfaitement !
Si j'ai envie d'ajouter d'autres labels en plus de "lol" à la balise with, je les ajoutes comment ? j'utilise l'opérateur or mais je ne connais pas la syntaxe en XML

Rachid Amaoui

unread,
May 17, 2020, 7:23:34 AM5/17/20
to Forum Blogger Ambassade Francophone

Bonjour,
Dans un tel cas, tu dois remplacer 
data:view.search.label == "lol"
par
data:view.search.label in ["lol","label1","label2","label3","label4","label5","label6"]
C'est mieux que l'utilisation de l'opérateur or

Cours Mangas Inari Sensei

unread,
May 17, 2020, 7:49:21 AM5/17/20
to Forum Blogger Ambassade Francophone
En effet je n'y ai pas pensé, mais c'est beaucoup mieux d'utiliser une liste.

En tout cas merci infiniment pour ton aide.

Rachid Amaoui

unread,
May 17, 2020, 8:16:02 AM5/17/20
to Forum Blogger Ambassade Francophone
Ca peut arriver:
Quand je vous ai répondu la première fois, je n'avais pas pensé à l'utilisation de la balise b:with non plus o_0

Je vous en prie,
Bonne journée
Reply all
Reply to author
Forward
0 new messages