Небольшая правка макета вывода материалов в блоге категории (blog_item.php) для добавления стикеров "NEW" для новых материалов.
Находим в "/templates/ТЕКУЩИЙ_ШАБЛОН/html/com_content/category/" файл "blog_item.php", если такого файла нет, копируем его в соответствующий каталог из "/components/com_content/views/category/tmpl/", так же копируем все php файлы из данного каталога в свой шаблон. Можно внести изменения и в "/components/com_content/views/category/tmpl/blog_item.php", но это до первого обновления системы.
Всего будет три стикера, ввыводиться будет один из них, либо ниодного, в зависимости от даты добавления и обновления материала. Соответственно понадобятся три даты - добавления, обновления и текущая. Текущую дату выведем через функцию date(), две другие уже есть в макете. Даты использую в виде 201409.27 (год и месяц без разделителя), таким образом отняв от даты обновления текущую дату получу что то вроде 2.15 (количество месяцев с даты обновления.количество дней)
В качестве примера буду использовать свой сайт. Т.к. новое добавляю не так уж часто, то новыми будут считаться материалы не старше трех месяцев.
Открываем "/templates/ТЕКУЩИЙ_ШАБЛОН/html/com_content/category/blog_item.php" и перед:
<?php if ($params->get('show_title')) : ?>
Вставляем следующий код (приведен с комментариями):
<?php
$days = (date('ym.d') - date("ym.d", strtotime($this->item->modified)));
//получим что то вроде 2.13, где 2 - месяцы, 13 - дни
if ($days < 3) { //если обновлено менее 3 месяцев назад
//Теперь сравним даты обновления и создания, если с момента создания до обновления прошло менее двух дней - материал новый
if ((date("ym.d", strtotime($this->item->modified)) - date("ym.d", strtotime($this->item->created))) < 0.02) {
if ($days < 1.1) {
echo '<div class="newadded"><img src="/images/newst1.png" alt="добавлено менее 1,5 месяцев назад" /></div>';
} else {
echo '<div class="newadded"><img src="/images/newst2.png" alt="добавлено менее 3 месяцев назад" /></div>';
}
} else {
//Если с момента создания до обновления прошло более двух дней - материал обновленный
echo '<div class="newadded"><img src="/images/newst3.png" alt="обновлено менее 3 месяцев назад" /></div>';
}
}
?>
Изображения, которые я использовал:
Теперь осталось только оформить в css:
.newadded {
position: absolute;
right: 0px;
top:0px
}
Результат можно увидеть на данном сайте (решение то же, только для MODX)