Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2011-01-02 10:38:32

zeiram
Membre
Inscription : 2004-06-27
Site Web

Widget catégories avec total des billets incluant sous-catégories

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

#2 2011-01-02 10:48:11

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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 ;)

Hors ligne

#3 2011-01-02 10:56:54

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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

#4 2011-01-02 11:08:43

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

zeiram a écrit :

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

Hors ligne

#5 2011-01-02 13:04:00

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

zeiram a écrit :

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.

Hors ligne

#6 2011-01-02 13:07:43

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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)

Hors ligne

#7 2011-01-02 13:24:07

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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.

Hors ligne

#8 2011-01-02 14:00:07

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

amalgame a écrit :

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

Mirovinben a écrit :

[...] 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 !

Mirovinben a écrit :

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

#9 2011-01-02 15:51:34

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

zeiram a écrit :
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;
	}

Hors ligne

#10 2011-01-02 16:38:52

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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

#11 2011-01-02 17:48:42

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

zeiram a écrit :

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...

Hors ligne

#12 2011-01-03 09:21:58

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

Mirovinben a écrit :

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, .

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)

Hors ligne

#13 2011-01-03 16:12:20

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : Widget catégories avec total des billets incluant sous-catégories

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).

Pied de page des forums

Sites map