Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Archives du module News
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante : Non
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.6.6
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.1
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.1
#~ * News: 2.10.3
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.1
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.6.2
#~ * CGExtensions: 1.17.9
#~ * Banners: 2.3.2
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 10000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: false
#~ * page_extension:
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.1.6
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * memory_limit: 64M
#~ * max_execution_time: 90
#~ * safe_mode: Off (Faux)
#~ * session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ * session.use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.77
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,

Dans mon menu j'aimerais ajouter une page "Archives", dans laquelle il y aurait les archives des news classées par mois, un peu comme sur cette page :



Apparemment je n'ai pas trouvé l'option dans le module News.

Comment faire ?

Merci d'avance pour votre aide Smile
Répondre
#2

tu installe wordPress Smile

en tout cas c'est ce qu'ils ont fait pour gérer leur blog et leur news (Ctrl + u , recherche <meta name="generator" content="WordPress 2.8.4" />)

Concernant le module News il me semble que d'autres avaient déjà posé la question sur le forum et que la solution passait inévitablement par un UDT attaquant la base de donnée
Répondre
#3

Merci pour ton aide Smile

Oui j'ai vu les messages sur le forum.

Heu... Qu'est ce qu'un UDT ?
Répondre
#4

l'anglais de Balise Utilisateur
Répondre
#5

re

>Qu'est ce qu'un UDT ?
la documentation => le Wiki !!!!
Les balises personnalisées (appelées "tags" utilisateurs, ou UDT soit User Defined Tags en anglais
http://wiki.cmsmadesimple.org/index.php/...ed_Tags/fr

J-C Etiemble v 2.2.xx
Répondre
#6

Bonjour,

Je cherche aussi à archiver mes articles. J'ai trouvé une réponse sur le forum en anglais (http://forum.cmsmadesimple.org/viewtopic.php?t=42601)

Il faut :

1) Créer un page sur laquelle on veut afficher les news, désactiver le wysiwyg et coller ceci :

Code :
{*assign var='gCms' value=''|cmsms*} {*uncomment this line it template does not work with CMSms 1.8+ *}
{news_extreme_date assign=news_start_date extreme='min'}
{news_extreme_date assign=news_end_date extreme='max'}
{assign var='current_time' value='Y-m-d H:i:s'|date}
{assign var='active_year' value=$smarty.get.news_date|substr:0:4}

{assign var='start_year_list' value=$news_start_date|substr:0:4}
{assign var='loop_year_list' value=$news_end_date|substr:0:4}

{********** years ************}
{section name=year_list start=$start_year_list loop="`$loop_year_list+1`"}
{news_date  assign='news_ids' date=`$smarty.section.year_list.index`} {*coment if you want to see links to periods without articles*}
{if !empty($news_ids)} {*coment if you want to see links to periods without articles*}
{capture assign=temp}&news_date={$smarty.section.year_list.index}{/capture}
{if $smarty.section.year_list.index == $active_year}
{$smarty.section.year_list.index}
{else}
{cms_selflink page=$page_alias urlparam=$temp text=$smarty.section.year_list.index}
{/if}
{/if} {*coment if you want to see links to periods without articles*}
{/section}


{********** years end*********}

{********** months and news *******************}
{assign var=mod value=$gCms->modules.FormBuilder.object}
{assign var='temp' value='date_january,date_february,date_march,date_april,date_may,date_june,date_july,date_august,date_september,date_october,date_november,date_december'}
{assign var='months' value=','|explode:$temp}

{if !empty($smarty.get.news_date)}
{********** months *************}
{foreach from=$months name='months' item=month}
{capture assign='news_date'}{$active_year}-{$smarty.foreach.months.iteration|string_format:"%'02u"}{/capture}

{if ($news_date >= $news_start_date && $news_date <= $news_end_date) || (strpos($news_start_date, $news_date) !== FALSE) || (strpos($news_end_date, $news_date) !== FALSE)}
{news_date  assign='news_ids' date="`$news_date`"} {*coment if you want to see links to periods without articles*}
{if !empty($news_ids)} {*coment if you want to see links to periods without articles*}
{capture assign='text'}{$mod->Lang($months[$smarty.foreach.months.index])}{/capture}
{if $smarty.get.news_date!=$news_date}
{cms_selflink page=$page_alias  text=$text urlparam="&news_date=$news_date"}
{else}
{$text}
{/if}
{/if} {*coment if you want to see links to periods without articles*}
{/if}
{/foreach}
{********** months end *********}
{********** news ***************}
{news_date  assign='news_ids' date="`$smarty.get.news_date`"  sort_by='create_date' sort_order='asc'}
{assign var=mod value=$gCms->modules.News.object}
{if !empty($news_ids)}

{*might be better option if you need all fields in articles *}
{assign var='news_ids' value=','|explode:$news_ids}
{foreach from=$news_ids item='articleid'}
{News action='detail' detailtemplate='summary' articleid=$articleid}
{module_action_link module='News' action='detail' articleid=$articleid text=$mod->Lang('more') page=$page_alias}
{/foreach}

{*news_ids ids=$news_ids*} {*original way for simple summaries*}

{else}
{$mod->Lang('none')} {*Visitor will this message if there is no articles for this period*}
{/if}
{********** news end ***********}
{/if}

2) Créer une balise utilisateur news_date et coller ceci :

Code :
/*$params['assign']*//*mandatory*/
/*$params['date']*//*mandatory*//*9999-12-32 23:59:59*/
/* $params['sort_by']*//* create_date, modified_date, start_time, end_time, news_extra, news_id, news_title, news_date */
/* $params['sort_order'] */ /* ASC, DESC */
if (!empty($params['assign']) && !empty($params['date'])){

      $params['sort_by'] = trim(strtolower($params['sort_by']));
      switch ($params['sort_by']){
         case 'modified_date':
         case 'news_id':
         case 'news_title':
         case 'news_date':
         case 'start_time':
         case 'end_time':
         case 'news_extra':
         $sort_by = $params['sort_by'];
         break;
         default:
         $sort_by = 'create_date';
         break;
      }

      $params['sort_order'] = trim(strtoupper($params['sort_order']));
      switch ($params['sort_order']){
         case 'ASC' :
         $sort_order = $params['sort_order'];
         break;
         default:
         $sort_order = 'DESC';
         break;
      }

   $params['date'] = substr(trim($params['date']), 0, 19);
   $start_date = substr_replace('0000-00-00 00:00:00', $params['date'], 0, strlen($params['date']));
   $end_date = substr_replace('9999-12-31 23:59:59', $params['date'], 0,  strlen($params['date']));
   $assign = '';
   global $gCms;
   $db =& $gCms->GetDB();
   $query = 'SELECT news_id FROM '.cms_db_prefix()."module_news WHERE news_date >= ? AND news_date <= ? AND status = ? ORDER BY $sort_by $sort_order";
   $array = $db->GetArray($query,array($start_date, $end_date, 'published'));
  
   foreach($array as $row){
      $assign .= $row['news_id'].',';
   }
   $assign = rtrim($assign, ' ,');
   $smarty = $gCms->GetSmarty();
   $smarty->assign($params['assign'], $assign);
}

3) Créer une balise utilisateur news_extreme_date et coller ceci :

Code :
/*$params['assign']*//*mandatory*/
/*$params['extreme']*//*mandatory*/ /* 'min' | 'max'*/

$extreme = strtoupper(trim($params['extreme']));
if (!empty($params['assign']) && ($extreme == 'MIN' or $extreme == 'MAX')){
   $assign='';
   global $gCms;
   $db =& $gCms->GetDB();
   $query = 'SELECT '.$extreme.'(news_date) FROM '.cms_db_prefix()."module_news ". " WHERE  status = 'published'";
   $assign = $db->GetOne($query);
   $smarty = $gCms->GetSmarty();
   $smarty->assign($params['assign'], $assign);
}


Le résultat attendu : http://www.alytausmuziejus.lt/naujienos-12/lt

Mon résultat : http://www.unssf.org/aaa

Je parviens à afficher les années et les mois contenant des news avec les liens "En savoir plus" qui pointent vers les articles mais je n'arrive pas à afficher le résumé de ces articles.

Quelqu'un peut-il me donner un coup de main ?

CMSMS 1.6
90plan OVH
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)