Показываем, что пост новый



Продолжая тему извращений над возможностями шаблонизатора, хочу предложить вам легкий способ указать на то, что пост новый. То есть, если посту меньше суток, то выводится определенная надпись, например — «Новый пост!». Идея древняя как мир, но раз для других CMS делали такие фичи, то, возможно и здесь кому-то она пригодится.

Все делается элементарно — в файлах topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl вашего шаблона после даты добавления поста вставляем следующий код:
{if (time() - strtotime($oTopic->getDateAdd()))<86400}<span style="color:green;">New Post!</span>{/if}


Напомню, что дата добавления в шаблоне (для примера взят new-jquery) выглядит так:
{date_format date=$oTopic->getDateAdd()}

Если вы хотите сделать вывод такой-же, как на рисунке (например: «1 час назад, Сегодня в 12:30, Вчера...») то изменяем вывод даты до следующего:
{date_format date=$oTopic->getDateAdd() hours_back="12" minutes_back="60" now="60" day="day H:i" format="j F Y, H:i"}

Кое-что еще — для вывода на русском языке используем russian.php или просто сохраняем файлы в кодировке UTF-8 без BOM (использовать советую AkelPad).

С ув. Frankenstein
Источник

17 комментариев

avatar
Спасибо!
avatar
Спасибо!
avatar
Круто, а можно сделать такое же условие, но только для рейтинга?
Типа {if рейтинг топика > 1000} {/if}
avatar
Можно и для рейтинга:
{if $oTopic->getRating()>0}положительный рейтинг{elseif $oTopic->getRating()<0}отрицательный рейтинг{/if}

Кстати, можно придумать идею что-то типа: если рейтинг поста >10 — бронзовый пост, >20 — серебряный пост, >30 — золотой пост :)
avatar
интересно!
avatar
Если развить идею, то может действительно что-то получится. Например, сделать оформление поста другим — для «золотого поста» допустим какая-то медаль выводится + фон определенного цвета и т.п.
avatar
Как вариант — выдавать медаль в профиль :)
Интегрировать с соответствующим плагином.
avatar
Ну это уже явно посложнее чем то, о чем я написал, но, как вариант, если автор плагина заметит, может и добавит в туду-лист.
avatar
я вижу :)
avatar
для этого и спрашиваю =) Спасибо большое
avatar
А для комментаря, я так понимаю, меняем oTopic на oComment?
avatar
Да, $oComment->getRating()
avatar
Напиши топик для Рейтинга как сделать. Будет очень интересно.
avatar
С рейтингом я сделал так.

{if $oTopic->getRating()>0}<span style="color:green;">Up!</span>{elseif $oTopic->getRating()<0}<span style="color:red;">Down!</span>{/if}

Я так думаю лучше.
avatar
А для комментариев я сделал так.
{if $oComment->getRating()>0}<span style="color:green;"><img src="http://website/files/smiles/smile.gif" /></span>{elseif $oComment->getRating()<0}<span style="color:red;"><img src="http://website/files/smiles/sad.gif" /></span>{/if}

Т.е. При положительном рейтинге у комментария будет Смайлик с улыбочкой. а если отрицательный, то будет Грустный смайлик.
avatar
Если в комментах вы использовали картинки, то
<span style="color:green;"></span>
можно убрать.
avatar
Ой. Точно не заметил. Хотел же убрать.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.