Forum CMS Made Simple FR

Version complète : [Résolu] Module News : Couleur de titre différentes selon la catégorie
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 ~~~~~
#~ Version du CMS: !1.11.x
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ 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
#~ CGFeedMaker: 1.0.16
#~ CGExtensions: 1.31
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 64000000
#~ default_upload_permission: 664
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ 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: 128M
#~ max_execution_time: 120
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (0700)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.73
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

je me tourne vers vous car je n'arrive pas à mettre le doigt sur la méthode à appliquer pour obtenir une couleur de titre de news (NewsSummaryLink) différente selon la catégorie de news, le tout dans le même gabarit de sommaire...

Je sais rajouter un fichier image différent en fonction de la catégorie dans l'affichage du sommaire en faisant appel à :
Code :
<img src="images/{$entry->category}.jpg" />
mais je n'arrive pas à attribuer une couleur par catégorie d'article.

J'ai cherché sur le forum si un sujet similaire avait été traité, mais je n'ai rien trouvé :/

Est-ce que ça dit quelque chose à l'un d'entre vous ?

Par avance, merci Wink
tu as visiblement les bases, ça ne vas pas être compliqué.

Le plus simple est de repérer ton titre de news

Code :
<h1>{$entry->title}</h1>

et d'ajouter une classe CSS unique par catégorie

Code :
<h1 class='color_{$entry->category}'>{$entry->title}</h1>

Te reste maintenant à définir ce CSS


Code :
h1.color_categorie1{
  color:red;
}
h1.color_categorie2{
  color:blue;
}

Pense également à mettre une couleur par défaut pour d'éventuelle catégorie que tu n'as pas encore prévue Smile

Et voilà c'est finit
Bess, un grand merci à toi pour cette solution rapide et efficace... You'rDaBest :p

Ta méthode fonctionne au poil, mais il me reste un point subsidiaire demandé par mon client qui me pose souci.

Maintenant que j'ai une couleur de titre différente par catégorie de News (dans le sommaire), il aimerait que le titre de la seconde catégorie ne soit pas cliquable... mais ceux de la première oui (je sais, je sais.. il a le chic pour me demander toujours des trucs exotiques) Rolleyes

Existe-t'il un moyen d'afficher des titres d'articles cliquables et d'autres pas dans un même gabarit de sommaire d'article ?

Encore merci pour ton aide
C'est plutôt simple à priori, dans votre gabarit de sommaire:
Code :
[== Indéfini ==]
{if $node.news_category_name == "nomcategoriesanslien"}
{$node.news_category_name}
{else}
    <a href="{$node.url}">{$node.news_category_name}</a>{/if}
Merci de me répondre Pierrepercee...

j'ai toutefois du mal à repérer où je devrai intégrer votre portion de code.
Mon gabarit de sommaire est modifié car mon client ne voulant pas de résumé affiché sous le titre des articles (dans le sommaire), et je ne sais qu'en faire... :/

voici l'état de mon gabarit :
Code :
{foreach from=$items item=entry}
<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}"><span class='color_{$entry->category}'>{$entry->title|cms_escape}</span></a>
</div>

<hr>

{if $entry->summary}
    

{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>
{/foreach}

<div id="link_newshp"><a href="index.php?page=news">Read all the News</a></div>

Désolé, je suis plus graphiste que codeur, et j'ai parfois du mal à percevoir la solution... :|

Merci
re-explique nous le besoin stp ?

tu as actuellement des news avec un lien

<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}"><span class='color_{$entry->category}'>{$entry->title|cms_escape}</span></a>


le test doit donc être en lieu et place de l'existant


{if $entry->category == "nomcategoriesanslien"}
<span class='color_{$entry->category}'>{$entry->title|cms_escape}</span>
{else}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}"><span class='color_{$entry->category}'>{$entry->title|cms_escape}</span></a>
{/if}
C'est exactement ça Bess Cool

Une condition qui affiche un span, sinon un lien

encore une fois, désolé de vous solliciter sur des questions aussi basiques. Je dis "aussi basique" parce-que une fois la réponse devant les yeux je me rend compte à quel point c'est évident... Rolleyes
Je suis plutôt à l'aise avec l'Html et le CSS, mais j'ai encore du mal à déceler toutes les subtilités des autres codes.

Heureusement, il y a toujours des cracks comme vous sur le forum pour venir nous éclairer de votre savoir.

Je ne fais pas de la lèche, je le pense vraiment :p

Mille fois merci
Attention car une catégorie pourrait être composée de plusieurs mots, ex : "meubles en pin" et "meubles en ébêne" et tu obtiendrais alors 3 noms de classe. Pour remédier à ce possible problème, je te conseille d'utiliser le modificateur smarty |replace.
Voici le code modifié :
{$categorie = $entry->category|replace:' ':''}{* on assigne le nom de la catégorie (sans espace) à la variable $categorie *}
{if $categorie == "nomcategoriesanslien"} {* ex : meublesenpin *}
<span class='color_{$categorie}'>{$entry->title|cms_escape}</span>
{else}
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}"><span class='color_{$categorie}'>{$entry->title|cms_escape}</span></a>
{/if}
Euh, pas certain d'avoir tout saisi votre Seigneurerie... Big Grin

Il s'agit d'une fonction qui donne un nom de variable (tout attaché) au catégories composées de plusieurs mots ?

C'est judicieux, en effet... Dans mon cas, je n'ai que 2 catégories : News et Mini-News

Merci du tuyaux en tout cas Wink