Les avertissements suivants se sont produits :
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/printthread.php(287) : eval()'d code 2 errorHandler->error_callback
/printthread.php 287 eval
/printthread.php 117 printthread_multipage



Forum CMS Made Simple FR
[RESOLU] module NEWS : compter le nombre d'articles actifs - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [RESOLU] module NEWS : compter le nombre d'articles actifs (/thread-2589.html)

Pages : 1 2


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 13/02/2013

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site : anbadlola.fr
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~ Cms Version: 1.11.4
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ ModuleManager: 1.5.5
#~ Printing: 1.0.4
#~ ThemeManager: 1.1.7
#~ TinyMCE: 2.9.12
#~ TemplateExternalizer: 2.0.8
#~ FormBuilder: 0.7.3
#~ Captcha: 0.4.5
#~ Gallery: 1.6
#~ Guestbook: 1.4_RC2
#~ GoogleMaps: 0.2.1
#~ CMSPrinting: 1.0.3
#~ MicroTiny: 1.2.5
#~ News: 2.12.10
#~ Search: 1.7.7
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Tout nouveau dans l'utilisation de CMSMS, je cherche vainement l'instruction qui permet de compter le nombre de news actives, toutes catégories confondues.
Une bonne âme pourrait-elle m'indiquer une piste de recherche ?
L'aide du module ne donne pas cette information.
Merci d'avance.


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 13/02/2013

Bonsoir et bienvenue Smile
Smarty est ton ami : http://www.smarty.net/docs/en/language.function.foreach.tpl
{foreach $items as sentry}{if $item@last}{$item@total}{/if}{/foreach}


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 13/02/2013

Bonjour,
la variable smarty $count contient ce nombre.
Tu peux faire un gabarit de sommaire d'article mettre dedans :
Nombre d'articles : {$count}
Si ton gabarit s'appelle "nombre", tu mets la balise :
{news summarytemplate="nombre"}


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 13/02/2013

Bien plus simple, merci Jissey Smile


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 13/02/2013

Tiens, on se croise ces temps-ci Smile


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 13/02/2013

Il est gâté, le boullu, 2 réponses en 10 minutes :lol:


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 13/02/2013

Big Grin gâté ? OUI !
un grand merci pour votre réactivité. Ce qui m'incite à m'investir plus profondément dans CMSMS avec une communauté aussi sympathique Smile
Si je connais assez le php, je ne connais absolument pas smarty. Alors ... y a plus qu'à trouver le mode d'emploi.
En tout cas, je fais un test dès demain et je ne manquerai de vous donner les résultats.


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

Si tu comprends php, tu verras que smarty en est très proche, c'est juste des raccourcis : http://www.smarty.net/syntax_comparison


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 14/02/2013

merci pour les infos sur smarty. C'est assez compréhensible reste à trouver la "bible" des syntaxes.
Pour ce qui concerne ma question, je ne vois pas bien comment interroger la base de données ou les données du module news dans mon gabarit principal. (colonne gauche du site)
Un truc du genre :
if (count(news->actif)>0)
{
blabla ...
}
else
{
toto ...
}

merci pour vos pistes ...


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

{capture assign=articlesActifs}{news + les paramètres que tu souhaites}{/capture} // doc capture
{if $articlesActifs} // doc if
<div id="news">
<h2>Actualités</h2>
{news + les paramètres que tu souhaites}
</div>
{else}
toto
{/if}


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

Fait gaffe, tu insères une seconde fois un gabarit complet (doctype, head...) :
view-source:http://www.guadeloupe-plongee.fr/livre-d-or.html lignes 292+
Et pas que là, sur la page d'accueil également.
Vérifie ton gabarit principal.


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 14/02/2013

Merci Jean pour tes indications.
Mais j'ai quelques difficultés avec ceci :

Jean le Chauve a écrit :{capture assign=articlesActifs}{news + les paramètres que tu souhaites}{/capture}
{if $articlesActifs}

