Skip to content

[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';

Featured Replies

  • Author

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

 

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".

  • 8 months later...

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

Вместо "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.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.