это код /modules/mod_arhive/module.php
<?php /*********************************************************************************************/ // // // InstantCMS v1.5 (c) 2009 FREEWARE // // http://instantcms.ru/, info@instantcms.ru // // // // written by Vladimir E. Obukhov, 2007-2009 // // // /*********************************************************************************************/ function mod_arhive($module_id){ $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $cfg = $inCore->loadModuleConfig($module_id); if ($cfg['menuid']>0) { $menuid = $cfg['menuid']; } else { $menuid = $inCore->menuId(); } $sql = "SELECT DATE_FORMAT( pubdate, '%M, %Y' ) fdate, DATE_FORMAT( pubdate, '%Y' ) year, DATE_FORMAT( pubdate, '%m' ) month, COUNT( id ) num FROM cms_content"."\n"; if($cfg['cat_id']>0){ $sql .= "WHERE category_id = ".$cfg['cat_id']; if ($cfg['source']!='both'){ if ($cfg['source']=='arhive'){ $sql .= " AND is_arhive = 1". "\n"; } else { $sql .= " AND is_arhive = 0". "\n"; } } else { $sql .= "\n"; } } $sql .= "GROUP BY DATE_FORMAT(pubdate, '%M, %Y')"."\n"; $sql .= "ORDER BY pubdate DESC"; $result = $inDB->query($sql) ; if ($inDB->num_rows($result)>0){ while ($item = $inDB->fetch_assoc($result)){ $item['fdate'] = $inCore->getRusDate($item['fdate']); $itemar[]=$item ; } $smarty = $inCore->initSmarty('modules','mod_arhiv.tpl'); $smarty->assign('item', $itemar); $smarty->display('mod_arhiv.tpl'); } else { echo '<p>Нет материалов для отображения</p>'; } return true; } ?>
А это соответственно файл /templates/_default_/modules/mod_arhiv.tpl
<ul> <div class="arhive_month"> <li><a href="/arhive/{$menuid}/{$itemar.year}/{$itemar.month} ">{$itemar.fdate}({$itemar.num})</a></li> </div> </ul> {/foreach}
Приятно… Теперь АРХИВ НОВОСТЕЙ можно выводить в шаблон применяя в файле arhiv.tpl вместо class="arhive_month, свой класс <div class = мой дизайн>, или изменять свойства class="arhive_month в css под свой шаблон -не затрагивая кода модуля.
Работа дебютная -замечания надеюсь будут?