Forum CMS Made Simple FR

Version complète : [Résolu]Module news: exclure une catégorie spécifique d'actualités
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
Cms Version: 1.10.3

Installed Modules:

CMSMailer: 2.0.2
CMSPrinting: 1.0
FileManager: 1.2.0
MenuManager: 1.7.7
MicroTiny: 1.1.1
ModuleManager: 1.5.3
News: 2.12.3
Search: 1.7
ThemeManager: 1.1.4
CGExtensions: 1.28.2
CGSimpleSmarty: 1.5
CGCalendar: 1.9.6
CGGoogleMaps: 2.2.7
DownloadManager: 1.5.2
Gallery: 1.5.3

Config Information:

php_memory_limit:
process_whole_template: false
output_compression: false
max_upload_size: 40000000
default_upload_permission: 664
url_rewriting: none
page_extension:
query_var: page
image_manipulation_prog: GD
auto_alias_content: true
locale: fr_FR.utf8
default_encoding: utf-8
admin_encoding: utf-8
set_names: true

Php Information:

phpversion: 5.2.17
md5_function: On (Vrai)
gd_version: 2
tempnam_function: On (Vrai)
magic_quotes_runtime: Off (Faux)
E_STRICT: 0
memory_limit: 90M
max_execution_time: 50000
output_buffering: 0
safe_mode: Off (Faux)
file_uploads: On (Vrai)
post_max_size: 8M
upload_max_filesize: 40M
session_save_path: /tmp (1777)
session_use_cookies: On (Vrai)
xml_function: On (Vrai)

Server Information:

Server Api: cgi-fcgi
Server Db Type: MySQL (mysql)
Server Db Version: 5.0.91



Bonjour à tous,

Pour les besoins spécifiques d'un client, j'ai implémenté un système de news qui comprend plusieurs catégories, dont "deux principales": actu flash et les autres (général, sport etc...)

En haut de la page accueil, un système de slider javascript affiche le contenu des news de la catégorie "newsflash" (ce qui me permet de rendre mon slideshow administrable assez facilement). Le template est spécifique et le détail de ces news s'affiche dans une page spécifique "detail_news_flash":

Citation :{news summarytemplate="slider" category="flash" detailpage="detail_news_flash" detailtemplate="slider_detail" number="6"}


En bas de la page accueil, c'est un affichage plus classique de toutes les autres news:

Citation :{news summarytemplate="global" detailpage="detail_news" detailtemplate="news_detail" number="4"}


Mon souci c'est que je souhaiterai n'afficher dans cette seconde section que les "autres" news, c'est à dire toutes celles qui ne sont pas issues de la catégorie "flash" précitée.

Je sais que l'on peut sélectionner les catégories et sous catégories à afficher en les séparant par des virgules et en jouant avec *, mais dans mon cas, je veux raisonner dans une logique de "tout sauf...".

En-effet, si à l'avenir mon client décide de créer une nouvelle catégorie, je ne veux pas avoir à modifier le gabarit de ma page accueil pour inclure la dite catégorie dans ma balise pour qu'elle puisse s'afficher....

Quelqu'un aurait une idée (si ça se trouve c'est super simple mais là je m'en sors pas :/)

Merci d'avance!

Cordialement
Salut, tu peux jouer avec cette condition dans ton gabarit de news :
Code :
{if $node.news_category_name != 'flash'}{/if}
et
{if $entry->category != 'flash'}
Le gabarit sample avec tes conditions placées :
Code :
<!-- Start News Display Template -->
{* This section shows a clickable list of your News categories. *}
{if $count > 0}
    <ul class="list1">
    {foreach from=$cats item=node}
    {if $node.news_category_name != 'flash'}
        {if $node.depth > $node.prevdepth}
            {repeat string="<ul>" times=$node.depth-$node.prevdepth}
        {elseif $node.depth < $node.prevdepth}
        {repeat string="</li></ul>" times=$node.prevdepth-$node.depth}
        </li>
        {elseif $node.index > 0}</li>
        {/if}
        <li{if $node.index == 0} class="firstnewscat"{/if}>
        {if $node.count > 0}
            <a href="{$node.url}">{$node.news_category_name}</a>
        {else}<span>{$node.news_category_name} </span>
        {/if}
    {/if}
    {/foreach}
    {repeat string="</li></ul>" times=$node.depth-1}</li>
    </ul>

    {* this displays the category name if you're browsing by category *}
    {if $category_name && $node.news_category_name == 'flash'}
        {if $pagecount > 1}
        <p>
            {if $pagenumber > 1}
            {$firstpage}&nbsp;{$prevpage}&nbsp;
            {/if}
            {$pagetext}&nbsp;{$pagenumber}&nbsp;{$oftext}&nbsp;{$pagecount}
            {if $pagenumber < $pagecount}
            &nbsp;{$nextpage}&nbsp;{$lastpage}
            {/if}
        </p>
        {/if}
    {/if}
    {foreach from=$items item=entry}
    {if $entry->category != 'flash'}
        <div class="NewsSummary">
        {if $entry->postdate}
            <div class="NewsSummaryPostdate">{$entry->postdate|cms_date_format}</div>
        {/if}
            <div class="NewsSummaryLink"><a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a></div>
            <div class="NewsSummaryCategory">{$category_label} {$entry->category}</div>
        {if $entry->author}
            <div class="NewsSummaryAuthor">{$author_label} {$entry->author}</div>
        {/if}
        {if $entry->summary}
            <div class="NewsSummarySummary">{eval var=$entry->summary}</div>
            <div class="NewsSummaryMorelink">
                <a href="{$entry->moreurl}"><img src="uploads/images/icones/telechargement.png" width="50px" height="50px" alt="Voir la news de {$entry->title}"</a>
            </div>
        {else if $entry->content}
            <div class="NewsSummaryContent">{eval var=$entry->content}</div>
        {/if}
        {if isset($entry->extra)}
            <div class="NewsSummaryExtra">{eval var=$entry->extra}{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}</div>
        {/if}
        {if isset($entry->fields)}
            {foreach from=$entry->fields item='field'}
            <div class="NewsSummaryField">
            {if $field->type == 'file'}
                <img src="{$entry->file_location}/{$field->value}"/>
            {else}
                {$field->name}:&nbsp;{eval var=$field->value}
            {/if}
            </div>
            {/foreach}
        {/if}
        </div>
    {/if}
    {/foreach}
{/if}
Royal!

Tu as même répondu doublement à mon problème avec la manip' "bonus" pour la liste cliquable de catégories!

Merci Jean Wink

Bonne soirée à tous.