Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Pages : 1
Bonjour,
je suis nouvelle ici (hihi), et je me demandais si il était possible d'afficher le chapô d'un billet protégé par un mot de passe dans un flux de billets (page d'accueil ou autre) ?
Hors ligne
Je pense que cette fonction pourrait m'être utile.
Hors ligne
Ben dis donc, tu as de la chance qu'une modo à twix passait par là pour t'aider :-P
La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?
Hors ligne
Je crois que tu peux passer withoutPassword en paramètre quand tu récupères une liste de billets avec la fonction $core->blog->getPosts($params);
Hors ligne
Pour réussir à faire quelque chose du genre, voici un bout de code qui semble fonctionner. D'abord, dans le fichier _public.php du thème, il faut ajouter :
$core->tpl->addBlock('AllEntries', array('tplPassword','tplAllEntries'));
$core->tpl->addBlock('EntryHasPassword', array('tplPassword','tplEntryHasPassword'));
class tplPassword {
public static function tplAllEntries($attr, $content) {
global $core;
$res = '<?php $passwordState = $core->blog->without_password; ';
$res .= '$core->blog->withoutPassword(false); ?>';
$res .= $core->tpl->Entries($attr, $content);
$res .= '<?php $core->blog->withoutPassword($passwordState); ?>';
return $res;
}
public static function tplEntryHasPassword($attr, $content) {
$withPassword = isset($attr['not']) ? 0 : 1;
return '<?php if (('.$withPassword.' && $_ctx->posts->post_password != \'\') || (!'.$withPassword.' && $_ctx->posts->post_password == \'\')) : ?>'.$content.'<?php endif; ?>';
}
}
(Bien entendu, il faut que tout cela se trouve entre des balises '<?php' et '?>'.)
Ensuite, il faut recopier les fichiers des flux dans les dossier tpl du thème, modifier les boucles <tpl:Entries> pour devenir <tpl:AllEntries> et adapter le comportement selon le cas avec le nouveau bloc de template <tpl:EntryHasPassword>.
Par exemple, remplacer le contenu par un message indiquant que le billet est protégé par mot de passe dans le cas d'un billet protégé, la boucle Entries du fichier atom.xml deviendrait :
<tpl:AllEntries>
<entry>
<title>{{tpl:EntryTitle encode_xml="1"}}</title>
<link href="{{tpl:EntryURL}}" rel="alternate" type="text/html"
title="{{tpl:EntryTitle encode_xml="1"}}" />
<id>{{tpl:EntryFeedID}}</id>
<updated>{{tpl:EntryDate iso8601="1"}}</updated>
<author><name>{{tpl:EntryAuthorCommonName encode_xml="1"}}</name></author>
<tpl:EntryIf has_category="1">
<dc:subject>{{tpl:EntryCategory encode_html="1"}}</dc:subject>
</tpl:EntryIf>
<tpl:EntryMetaData><dc:subject>{{tpl:MetaID}}</dc:subject></tpl:EntryMetaData>
<content type="html">{{tpl:EntryExcerpt absolute_urls="1" encode_xml="1"}}
<tpl:EntryHasPassword not="1">{{tpl:EntryContent absolute_urls="1" encode_xml="1"}}</tpl:EntryHasPassword>
<tpl:EntryHasPassword><p>Le contenu de ce billet est protégé par mot de passe.</p></tpl:EntryHasPassword>
</content>
<tpl:Attachments>
<link rel="enclosure" href="{{tpl:AttachmentURL}}"
length="{{tpl:AttachmentSize full="1"}}" type="{{tpl:AttachmentMimeType}}" />
</tpl:Attachments>
<tpl:EntryIf comments_active="1">
<wfw:comment>{{tpl:EntryURL}}#comment-form</wfw:comment>
<wfw:commentRss>{{tpl:BlogFeedURL type="atom"}}/comments/{{tpl:EntryID}}</wfw:commentRss>
</tpl:EntryIf>
</entry>
</tpl:AllEntries>
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Pages : 1
Vous n'êtes pas identifié(e).