Перейти к содержимому
Русский язык для Invision Community 5

Временный контент

Есть такой мод как VIP Members, который через админку даёт возможность выставлять пользователю определённую группу на некоторый срок, после окончания этого срока пользователь автоматически возвращается в исходную группу.

 

Мне такое не подходит, так как есть желание давать доступ к некоторому контенту на форуме (посредством внесения в шаблон <if test="memberfield:|:$author['field_номер доп.поля']">контент</if>) пользователям, которым админы выставили такой доступ через доп. поле. Но что бы время этого доступа было временным, и через определённое время автоматически снимался.

 

Возможно ли такое реализовать?

Рекомендованные сообщения

  • Автор

<if test="time() < strtotime('10 September 2015')">Показываем код до 10 сентября 2015 года</if>

А можно такую конструкцию, но скажем что бы контент показывался с 1 января по 3 января?

<if test="time() > strtotime('1 January') or time() < strtotime('3 January')">Показываем контент с 1 по 3 января</if>

Если контент надо показать включительно по 3 число, то в условии "3 January" меняем на "4 January".

Изменено пользователем Strategius

Только вместо or - and

Только вместо or - and

У меня заработало с or, а когда поменял на and перестало работать 038.gif

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

  • Автор

Если контент надо показать включительно по 3 число, то в условии "3 January" меняем на "4 January".

Спасибо.

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

А вообще есть ли в IPB свое время, не пользовательское? Т.е. время сервера, по мск к примеру.

А можно ли сделать, чтобы за расчет этого условия бралось серверное время, а не пользовательское?

php это северный язык и работает с временем сервера. Пользователь может указать только часовой пояс, и то, учитывается он только при использования функции форума.

 

У меня заработало с or, а когда поменял на and перестало работать

Логическое условие OR (или) возвращает TRUE если хоть одно из выражений является истинным. Сейчас больше 1 January? Да. Вот по этому и заработало. Правильно условие должно быть таким - сейчас больше 1 января и меньше 3 января.

Правильно условие должно быть таким - сейчас больше 1 января и меньше 3 января.

Сделал так:

 

<if test="time() > strtotime('1 December') AND time() < strtotime('30 December')">Показываем контент с 1 по 30 декабря</if>

И вообще не работает, не отображается... с 1 по 30 декабря.

Изменено пользователем Strategius

  • Автор

И вообще не работает, не отображается... с 1 по 30 декабря.

Ага.

Но с OR все дни работает.

  • Автор

А не подскажите конструкцию которая выводит информацию только на единственное число, раз вышеуказанная конструкция не работает?

date('d.m') == '31.12'

  • Автор

date('d.m') == '31.12'

Вот так?

<if test="date('d.m') == '31.12'">Контент</if>

Такой вариант не работает...

  • Автор

Такой вариант не работает...

А нет, сработало. Спасибо большое.

  • Автор

date('d.m') == '31.12'

А откуда скрипт берёт эту дату? Как я понял это не время на компьютере у пользователя и не время на сервере.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.