Модуль ротации иконки сайта favicon.ico

3169
Модуль предназначен для автоматической ротации иконки сайта favicon.ico, с периодичностью, задаваемой из админки модуля. Тестировался на 1.10.4, должен подходить ко всем версиям, начиная с 1.10.1 и позже.

Лень - двигатель прогресса

Казалось бы, ну что тут сложного в иконке? Залил по ftp в корень сайта файлик с именем favicon.ico и дело с концом.

Или уж, если Вы вознамерились положить иконку не в корень, а в другое место, при этом файл иконки имеет имя, отличное от favicon.ico. можно использовать вариант для гурманов - прописать в между тегами <head>...</head> в шаблоне что то вроде
Код PHP:
  1. <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/путь/icon.png" />

Но не тут то было.

Взялся я как-то делать сайт одной девочке. Девочка не блондинко, но эстет и перфекционистка. Сайт я ей сделал, но тут начались фокусы. Она замучила меня подбором иконки. При этом она наотрез отказывалась освоить операцию замены иконки по ftp, заявив, что это для нее "сложно". Она наивно решила, что я для того и родился на свет, чтобы одну за другой заливать иконки на ее сайт, поскольку мне это "просто". Причем идеи, какую иконку залить, у нее возникали быстрее, чем я успевал это делать.

Естественно, мне это минут через пятьдесят надоело, и я в учтивых выражениях объяснил этой несносной егозе, что думаю про ее перфекционизм. Она надула губы, а я вовремя вспомнил, что программирование для того и служит, чтобы автоматизировать повторяющиеся действия.

Постановка задачи

Мне пришла в голову мысль залить на сайт чохом с сотню иконок, а пусть она потом сама выбирает из админки. Хайре Кришна, щелкать по галкам она таки научилась. Так родилось ТЗ:
1. Оформить ротатор иконок в виде модуля с админкой, где можно задать имя файла иконки.
2. Количество и имена заливаемых файлов заранее не известны.
3. Тогда уж и прикрутить таймер, позволяющий менять иконки на сайте, либо при каждом переходе по страницам сайта, либо через определенный промежуток времени, например, минута, час, сутки.

Интерфейс админки модуля

Интерфейс содержит следующие элементы:
Модуль ротации иконки сайта favicon.ico

1. Включить ротацию. При установленной галке модуль автоматически меняет иконку из коллекции, которая содержится в папке modules/mod_favicon/icons/ с периодичностью, заданной в настройке "Периодичность ротации":
2. Периодичность ротации. Тут из выпадающего списка можно выбрать четыре значения:
- Немедленно. Иконка будет меняться при каждом переходе между страницами сайта
- 1 минута. Вы можете щелкать по ссылкам, но иконка поменяется, только если прошла 1 минута после предыдущей замены.
- 1 час. Аналогично. При этом можно совсем уйти с сайта, а вернуться на него спустя, скажем, 50 минут - модуль помнит время предыдущей замены.
- 1 сутки. Думаю, уже понятно.
3. Эта настройка нужна, если ротация выключена. Здесь можно прописать имя иконки из коллекции, указанной выше. Если ротация включена, данная настройка ни на что не влияет.

Установка модуля

Практически не отличается от установки любого модуля.

1. Залить в корень сайта содержимое архива (за исключением readme.txt)

2. В текущем шаблоне открыть файл templates/_имя_шаблона_/positions.txt и дописать туда позицию favicon.

3. Открыть файл templates/_имя_шаблона_/template.php и между тегами <head>...</head> найти строчку, похожую на
Код PHP:
  1. <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/путь/icon.png" />
Заменить ее на строку
Код PHP:
  1. <?php $this->printModules('favicon'); ?>
Если не нашли, ничего страшного, просто вставьте строчку вывода модуля в любое место шаблона между тегами <head>...</head>.

4. Выполнить настройки модуля: показывать на всех страницах, показывать всем группам. Остальные настройки как на картинке:
Модуль ротации иконки сайта favicon.ico


5. Выполнить sql-запрос к БД, чтобы подключить модуль. Текст запроса смотрите в файле readme.txt

6. Модуль поставляется с небольшой коллекцией иконок (их там 6 штук, забросил первые попавшиеся под руку). Вы всегда можете добавить своих, сколько захочется, в папку modules/mod_favicon/icons/. Большинство браузеров поддерживает расширение файла иконки *.ico, *.png и неанимированный *.gif. Если вы забросите анимированную гифку, в Опере она воспроизводиться не будет - увидите статическую картинку. Лис анимированную гифку прокручивает.

Как получить модуль

1. Перечисляете 200 рублей одним из способов, с указанием в сопроводительной записке, от кого пришли деньги и за какую разработку.

