Forums / National / Russian / Тех. поддержка / Как проверить в TPL...

Kabak
#1 2024-01-12 11:22

Как проверить в TPL сколько дней прошло с момента публикации сообщения на форуме ?

Kort
#2 2024-01-12 11:51

Для каждого поста в таблице cot_forums_posts существуют поля fp_creation и fp_updated. Данные в них хранятся в формате timestamp. Дальше считай сам. Функцию можно добавить в php-файл с темой или (через миниплагин) в файл с необходимым хуком.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#3 2024-01-12 12:13

Как в TPL считать ?

Я надеялся что в движке есть такая функция, чтобы не пихать её в тему

Alex300
#4 2024-01-12 14:41

Все зависит от шаблна в котором нужно вывести это. Например в forums.topics.tpl есть тег FORUMS_TOPICS_ROW_TIMEAGO. Аналогичный тег есть в RecentItems.

Если в нужно шаблоне его нет, то можно как то так:

{PHP|cot_build_timegap({FORUMS_POSTS_ROW_CREATION_STAMP})}

т.е. использовать функцию cot_build_timegap(). Которой надо передать временную метку Unix в виде int'а.

Уточнить есть ли нужный тег в шаблоне или что содержит временную метку можно заглянув в код расширения, которое наполняет шаблон данными и рендерит его.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#5 2024-01-12 16:19

Смотрите всё проще.  Например, я вывожу на главной странице последние сообщения с форума и мне нужно выделить информацию о сообщениях которые моложе какого-то количества дней или часов.  Я хочу проверить в шаблоне , например , плагина forman или ricentitems сколько времени прошло от момента публикации сообщения до текущего момента. И если время меньше , например , недели, то использовать другой CSS для отображения элемента в шаблоне.

 

<!-- IF {PHP|time()} - {PAGE_ROW_UPDATED_STAMP} > 1000000 -->

 

Добавлено 2 недели спустя:

Как правильно писать проверку в TPL ?

<!-- IF ( {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'files')} > 0 OR {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'images')} > 0 )  AND {PHP.usr.maingrp} > 1 -->

Такое можно со скобками мутить или нет ?         т.е.  <!-- IF  ( 1 или 2 ) и 3  -->

или нужно так ?

<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'files')} > 0 OR {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'images')} > 0 -->
<!-- IF {PHP.usr.maingrp} > 1 -->

 

Мне нужно, чтобы на форуме отображался блок с вложениями, если есть хоть один файл или картинка во вложении ( плагин attach2 ) , и при этом,  чтобы это было доступно только зарегистрированным пользователям.

 


Dit bericht is bewerkt door Kabak (2024-01-30 11:34, 2 maanden ago)
Kopusha
#6 2024-02-01 00:29

Будь проще
 

<!-- IF {PHP.usr.id} -->

<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'files')} > 0 OR {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'images')} > 0 -->

blabla

<!-- ENDIF -->

<!-- ENDIF -->