Условия в шаблонах Vbulletin 4.x.x

  • Автор темы Lukamal
  • Обновлено
  • 14, Dec 2013
  • #1
В шаблоны можно вставить условия которые позволяют определённым пользователям показывать/не показывать какую-то информацию например:
<vb:if condition="$show['guest']"> Показать только гостям. <vblse /> Показать всем зарегистрированным </vb:if>
Хочу условие работающее с датой например: "$datatime['13.12.2013']" and condition<="$datatime['15.01.2014']"> Показать только надпись. Но ни яндекс ни гугл не помогли в этом вопросе!

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 14, Dec 2013
  • #2
lukamal: Хочу условие работающее с датой


Я такое делал для тройки, следующим образом:

Добавляем хук, в месте где хотим выполнение условия:

 $datenow = date("Y-m-d"); 
$datestart = date("2013-12-10"); // Начальная дата 
$dateend = date("2013-12-14"); 


И вставляем в шаблон условие:

 <if condition="($datenow >= $datestart) AND ($datenow <= $dateend)">
Этот текст виден с $datestart по $dateend
</if>


Для четверки сильно отличатся не будет.
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
  • 15, Dec 2013
  • #3
Mister: Я такое делал для тройки, следующим образом:

Добавляем хук, в месте где хотим выполнение условия:
 $datenow = vbdate(TIMENOW, true); // Получение текущей даты
$datestart = strtotime("2013-12-13"); // Начальная дата
$dateend = strtotime("2013-12-16"); // Конечная дата


И вставляем в шаблон условие:
 <if condition="($datenow > $datestart) AND ($datenow < $dateend)">
Этот текст виден с $datestart по $dateend
</if>


Для четверки сильно отличатся не будет.
Тут как говорится самое трудное начать! На саппорте читал про хук, но что-то до конца не понятно! Расскажи как для первоклашки как добавлять хук?
Задача которую я хочу решить это различное отображение шапки форума в зависимости от определённых промежутков дат!
 

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 15, Dec 2013
  • #4
lukamal: Расскажи как для первоклашки как добавлять хук?
Хук, иными словами модуль, продукты в vBulletin складываются с модулей, посмотреть можно - Продукты и модули - Управление модулями. Что бы добавить новый модуль Продукты и модули -Добавить новый модуль.
lukamal: Задача которую я хочу решить это различное отображение шапки форума в зависимости от определённых промежутков дат!
Добавьте новый модуль в global_start
 $datenow = date("Y-m-d"); 
$datestart = date("2013-12-10"); // Начальная дата 
$dateend = date("2013-12-14"); // Конечная дата
<vb:if condition=>"$datatime['13.12.2013']" and condition<="$datatime['15.01.2014']"> Показать только надпись. </vb:if>
Это не правильно составленное условие, должно быть как то так (нет четверки что бы проверить):
 <vb:if condition="($datenow >= $datestart) AND ($datenow <= $dateend)">
Этот текст виден с $datestart по $dateend
</vb:if>
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
  • 15, Dec 2013
  • #5
Данный код ошибок не выдаёт, но если поставит временной промежуток не выполняющий условия, то ни чего не происходит. Видимо даты нужно как-то по другому сравнивать (в другом формате)!
 

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 15, Dec 2013
  • #6
lukamal: Видимо даты нужно как-то по другому сравнивать (в другом формате)!
Проверил, у работает нормально. p/s Ссылку на видео демонстрацию скинул в ЛС.
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
  • 15, Dec 2013
  • #7
У меня так не проходит переменные в дату не превращаются!




 

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 15, Dec 2013
  • #8
lukamal: У меня так не проходит переменные в дату не превращаются!
Проверь местоположение модуля и включен ли он.
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
  • 15, Dec 2013
  • #9
Mister: Проверь местоположение модуля и включен ли он.
В четвёрке видимо по другому










 

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 15, Dec 2013
  • #10
lukamal: В четвёрке видимо по другому
Возможно, нужно поставить четверку на denwer и посмотреть что там.
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
  • 15, Dec 2013
  • #11
Разобрался как нужно делать.
$datenow = date("Y-m-d");
$datestart = date("2013-12-10"); // Начальная дата
$dateend = date("2013-12-17"); // Конечная дата
vB_Template:: preRegister('footer',array('datenow' => $datenow));
vB_Template:: preRegister('footer',array('datestart' => $datestart));
vB_Template:: preRegister('footer',array('dateend' => $dateend));
между двойным двоеточием и preRegister поставил пробел иначе смайлик показывается!
<vb:if condition="($datenow >= $datestart) AND ($datenow <= $dateend)">
Этот текст виден с {vb:raw $datestart} по {vb:raw $dateend}
</vb:if>
 

Lukamal


Рег
30 Aug, 2012

Тем
124

Постов
837

Баллов
1477
  • 15, Dec 2013
  • #12
lukamal: <vb:if condition="($datenow >= $datestart) AND ($datenow <= $dateend)">
Этот текст виден с {vb:raw $datestart} по {vb:raw $dateend}
</vb:if>
Вот как, работает?
 

Mister1


Рег
02 Mar, 2013

Тем
81

Постов
386

Баллов
811
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно