Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Annonce
ATTENTION
- Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
- Pensez à mettre à jour votre version de Cms Made Simple. Nous ne faisons de support que sur LA dernière version de CmsMadeSimple.
- Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Ces informations demandées nous permettent de mieux vous aider
- Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.
Pages : 1
#1 17/12/2011 15:22:32
Module News: Trier les catégories
#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: -1.9.4.3
#~ Url du site :
#~ Hébergeur / Soft : Infomaniak
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à tous,
Pour gérer les rapports mensuels d'une association, j'ai opté sur le module News. Chaque année correspond à un mandat annuel au cours duquel l'association publie chaque mois des rapports (fichier pdf).
Et en FrontEnd, voici la structure que je souhaite avoir:
-Mandat Année 2012-2013
-Mandat Année 2011-2012
Rapport d'activité d'Octobre 2011
Rapport d'activité de Juillet 2011
- Mandat Année 2010-2011
J'ai donc créé les catégories "Mandat Année 20xx-20yy" puis je crée des articles associés à chaque catégorie. Seulement je ne parviens pas à trier les catégories car je souhaiterai bien que le dernier mandat soit placé plus haut. Voici le gabarit Sommaire que j'ai modifié:
[== Indéfini ==]
<!-- Start News Display Template -->
{* This section shows a clickable list of your News categories. *}
<ul class="list1">
{foreach from=$cats item=node}
{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}
<h2>{$node.news_category_name}</h2>
{foreach from=$items item=entry}
<div class="NewsSummary">
{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'}
<a href="{$entry->file_location}/{$field->value}"/>{$entry->title|cms_escape}</a>
{/if}
</div>
{/foreach}
{/if}
{if $entry->postdate}
<div class="NewsSummaryPostdate">
Publié le {$entry->postdate|cms_date_format}
</div>
{/if}
</div>
{/foreach}
{else}<h2>{$node.news_category_name} </h2>{/if}
{/foreach}
{repeat string="</li></ul>" times=$node.depth-1}</li>
</ul>
{* if you don't want category browsing on your summary page, remove this line and everything above it *}
{if $pagecount > 1}
<p>
{if $pagenumber > 1}
{$firstpage} {$prevpage}
{/if}
{$pagetext} {$pagenumber} {$oftext} {$pagecount}
{if $pagenumber < $pagecount}
{$nextpage} {$lastpage}
{/if}
</p>
{/if}
<!-- End News Display Template -->Quelqu'un a-t-il une idée?
Merci de votre contribution.
Dernière modification par Tripas (17/12/2011 22:57:34)
Hors ligne
#2 17/12/2011 19:37:33
Re : Module News: Trier les catégories
Bonjour,
la seule solution que je vois est de passer par un modifier.
Il y a un exemple ici :
http://www.smarty.net/forums/viewtopic.php?t=1079 (non testé, non garanti par mes soins).
Quand tu as vérifié et testé ce code, tu le mets dans un fichier que tu nommes :
function smarty_cms_modifier_sort_by_fields($sortby)
et que tu places dans le dossier plugins de ton installation.
Tu n'as plus qu'à appliquer ce modifier à $cats.
Envie de remercier les autres membres pour un petit coup de main ? Facile... faites un don pour aider au financement de notre stand aux CMS Days le 25 juin à Paris !. Tout l'argent récolté est réinvesti entièrement pour vous. Tout le monde est bénévole sur ce forum !
Formateur CMSMS à Manosque, Nice, Marseille, Lyon, Dijon ...
Création de site avec CMSMS.
Module UsersGuide. Un fork de OwnersManual.
Hors ligne
#3 17/12/2011 21:16:59
Re : Module News: Trier les catégories
J'ai une erreur:
string(136) "Smarty error:[in module_db_tpl:News;summaryrma line 4]: [plugin] modifier 'sortby' is not implemented (core.load_plugins.php, line 124)"
Où l'erreur?
Hors ligne
#4 17/12/2011 22:56:42
Re : Module News: Trier les catégories
Merci Jissey pour le tuyau.
Le fichier modifier.sortby.php doit être installé dans le répertoire /lib/smarty/plugins et le fichier qui marche bien est composé comme ceci:
[== PHP ==]
<?php
#
# sorts an array of named arrays by the supplied fields
# code by dholmes at jccc d0t net
# taken from http://au.php.net/function.uasort
# modified by cablehead, messju and pscs at http://www.phpinsider.com/smarty-forum
function array_sort_by_fields(&$data, $sortby){
static $sort_funcs = array();
if (empty($sort_funcs[$sortby]))
{
$code = "\$c=0;";
foreach (split(',', $sortby) as $key)
{
$d = '1';
if (substr($key, 0, 1) == '-')
{
$d = '-1';
$key = substr($key, 1);
}
if (substr($key, 0, 1) == '#')
{
$key = substr($key, 1);
$code .= "if ( ( \$c = (\$a['$key'] - \$b['$key'])) != 0 ) return $d * \$c;\n";
}
else
{
$code .= "if ( (\$c = strcasecmp(\$a['$key'],\$b['$key'])) != 0 ) return $d * \$c;\n";
}
}
$code .= 'return $c;';
$sort_func = $sort_funcs[$sortby] = create_function('$a, $b', $code);
}
else
{
$sort_func = $sort_funcs[$sortby];
}
uksort($data, $sort_func);
}
#
# Modifier: sortby - allows arrays of named arrays to be sorted by a given field
#
function smarty_modifier_sortby($arrData,$sortfields) {
array_sort_by_fields($arrData,$sortfields);
return $arrData;
}
?> Et enfin dans le gabarit du sommaire je modifie comme ceci
[== Indéfini ==]
{foreach from=$cat|@sortby:"news_category_name" item=node}Mon problème est donc résolu.
Hors ligne
#5 17/12/2011 23:22:00
Re : Module News: Trier les catégories
en mettant le modifier dans smarty, ça marche bien sûr mais en principe, on ne touche pas aux fichiers du "core" pour éviter des mésaventures lors de mises à jours.
C'est pour ça que la codification sous la forme "function smarty_cms_modifier" dans "plugins" est faite.
Ceci dit, le risque n'est pas grand concernant smarty!
Bonne continuation.
Envie de remercier les autres membres pour un petit coup de main ? Facile... faites un don pour aider au financement de notre stand aux CMS Days le 25 juin à Paris !. Tout l'argent récolté est réinvesti entièrement pour vous. Tout le monde est bénévole sur ce forum !
Formateur CMSMS à Manosque, Nice, Marseille, Lyon, Dijon ...
Création de site avec CMSMS.
Module UsersGuide. Un fork de OwnersManual.
Hors ligne
#6 16/08/2012 22:42:55
Re : Module News: Trier les catégories
Message de Tripas par email, le sujet étant fermé :
Bonsoir,
Je reviens sur sur ce sujet car il ne fonctionne pas correctement. En ayant ajouté des nouveaux articles dans une nouvelle catégorie, il regroupe mal les articles par catégorie.
Dans ma page j'ai ajouté:{news summarytemplate='rma' category='*Mandat*'}
Pour afficher toutes les catégories débutant par Mandat; et là, il mélange les articles du Mandat Année 2011-2012 et à ceux de la catégorie "Mandat Année 2012-2013".
Quelqu'un pourrait-il m'aider?En vous remerciant.
twitter - Chez moi - Astuces & Tuto cmsms - Wiki CmsMadeSimple
Mes modules :
» Comptabilisez les clics sur vos liens
» Petites annonces immobilières
» Moteur de chat/discussion/shoutbox full Ajax
» Générez automatiquement les miniatures de site web
» Laissez vos visiteurs uploader des images ou fichiers sur votre site
Hors ligne
#7 17/08/2012 05:19:59
- Jean le Chauve
- Sa Seigneurie le Chauve, Comte du domaine .be

- Lieu : Bruxelles
- Inscription : 13/12/2007
- Messages : 3 383
- Site Web
Re : Module News: Trier les catégories
Soutien les projets des jeunes talents et jeunes entrepreneurs
Exposition itinérante et ventes aux enchères pour les jeunes artistes plasticiens et stylistes
Structure de soutien pour, avec et par les jeunes de 15 à 30 ans
Structure de soutien pour jeunes jusque 18 ans
Campagne de sensibilisation des transports en commun
Booking artistes francophones
Plugins : ponctuation insécable | obfuscation automatique d'email
Hors ligne
Pages : 1