wmr 342960323367
яд 410011913797936

2. Пишите мне в личку свои контактные данные - куда выслать архив.

Неудовольствие по поводу платности я не принимаю - бесплатный способ указан в ведении, смотрите выше.

Удачи в сайтостроении и чмок моим любимым программисткам)))
Хак "Добавление настройки приватности профиля - показывать профиль только назначенным группам" для v. 1.10.4 и v. 1.10.5 | Хак "Вечное объявление" для 1.10.х
Комментарии (17)
Stecc 27 ноября 2014 в 09:04 0
А какой фавикон будет тогда индексировать ПС? scratch
Полагаю, тот, который был в момент прихода паука.
Олег Васильевич я 27 ноября 2014 в 09:08 0
Чё-то сразу подумалось - ерунду Странник вдруг предлагает. А подумав малость, уже так не скажу: иконку в модуль - одна идея 200 руб стоит!
Кирилл Эдуардович (Странник) 27 ноября 2014 в 09:11 +4
Идеи у Странника всегда были странные, это точно.
Петрмаг 27 ноября 2014 в 09:16 +3
Все классно,только одно большое НО!!! к иконке многие пользователи привыкают годами и в поиске она им как меленький маячок в светлый путь вашей инфы ,а тут то огурец,то помидор,то ястреб ))) в натуре странно))))))))))))

Странник вы молодец!,но тут на любителя...)
Кирилл Эдуардович (Странник) 27 ноября 2014 в 09:23 +4
Просто Странник не знал, что так делать нельзя и сделал....
Если серьезно, у креативных дизайнеров или шаблоноделов могут появиться идеи, как обыграть динамический фавикон, и тем самым получить дополнительные очки.

Как вам такая идея: иконка одна и та же, но на каждый день недели своего цвета? Или: у каждой страницы сайта своя иконка? Или: иконка, показывающая время?

Так вот, данный модуль позволяет технически эти идеи поддержать.

Еще у меня была идея сделать прокрутку иконок по аяксу, если кому-то будет нужно, я сделаю. Но предупреждаю: трафик возрастет. Для медленных соединений это не айс.
letsgo 29 ноября 2014 в 23:01 -2
Осталось сделать еженедельную замену урлов страниц сайтов и вообще сказка будет)

Фавикон как бы в выдаче выходит, есть ап фавикона в поисковике и такое мигание, как вы думаете полезно будет? Второй момент - элементарное юзабилити для посетителя постоянного, то одно, то другое.

Кроме девочек ахающих от мигания блестящего кому то это пригодится?)
Кирилл Эдуардович (Странник) 29 ноября 2014 в 23:05 +1
Мальчикам, ахающим от мигания.
Не все же сайты должны быть статичными.
И еще. Все новые идеи обычно встречаются в штыки ретроградами, это обычное явление.
letsgo 29 ноября 2014 в 23:19 -2
Новая идея?) По моему лет 7 назад юкоз любил мигать всем подряд. Насчет новизны вы хватанули. Я не против разработки, хоть замену урлов ежедневную сделайте и назовите идеей, просто удивлен, что простые вещи переворачивают.
Кирилл Эдуардович (Странник) 29 ноября 2014 в 23:29 +1
уже второй раз пишете про замену урлов. я разве предлагал урлы менять? это ваша идея.
дорогой друг, вы сами придумали ахинею и сами свою выдумку критикуете, но приписываете сию идею мне?

мдя. бывает и такое....
Олег Васильевич я 29 ноября 2014 в 23:07 +1
А я б сказал так: чтобы не связываться с роботами, для гостей - одна иконка, для пользователей - набор (в первую очередь видятся как раз свои иконки для разделов). Если кому взбредёт в голову менять помидор на экскаватор, то это его дело.
letsgo 29 ноября 2014 в 23:20 -4
а в сниппете что будет показываться тогда?)
то, что было в момент прихода паука. этот вопрос уже задавали.
Именно так, дружище.

Видите, у креативного шаблонодела сразу идеи зашевелились. Для таких людей модуль и делался.

Кстати, Олег Васильевич я, ты мне еще идею подкинул. Завтра с утра займусь.
Нил™ 9 января 2017 в 13:10 0
Думаю, ротация не имеет смысла, так как обычно браузеры жестко кэшируют favicon, и если они при первом посещении страницы а увидели иконку б, то при повторном посещении той же страницы, без чистки кэша, браузер снова покажет иконку б.
А загрузка иконки из админки или выбор, видимо может быть полезно)
Иконка при ротации переключается модулем именно в момент перехода со страницы на страницу. Поскольку имя файла иконки поменялось, браузер берет картинку не из кэша, а подгружает с сервака. Я этот вопрос выяснил, перед тем, как писать модуль.