Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Bonjour et bonne année.
Je pense que la question a déjà dû être posée, mais mon googlefu est faible aujourd'hui et je n'ai rien trouvé...
Je suis à la recherche d'un widget donnant la liste des catégories et permettant d'afficher le nombre de billets dans chacune. Mais, à la différence du widget par défaut, je souhaite que ce nombre compte également les billets contenus dans les sous-catégories.
Exemple : supposons les catégories Japon/Tokyo et Japon/Osaka (le '/' indique ici la séparation catégorie / sous-catégorie), avec 10 billets pour Tokyo et 5 pour Osaka. Je souhaite donc un widget affichant :
Japon (15)
Osaka (5)
Tokyo (10)
Connaissez-vous un widget permettant cela ?
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Je n'ai pas connaissance d'une solution à ce problème. En effet, Dotclear par défaut ne considère pas que les billets d'une sous-catégorie appartiennent à sa catégorie parente, ça risque donc de ne pas être simple ;)
En ligne
Notre ami dsls a bien réussi à régler ce léger « défaut » de Dotclear 2 avec son plugin includesubcats, ce doit donc être possible... Malheureusement, il n'a pas prévu de widget idoine à livrer avec son plugin.
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Malheureusement, il n'a pas prévu de widget idoine à livrer avec son plugin.
Heureusement, c'est pas comme si tu ne savais pas le faire :p
En ligne
Exemple : supposons les catégories Japon/Tokyo et Japon/Osaka (le '/' indique ici la séparation catégorie / sous-catégorie), avec 10 billets pour Tokyo et 5 pour Osaka. Je souhaite donc un widget affichant :
Japon (15) Osaka (5) Tokyo (10)
Connaissez-vous un widget permettant cela ?
Si c'est comme le pavé "Catégories et sous-catégories" de mon blog de test (ici), alors le widget mrvbSubCategories de l'extension mrvbCustomWidgets devrait te convenir.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Je me demande d'ailleurs si je n'avais pas pompé sans vergogne une partie du code de Dsls. M'en souviens plus. Si c'est le cas, PAN sur mon bec et merci à Dsls. Que je ne manquerai pas de mentionner dans la prochaine version de mon ploug.
Edit : je viens de vérifier, non ce n'est pas Dsls qui m'a aidé sans le savoir. C'est un bout de _widgets_functions.php du plugin widgets qui m'a très fortement inspiré. Merci Olivier.
Dernière modification par Mirovinben (2011-01-02 13:18:29)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Oups !
Je demande pardon à Zeiram de lui avoir donné une fausse joie mais je n'ai pas bien lu sa demande : mon widget ne totalise pas dans la catégorie mère le nombre de billets de ses filles.
Je vais essayer de voir si je peux implémenter ça dans mrvbSubCategories.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Heureusement, c'est pas comme si tu ne savais pas le faire :p
Ce serait contraire à ma bonne résolution pour 2011 qui est d'être encore plus flemmard. ;-p
[...] mon widget ne totalise pas dans la catégorie mère le nombre de billets de ses filles.
Comme c'est nettement mieux formulé que ce que j'ai essayé de faire... Je dois encore avoir le cerveau trop embrumé de ces derniers jours... Merci !
Je vais essayer de voir si je peux implémenter ça dans mrvbSubCategories.
Cool ! Merci beaucoup. :-)
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Mirovinben a écrit :Je vais essayer de voir si je peux implémenter ça dans mrvbSubCategories.
Cool ! Merci beaucoup. :-)
Oui mais non. J'ai regardé et ne sais pas comment m'y prendre simplement.
En effet cette évolution perso du widget "Liste des catégories" (livré avec Dotclear) construit les listes à puces imbriquées au fur et à mesure de la consultation des catégories mères et filles. Donc le nombre total de billets des filles ne peut être calculé qu'à la fin du parcours de chaque liste "mère" concernée (mère qui peut avoir une descendance multiple et variée). Trop tard pour ajouter la valeur en début de liste, au niveau de la "mère".
Je suppose qu'il faudrait...
-1- faire un premier examen en coulisse,
-2- stocker au passage dans un coin (comment ? sous quelle forme ?) les différents nombres,
-3- calculer les totaux et sous-totaux
-4- puis refaire le parcours en ajoutant alors les résultats à chaque item "mère" concerné lors de la construction "Html" des listes à puces imbriquées.
Ceci quelque soit le nombre de listes et d'imbrications.
Je ne sais pas si j'ai été clair. De toute façon, ça dépasse mes compétences. Hélas ! Ça aurait été un plus indéniable au widget mrvbSubCategories. Désolé...
Ci-dessous la fonction concernée... Des fois que ça intéresse un sorcier...
public static function mrvbSubCategories($w)
{
global $core, $_ctx;
if ($w->offline || ($w->homeonly && ($core->url->type != 'default' || !empty($_GET['q'])))) {
return;
}
$rs = $core->blog->getCategories(array('post_type'=>'post'));
if ($rs->isEmpty()) {
return;
}
$res = '<div class="categories mysubcategories">'.($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '');
$ref_level = $level = $rs->level-1;
while ($rs->fetch()) {
if (strpos($w->exclude, $rs->cat_url) === FALSE) {
$class = ' class="cat'.$rs->cat_id;
if (($core->url->type == 'category' && $_ctx->categories instanceof record && $_ctx->categories->cat_id == $rs->cat_id)
|| ($core->url->type == 'post' && $_ctx->posts instanceof record && $_ctx->posts->cat_id == $rs->cat_id)) {
$class .= ' category-current';
}
$class .= '"';
if ($rs->level > $level) {
$res .= str_repeat('<ul><li'.$class.'>',$rs->level - $level);
} elseif ($rs->level < $level) {
$res .= str_repeat('</li></ul>',-($rs->level - $level));
}
if ($rs->level <= $level) {
$res .= '</li><li'.$class.'>';
}
$res .=
'<a href="'.$core->blog->url.$core->url->getBase('category').'/'.
$rs->cat_url.'">'.
html::escapeHTML($rs->cat_title).'</a>'.
($w->postcount ? ' ('.$rs->nb_post.')' : '');
$level = $rs->level;
}
}
if ($ref_level - $level < 0) {
$res .= str_repeat('</li></ul>',-($ref_level - $level));
}
$res .= '</div>';
return $res;
}
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Bin c'est super simple en fait... dans le widget par défaut, il suffit de remplacer l'appel à :
$rs->nb_post
par :
rs->nb_total
Me reste à mettre ça au propre et le proposer à Dsls pour inclusion dans includesubcats...
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Bin c'est super simple en fait... dans le widget par défaut, il suffit de (...)
Génial !
J'ai commencé mes tests et vais pouvoir rapidement (?) proposer l'affichage (ou pas), à la suite (ou dans une info-bulle) du nombre de billets (soit uniquement de la catégorie, soit incluant ceux des sous-catégories) dans les deux widgets mrvbCategories et mrvbSubCategories de mrvbCustomWidgets...
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
J'ai commencé mes tests et vais pouvoir rapidement (?) proposer l'affichage (ou pas), à la suite (ou dans une info-bulle) du nombre de billets (soit uniquement de la catégorie, soit incluant ceux des sous-catégories) dans les deux widgets mrvbCategories et mrvbSubCategories de mrvbCustomWidgets...
Ayé, la v0.3.0a de mrvbCustomWidgets est disponible ici et bientôt sur DotAddict, là.
Remarque :
Jusqu'à la v0.2.9 de mrvbCustomWidgets, le choix d'afficher (ou pas) le nombre de billets s'effectuait via une case à cocher. A partir de la v0.3.0a, ce choix se fait via un menu déroulant proposant 3 options ("jamais" (par défaut), "après chaque item", "dans une info-bulle"). Si vous effectuez une mise à jour depuis la v0.2.9 (ou antérieure) vers la v0.3.0 (ou postérieure) et si vous souhaitez l'affichage du nombre de billets, pensez à revalider votre choix dans l'administration des widgets mrvbCategories et mrvbSubCategories .
Dernière modification par Mirovinben (2011-01-03 14:48:05)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Merci Mirovinben.
De mon côté, je viens de créer le ticket (avec le diff qui va bien) pour inclure ce comportement dans includesubcats.
« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »
Hors ligne
Vous n'êtes pas identifié(e).