Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Ritsuka

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

Recommended Posts

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

 

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

Share this post


Link to post

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

 

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...