Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Ritsuka

[HOWTO] Динамическое лого по дням и месяцам

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

Чтобы сделать динамический логотип, реагирующий на время года и праздники, вам потребуется:

 

1. Приготовить набор логтипов, назвая каждый следующим образом:

 

logo-[месяц].png - стандартный логотип месяца,
logo-[месяц]-[число].png - особый логотип на особый день.

 

Например:

 

logo-03.png - мартовский
logo-03-08.png - особый логотип на 8 марта

 

Праздники не обязательны, но на все 12 месяцев логотипы нужно сделать.

 

2. Создать на форуме папку /public/logos/, и сложить их туда.

 

3. Отредактировать шаблон Глобальные > defaultHeader. Заменить его содержимое на:

<php>
$logo_ext = '.png';
$logo = file_exists(DOC_IPS_ROOT_PATH . '/' . PUBLIC_DIRECTORY . '/logos/logo-' . date('m-d') . $logo_ext) ? date('m-d') . $logo_ext : date('m') . $logo_ext;
$logo = $this->settings['public_dir'] . 'logos/logo-'.$logo;
</php>

<a href='{$this->settings['board_url']}' title='{$this->lang->words['go_home']}' rel="home" accesskey='1'><img src='{$logo}' alt='{$this->lang->words['logo']}' /></a>

 

Если у вас логотипы не в .png, а в .jpg, просто замените значение: $logo_ext = '.jpg';

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

Если лениво рисовать сразу на все месяцы, можно:

 

1. Положить в папку /public/logos/ стандартный вариант логотипа под именем logo.png.

 

2. Усложнить код шаблона:

 

<php>
$logo_ext = '.png';
if ( file_exists(DOC_IPS_ROOT_PATH . '/' . PUBLIC_DIRECTORY . '/logos/logo-' . date('m-d') . $logo_ext) ) {
   $logo = $this->settings['public_dir'] . 'logos/logo-' . date('m-d') . $logo_ext;
} elseif ( file_exists(DOC_IPS_ROOT_PATH . '/' . PUBLIC_DIRECTORY . '/logos/logo-' . date('m') . $logo_ext) ) {
   $logo = $this->settings['public_dir'] . 'logos/logo-' . date('m') . $logo_ext;
} else {
   $logo = $this->settings['public_dir'] . 'logos/logo'. $logo_ext;
};
</php>

<a href='{$this->settings['board_url']}' title='{$this->lang->words['go_home']}' rel="home" accesskey='1'><img src='{$logo}' alt='{$this->lang->words['logo']}' /></a>

 

Теперь логтипом будет либо "logo-[месяц]-[день].png", либо, если его нет, "logo-[месяц].png", либо, если и такого нет, "logo.png".

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Вместо "date('m-d')" использовать "rand(1, n)", где n - максимальное числовое значение в имени файла логотипа. Т.е. если в наборе 10 файлов (logo-1.png, logo-2.png ... logo-10.png), то пишем "rand(1, 10)".

$logo = file_exists(DOC_IPS_ROOT_PATH . '/' . PUBLIC_DIRECTORY . '/logos/logo-' . rand(1, 10) . $logo_ext);

Это будет случайное лого из набора.

 

Со сменой раз в час сложнее, если требуется рендомно выбрать лого из произвольного числа файлов... Если же следовать предложенному методу, то нужно сделать набор из 24-х логотипов, нумерация файлов от 00 до 23 и использовать "date('H')", или 12 файлов и "date('h')", нумерация 01 - 12.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...