Si un article existe et est valide, la condition est remplie.
Mais s'il n'y a pas d'article à afficher, la condition est toujours vraie.
  • strlen($articlesActifs) = 90 alors qu'il n'y a rien d'affiché ! Donc ... {if $articlesActifs} = true
  • var_dump($articlesActifs) = 1 (???)

Je m'étonne que le module news n'ait pas un simple "$count" ... faut-il écrire une fonction pour cela ?


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 14/02/2013

Jean le Chauve a écrit :Fait gaffe, tu insères une seconde fois un gabarit complet (doctype, head...) :
view-source:http://www.guadeloupe-plongee.fr/livre-d-or.html lignes 292+
Et pas que là, sur la page d'accueil également.
Vérifie ton gabarit principal.

OUI ! merci pour cet avertissement que j'avais constaté.
Par contre, je n'utilise qu'un seul gabarit (fondé du NCleanBlue) et un fichier css
je ne vois pas du tout d'où peuvent venir ces déclarations <head>etc...
TinyMCE peut-il être en cause ?
le code html à chaque fois est toujours avec :
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>

et même en passant en html direct, il est toujours réinséré ...
grrrr.... !


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

Je t ai indiqué plus haut qu il existe une variable $count.


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 14/02/2013

Oui, Jissey, j'ai exploité cette piste.
Mais le compteur me renvoi toujours une valeur > 0 même si aucune news n'est active.
Exemple : je crée une news dont les dates sont valides pour affichage. Mais je la laisse au statut "ébauche". Elle est considérée comme valide alors que, comme cela doit être, rien n'est affiché. Et l'image de remplacement que je souhaite mettre n'apparait pas.
Si je la passe au statut "publier", elle s'affiche correctement, bien entendu.
C'est pour cela que j'essaie d'exploiter la ppiste fournie par Jean, sans plus de résultat.....
sniffff !


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

Alors c est un bug!


[RESOLU] module NEWS : compter le nombre d'articles actifs - boullu - 14/02/2013

:/
possible, mais je ne peux me permettre une telle affirmation, mes compétences étant bien insuffisantes pour faire une vérification.
merci quand même.


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

$count renvoie le nombre de catégories.
De la même manière que mon système de capture qui venait du wiki.org : http://docs.cmsmadesimple.org/modules/core/news.
Voici une solution très simple pour n'afficher les news que s'il y en a au moins une :
Ajouter au tout début du gabarit sommaire ceci :
Code :
[== Indéfini ==]
{foreach from=$items item='entry'}{if $entry@first}{assign var=go value=true}{/if}{break}{/foreach}
{if !$go}<p>Pas de news</p>
{else}
Et n'oubliez pas un {/if} tout à la fin.
C'est une solution élégante pour n'appeler qu'une seule fois le module news Smile sans boucles excessives Smile


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

oui, effectivement, je m'ai trompé...et pour me rattraper, voici une autre solution plus simple:
{$items|count}
Et là, ça marche, j'ai testé Smile


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

Pas besoin de boucle :
Code :
[== Indéfini ==]
{if !$items}<p>Pas de news</p>{else}
Il n'y a pas plus simple :lol:
[edit]Pan dans ta tronche Wink[/edit]


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

Je récapitule :
Code :
{if $items|count > 0}
......
{else}
........
{/if}



[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

Je suis plus court :lol:


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

Tu crois que c'est une qualité? :p

Mais $entry vient après foreach, ce qui signifie qu'il faut entrer dans la boucle, alors qu'en comptant $items AVANT, on ne rentre pas dans la boucle pour rien.


[RESOLU] module NEWS : compter le nombre d'articles actifs - Jean le Chauve - 14/02/2013

Tututut , pas de foreach, juste {if !$items} en tout débute du gabarit de sommaire sans passer par un autre gabarit.
Plus court et moins gourmand Cool
[edit]ah, zut m'étais gourré de variable dans le post précédent[/edit] Big Grin


[RESOLU] module NEWS : compter le nombre d'articles actifs - jissey - 14/02/2013

ha! ben tu as écris :
JLC a écrit :{if !$entry}<p>Pas de news</p>{else}
C'est pas pareil...soyons précis je vous prille votre Seigneurerille.