Как можно выводить свежие материалы другим цветом?Произведена модификация
tsesl, за что ему огромное спасибо!
В файле modules/mod_latestnews/helper.php строка:
$lists[$i]->text = htmlspecialchars( $row->title );
ниже добавляем инициализацию признака "свежести" материала:
$lists[$i]->new_flag = modLatestNewsHelper::_isNewContent( $row->created, $period );
далее немного ниже по коду едет:
следом добавляем функцию, вычисляющую сам признак "свежести" материала:
function _isNewContent( $date, $period ){
$end_period = gmdate( 'U', mktime( 0, 0, 0, gmdate('m'), gmdate('d') - $period, gmdate('Y') ) );
$config =& JFactory::getConfig();
$offset = $config->getValue('config.offset');
$o_date =& JFactory::getDate( $date );
$o_date->setOffset( $offset );
return ( $o_date->toUnix() >= $end_period );
}
Сохраняем.
В файле modules/mod_latestnews/mod_latestnews.xml строка
<param name="count" type="text" default="5" label="Count" description="The number of items to display (default 5)" />
ниже добавляем параметр для административной части модуля, позволяющий настраивать глубину "свежести" материала:
<param name="period" type="text" default="0" label="Period" description="The number of days ago for new (default 0 - today)" />
Сохраняем.
В файле modules/mod_latestnews/tmpl/default.php строка:
<li class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
меняется на аналогичную с оценкой признака "свежести":
<li class="latestnews<?php echo $params->get('moduleclass_sfx'); ?><?php echo ($item->new_flag ? ' new'.$params->get('moduleclass_sfx') : ''); ?>">
Сохраняем.
Как проявляется? Изначально мы имели структуру типа:
<ul class="latestnews">
<li class="latestnews"><a ...>...</a></li>
...
<li class="latestnews"><a ...>...</a></li>
</ul>
Теперь для li, в случае свежести материала, добавляется класс new с суффиксом модуля, если указан, т.е. структура приобретает вид:
<ul class="latestnews">
<li class="latestnews new"><a ...>...</a></li>
...
<li class="latestnews"><a ...>...</a></li>
</ul>
---КОНЕЦ---