Иконка ресурса

Изменение логотипа в зависимости от времени суток

becdelbnik, тогдаучитывать эту разницу в условиях или добавить в конце даты -130 (час и 30 минут)
Например,
Код:
<xen:if is="{xen:time $serverTime, 'G'}*100+{xen:time $serverTime, 'i'}-200 >= 1846">
У меня 200, т.к. разница в 2 часа была.
Но мне кажется, что есть более красивые варианты решения этой проблемы , о которых я не знаю :)
 
Добрый вечер, а это будет все выглядеть полностью ? Мне к примеру нужно это время :

Код:
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G'} < 18:30" />
<img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'} >= 18:30 AND {xen:time $serverTime, 'G'} < 23" />

У меня просто руки кривые .
Код:
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G:i'} < 18:30" />
<img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G:i'} >= 18:30 AND {xen:time $serverTime, 'G'} < 0" />
 
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G:i'} < 18:30" /> <img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" /> <xen:elseif is="{xen:time $serverTime, 'G:i'} >= 18:30 AND {xen:time $serverTime, 'G'} < 0" />

Пишет при сохранении "неверное выражение условия"
 
Пишет при сохранении "неверное выражение условия"
Это естественно, я только подогнал предложенный вами кусок кода.
А правильно он должен выглядеть так:
Код:
<xen:if is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G:i'} < '18:30'" >
<img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G:i'} >= '18:30' AND {xen:time $serverTime, 'G'} < 0" />
<img src="путь_к_вашему_логотипу_2" alt="{$xenOptions.boardTitle}" />
</xen:if>
Вы лучше распишите временной интервал, так было бы более понятнее.
 
  • Мне нравится
Реакции: Hope
Извиняюсь, там я лишний закрывающий слэш поставил и одинарные кавычки забыл.

Как-то так, но перепроверьте:
Код:
<xen:if is="{xen:time $serverTime, 'G'} >= 3 AND {xen:time $serverTime, 'G'} < 12" >
<img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G:i'} < '18:30'" />
<img src="путь_к_вашему_логотипу_2" alt="{$xenOptions.boardTitle}" />
<xen:else />
<img src="путь_к_вашему_логотипу_3" alt="{$xenOptions.boardTitle}" />
</xen:if>
 
Как-то так, но перепроверьте:

Что-то не работает, возможно все те же кривые руки, если не трудно, поправьте вот этот код для 4 лого и вот этого времени:

03 - 12
12 - 18:30
18:30 - 23


Код:
<div id="logo"><a href="{$logoLink}">
  <span><xen:comment>This span fixes IE vertical positioning</xen:comment></span>
  <xen:if is="{xen:time $serverTime, 'G'} >= 6 AND {xen:time $serverTime, 'G'} < 12">
  <img src="путь_к_вашему_логотипу_1" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G'} < 18" />
<img src="путь_к_вашему_логотипу_2" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'} >= 18 AND {xen:time $serverTime, 'G'} < 23" />
<img src="путь_к_вашему_логотипу_3" alt="{$xenOptions.boardTitle}" />
<xen:else />
<img src="путь_к_вашему_логотипу_4" alt="{$xenOptions.boardTitle}" />
</xen:if>
  </a></div>
 
так это и не будет работать. Ведь разные типы сравниваются.. А в мой вариант не работает??[DOUBLEPOST=1393946268,1393945445][/DOUBLEPOST]
Код:
<div id="logo"><a href="{$logoLink}">
  <span><xen:comment>This span fixes IE vertical positioning</xen:comment></span>
  <xen:if is="{xen:time $serverTime, 'G'}*100+{xen:time $serverTime, 'i'} >= 300 AND {xen:time $serverTime, 'G'} < 12">
  <img src="лого от 3 до 12" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'} >= 12 AND {xen:time $serverTime, 'G'}*100+{xen:time $serverTime, 'i'} < 1830" />
<img src="лого между 12 и 18:30" alt="{$xenOptions.boardTitle}" />
<xen:elseif is="{xen:time $serverTime, 'G'}*100+{xen:time $serverTime, 'i'} >= 1830 AND {xen:time $serverTime, 'G'} < 23" />
<img src="лого между 18:30 и 23" alt="{$xenOptions.boardTitle}" />
<xen:else />
<img src="лого между 23 и 3" alt="{$xenOptions.boardTitle}" />
</xen:if>
  </a></div>
Только что проверил... у меня работает.. Это полностью готовый вариант, только заменить ссылки.

Код:
{xen:time $serverTime, 'G'}
- это выдает формат 0-24, поэтому там где надо сравнить с минутами я умножаю на 100, чтобы добавить 2 нуля и оно корректно сочеталось

Код:
 {xen:time $serverTime, 'G'}*100+{xen:time $serverTime, 'i'} < 1830
т.е. 18:30 записывается без двоеточия

P.S. На это время также влияют настройки часового пояса. Пользователи выбирают его в профиле, а не зарегистрированным задается в панеле управления в разделе Настройки: Основная информация о форуме
Я еще подумаю как это обойти.


P.SS. Прогнозы неочень, т.к. скорей всего прийдется всем пользователям устанавливать одинаковый часовой пояс
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу