[Timer] - Отсчет времени в сообщении

Автор Loac, 09 января 2008, 23:00:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Loac

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

[timer=час(0..23),день(1..31),месяц(1..12),год(например 2008)]Текст перед таймером | Текст по истечении таймера[/timer]

Как использовать:
[timer=21,31,1,2008]До выхода четвертого сезона LOST осталось: |4 сезон LOST в эфире[/timer]
Вертикальная палочка «|» используется для отделения текста до и после назначенной даты.

Пример:
До выхода четвертого сезона LOST осталось: 21 день, 22 часа и 25 минут

В 9 часов вечера, 31 января 2008 года, вместо таймера будет видна надпись:

4 сезон LOST в эфире

--

Кнопку не добавил намеренно, чтобы таймеры не пихали от нечего делать, а использовались только релизерами.

KVL


mitia

Спасибо, вот еслиб туда ещё минуты прикрутить...

KVL

Цитата: mitia от 02 марта 2008, 20:14:18
Спасибо, вот еслиб туда ещё минуты прикрутить...
Ты, наверное имел ввиду секунды?

mitia

Цитата: KVL от 03 марта 2008, 01:28:42
Ты, наверное имел ввиду секунды?
И секунды было бы неплохо, но у меня и минуты выставить не получилось, только полные часы.

KVL

Цитата: mitia от 03 марта 2008, 07:56:33
И секунды было бы неплохо, но у меня и минуты выставить не получилось, только полные часы.
Минуты работают, как часы - проверено не раз, видимо что-то не так делаешь или на форуме что-то не то, а секунды, думаю, что это излишнее.

Loac

Имеется виду возможность выставить минуты в самом таймере [timer=минуты, часы и т.д.
Сделаю на днях.

mitia

Буду премного благодарен )), мне нужна именно такая функция.
А если-б второе сообщение -лост в эфире- ещё и заменялось бы через, скажем 2 мин 45 сек (настраивается) на, к примеру "Вы не успели посмотреть лост" (настраивается) было-бы вообще шоколадно ))
В принципе готов даже чуть чуть приплатить )) в пределах неских wmz/

Loac

#8
Не стоит, но спасибо :)

Как вариант, могу сделать так. Вводишь время [timer=12,22,05,03,2008,90]выйдет: | вышел | прошел[/timer]
Последняя цифра в таймере, количество минут после указанной даты. То есть через дата+90 минут (полтора часа) будет выведена надпись «прошел».

В противном случае тебе придется вводить 10 параметров в тег.

mitia

[timer=12,22,05,03,2008,90] - [timer=час,мин,число,месяц,2008,90] так получается?
и ответ будет
Осталось 5 мин|в эфире|закончился
Так получится?
если так то великолепно! то что надо.

Loac

Лови модифицированную версию. Оригенальную обязательно удали. Старые таймеры (без минут) работать не будут. Не забудь их подправить.

Использование:
[timer=час(0..23),минута(0..59),день(1..31),месяц(1..12),год(например 2008),минут после даты(не обязательно)] Выйдет: | Вышел | Прошел [/timer]
   
Вертикальная палочка «|» используется для отделения режимов таймера.
1. Текст до события;
2. Текст после события;
3. Текст после завершения события;
   
Например:
[timer=12,00,06,03,2008,120]Раздача слонов начнется через: | Раздача слонов в процессе | Слоны закончились, извините.[/timer]
   
В сообщении будет текст: Раздача слонов начнется через: 21 день, 22 часа и 25 минут
В полдень шестого марта: Раздача слонов в процессе
А к обеду, спустя два часа: Слоны закончились, извините.

mitia

Мои величайшие благодарности, ну и плюсик...
то что надо. Заюзал, протестил просто великолепно... Если я что должен сообщи.
Жаль не получилось таймер в таймер вставлять, а то вообще бы вышел вечный топик ))) Забил таймеров на неделю впрёд и отдыхай.

OrangePLAY

Большое спасибо! Классный мод.
SMF 2.0 RC 1.2

v3

Благодарю за мод для форума. Очень пригодился.

p.s. как ставится плюс?

Mavn

Цитата: v3 от 21 марта 2008, 00:01:53
p.s. как ставится плюс?
после 5 сообщений сможете + поставить. Сделано специально чтобы некоторые одоренные по жизни личности не злоупотребляли.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

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

deadbead

Ну) Теперь осталось только прикрутить секунды и ява скриптик, который заставит их тикать))

А в целом +
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Loac


deadbead

Согласен) Но динамика на посте это что-то оригинальное)

Кстати наверное этот мод неплохо использовать совместно с модом DoublePosting что-бы вместо обычного "Добавлено" писалось бы "Добавлено спустя 2 дня 5 часов 23 минуты и 6 секунд" Я для этого свои штуки накручивал...

Но надо будет переделать чтобы была возможность в теге использовать макроподстановки текущего времени....
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Kornak

Что это за дабл постинг такой? Искал по оффициальному сайту в модификациях не нашёл... Искал по этому форумы меня вывело лишь на этот самый пост... А вещь если я правильно понял его функционал мне как раз очень нужная...
© Kornak 2004-2015

۞ Скутерклуб - http://proscooters.ru/

deadbead

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Kornak

+1 ;) спасиб я слитно просто искал...
© Kornak 2004-2015

۞ Скутерклуб - http://proscooters.ru/

m4dn3ss

а сделайте плиз для utf8 плиз. для файла modification.russian-utf8.php.

0daliska

Цитата: m4dn3ss от 24 октября 2009, 22:34:29
а сделайте плиз для utf8 плиз. для файла modification.russian-utf8.php.
Скачайте себе бесплатный notepad++ с их официального сайта,  в нем и перекодируйте - и в дальнейшем пригодится!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

m4dn3ss

мод редактирует файл modification.russian.php а мне нужно чтоб редактировал modification.russian-utf8.php..

0daliska

#24
Самый хороший мод - это прямые руки!!! Ума для того, чтобы взять текст из modification.russian.php и переконвертировать в notepad++ и скопировать в modification.russian-utf8.php, много не нужно...

ЗЫ: Вам дают удочку, а Вы по-прежнему рыбу требуете :) Так Вы ничему не научитесь... Все будете ждать, когда Вам кто-то чего-то сделает... Последовав совету получите готовый мод (причем уже в дальнейшем не только этот) через несколько минут...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

wwwserfer

Хотите прикрутить динамику? Вот java скрипт позволяющий отображать истекающее время динамически:

Демо:



Код:

<script type="text/javascript">

var Countdown =
{
  timer: null,
  init: function(id, until)
  {
    Countdown.node  = document.getElementById(id);
    Countdown.update(until);
    Countdown.timer = setInterval(function()
    {
      Countdown.update(until);
    }, 1000);
  },

  stop: function()
  {
    clearInterval(Countdown.timer);
    return true;
  },

  update: function(until)
  {

    var s = Countdown.process(new Date(), until);
    Countdown.node.innerHTML = s || Countdown.stop() && 'Всё! Время вышло!';
  },

  difference: function(before, after)
  {
    if (after < before) return false;
    var
    days   = after.getDate()  - before.getDate(),
    months = after.getMonth() - before.getMonth(),
    years  = after.getYear()  - before.getYear(),
    hms    = (after / 1000 - before / 1000) % 86400,

    seconds = Math.floor(hms % 60),
    minutes = Math.floor(hms/60) % 60,
    hours   = Math.floor(hms/3600) % 60,

    date = new Date();

    if (days < 0)
    {
      date.setFullYear(before.getYear(), before.getMonth(), 32);
      days += 32 - date.getDate();
      months--;
    }

    if (months < 0)
    {
      months += 12;
      years--;
    }

    return {
      years:   years,
      months:  months,
      days:    days,

      hours:   hours,
      minutes: minutes,
      seconds: seconds
    };
  },

  process: function(before, after)
  {
    var diff = null, a = [], i = '';
    if(!(diff = Countdown.difference(before, after))) return false;

    for(i in diff)
    {
      if(!diff[i]) continue;
      a.push('<span class="num">'
              + diff[i] +
             '</span><span class="unit">'
              + Countdown.lang[i][Countdown.lang.choose( diff[i] )] +
             '</span>');
    }

    return a.join(' ');
  },

  lang:
  {
    years:   ['<b> год</b>', '<b> года</b>', '<b> лет</b>'],
    months:  ['<b> месяц</b>', '<b> месяца</b>', '<b> месяцев</b>'],
    days:    ['<b> день</b>', '<b> дня</b>', '<b> дней</b>'],
    hours:   ['<b> час</b>', '<b> часа</b>', '<b> часов</b>'],
    minutes: ['<b> минута</b>', '<b> минуты</b>', '<b> минут</b>'],
    seconds: ['<b> секунда</b>', '<b> секунды</b>', '<b> секунд</b>'],
    choose:  function(n)
    {
      var m = n % 100, i = 2;
      if(m < 5 || 20 < m)
      {
        if((m %= 10) === 1)
        {
          i = 0;
        }
        else if(1 < m && m < 5)
        {
          i = 1;
        }
      }
      return i;
    }
  }
};

window.onload = function()
{
  Countdown.init('countbox', new Date(2011, 9, 29, 16, 51, 00));
};

</script>

Bugo

Как бы реализовать этот мод для работы только в определённых темах\разделах?

svobodniy

Цитата: wwwserfer от 17 декабря 2009, 16:07:10
Хотите прикрутить динамику? Вот java скрипт позволяющий отображать истекающее время динамически:
Нубский вопрос: а куда это вставлять?

Wolk


Spazmus

А у меня совсем не установился  :( Ругается и все.