[HOWTO] Динамическое лого по дням и месяцам - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы оформления форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Оформление форумов IPB 2.x.
Настройка форумов, включая установку и техническую настройку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

лого

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

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

#1 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 530
  • IPB version:3.4.x
 

Отправлено 21 Октябрь 2012 - 16:37

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

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

#2 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 530
  • IPB version:3.4.x
 

Отправлено 21 Октябрь 2012 - 16:51

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

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

#3 Пользователь не на сайте   VadimD ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 77
  • Регистрация: 17-Декабрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 04 Июль 2013 - 09:00

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

#4 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 149
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 04 Июль 2013 - 10:51

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

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме


Последние записи в блогах на эту тему

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна