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.
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"}
Bien plus simple, merci Jissey
Tiens, on se croise ces temps-ci
Il est gâté, le boullu, 2 réponses en 10 minutes :lol:
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
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.
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 ...
{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}
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.
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 ?
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.... !
Je t ai indiqué plus haut qu il existe une variable $count.
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 !
:/
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.
$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
sans boucles excessives
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é
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
[/edit]
Je récapitule :
Code :
{if $items|count > 0}
......
{else}
........
{/if}
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.
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
[edit]ah, zut m'étais gourré de variable dans le post précédent[/edit]
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.