Как организовать таймер обратного отсчета до события?

Главные вкладки

Аватар пользователя pereyro pereyro 2 августа 2011 в 1:37

Хочу организовать таймер обратного отсчета до события. Т.е есть афиша, в неё нужно добавить поле ввода даты когда произойдет событие. После добавления записи вместо даты добавления поставить через сколько произойдет событие. Вообще такое возможно стандартными средствами или нет?

Комментарии

Аватар пользователя pereyro pereyro 2 августа 2011 в 2:30

Мне нужно чтобы не одна дата была. Приведу пример. Есть три записи: Театр, Кино, Цирк. Возле каждой записи будет, к примеру, для Театра состоится завтра (или через n-часов), для Кино, 20 дней (или n-часов), для Цирка так же. Чтобы этот обратный отсчет выводился к примеру вместо даты добавления поста, ну или на худой конец в самом посте.

Аватар пользователя aleks_84 aleks_84 2 августа 2011 в 2:47

дак вам нужно чтобы время тикало, или просто на странице выводилось сколько осталось до события?
Если чтобы тикало - товарищ xxandeadxx вам написал, если чтобы просто выводилось - можно на php сделать. Нужно 3 даты - ради бога, скопируйте трижды и поменяйте переменные...

Аватар пользователя pereyro pereyro 2 августа 2011 в 3:57

aleks_84 wrote:
дак вам нужно чтобы время тикало, или просто на странице выводилось сколько осталось до события?
Если чтобы тикало - товарищ xxandeadxx вам написал, если чтобы просто выводилось - можно на php сделать. Нужно 3 даты - ради бога, скопируйте трижды и поменяйте переменные...

Чтобы тикало это не серьезно. Чтобы просто выводилось сколько осталось. Найти скрипт не проблема, проблема в том как его прикрутить к записям?

Аватар пользователя aleks_84 aleks_84 2 августа 2011 в 10:51

Ну так используйте тимплэйты... Если у вас cck поле, и называется оно например field_date, то:
1) Ставите модуль date, включаете date_api, date_timezone, date_popup, своему полю назначаете виджет date_popup, чтобы удобно дату выбирать
2) копируете в папку темы файл content-field.tpl.php из папки модуля cck/theme, делаете его копию и переименовываете в content-field-field_date.tpl.php
2) в код content-field-field_date.tpl.php вставляете что-то подобное:

$date_start = date_create($node->field_date[0]['value'], timezone_open($node->field_date[0]['timezone_db']));
date_timezone_set($date_start, timezone_open($node->field_date[0]['timezone']));
$date_end = date_create($node->field_date[0]['value2'], timezone_open($node->field_date[0]['timezone_db']));
date_timezone_set($date_end, timezone_open($node->field_date[0]['timezone']));
                       
$event_length = date_difference($date_start, $date_end, 'minutes');

(этот код показывает длительность мероприятия в минутах, но думаю допилить его до вашего случая труда не составит.)
Извиняюсь, но подробнее смогу только вечером...