Как сделать ротацию (смену) баннеров, текста или целых блоков на сайте?

"Все аспекты самостоятельного создания и продвижения сайтов
от практика с многолетним опытом." — блог Рудь Сергея
info@site-on.net
Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!
17.05.2013

Рад снова всех приветствовать на своём блоге, посвящённом созданию и продвижению сайтов, а также дальнейшему заработку на них. В сегодняшнем выпуске Site on! я хочу рассказать вам об очень простом способе самостоятельного создания PHP скрипта, который будет производить смену баннеров (текста или чего-угодно ещё) при каждой перезагрузке страницы. Также вы сможете не просто выводить разные баннеры на одном и том же месте, но и тасовать несколько баннеров между собой, меняя их расположение на странице.

Ротация баннеров

Перезагружаем страницу:

Смена баннеров

Ротация баннеров и текста

Идея сделать скрипт смены (ротации) баннеров для своего блога возникла, когда я решил, что моим посетителям будет приедаться расположение одних и тех же баннеров на своих местах. Я ценю своих читателей и не засоряю свой блог рекламой, поэтому у меня на сайте всего 2 баннера и оба расположены в самом низу страницы, один баннер – это реклама моего защищённого хостинга (рекомендую всем прочитать мой обзор и отзыв о безопасном хостинге по ссылке выше), а второй баннер от Гугл. Так вот я решил, что будет лучше, если эти баннеры будут меняться между собой местами, то есть мне захотелось придать небольшого разнообразия :)

Что хочется сказать, перед тем как выложить мой простой, а потому и хороший скрипт ротации на ваше обозрение:

Итак, всё, что нам понадобиться, это знание о таком типе переменных в PHP как массивы и встроенной функции shuffle(), которая перемешивает заданный массив в случайном порядке. Вот конкретный пример как это реализовано на моём сайте:

<?php
$banners[] = '<p align="center"><img src="/images/1.png" alt="первый баннер" width="697" height="156" /></p>';
$banners[] = '<p align="center"><img src="/images/2.png" alt="второй баннер" width="345" height="16" /></p>';

shuffle($banners); echo $banners[0]; ?>

Те, кто читал мою статью о массивах (ссылка на неё чуть выше), уже всё поняли. А для тех, кто не понял, поясню: мы заносим в ячейки массива нужный нам код, в данном случае это код с баннерами, но может быть что угодно, хоть колонки сайта местами меняйте :)

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

shuffle($banners);

А затем выводим в браузер (в любом месте, но естественно, ниже по коду, чем мы создали сам массив) первый элемент массива в одном месте:

echo $banners[0];

И второй элемент массива в любом другом:

echo $banners[1];

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

echo $banners[0];

Вот ещё один пример точно такого же скрипта, но запишем его в другом стиле:

<?php
// заносим необходимые элементы в массив:
$banners = array(
'<img src="/images/1.png" alt="первый рисунок" width="697" height="156" />', '<img src="/images/2.png" alt="второй" width="345" height="16" />', '<img src="/images/3.png" alt="третий" width="695" height="56" />'
);
shuffle($banners); // перемешиваем echo $banners[0]; // выводим случайную картинку ?>

Об этих двух стилях я опять-таки уже писал в статье про массивы в PHP, какой стиль вам больше нравиться, выбирайте сами, это абсолютно без разницы.

Автоматическая смена баннеров на Joomla

Хочу уточнить один нюанс: если вы хотите поместить данный код в модуль Джумлы «HTML-код» или возможно он будет называться «Произвольный HTML-код», то вам необходимо установить бесплатный плагин Sourcerer, который служит специально для вставки PHP и любого другого кода внутри статей и модулей Joomla. На сегодняшний день команда разработчиков плагина Sourcerer полностью отказалась от дальнейшей поддержки Joomla 1.5, однако даже если вы обладатель сайта на движке этой версии, вы всё равно можете скачать этот плагин для Joomla 1.5 из их архива. Мне как раз недавно пришлось это делать, чтобы решить одну простенькую задачку на подобном сайте.

После установки плагина не забудьте включить его в менеджере плагинов Джумлы (ищите System - Sourcerer), затем, чтобы вставить PHP код в любом месте статьи или модуля «HTML-код» необходимо заключить его в специальные теги:

{source}Ваш код{/source}

Дело сделано! Надеюсь, данной статьёй я побудил вас к более детальному изучению PHP, благодаря которому можно с лёгкостью создавать множество полезных вещей. Спасибо за ваше внимание, на сегодня всё. До встречи в следующих выпусках Site on!

С уважением, .
Пожалуйста, оцените эту статью
Средняя оценка: 4.45 из 5 (проголосовало: 11)
Статья оказалась вам полезной? Подпишитесь, чтобы не пропустить новые!

Ваш email:
Вы можете помочь развитию проекта, сделав всего 1 клик:
Спасибо!
Пожалуйста, прокомментируйте, как Вам моя статья?
Имя:
Комментарий:

Если Вы хотите вставить код, пожалуйста, заключайте его в [code][/code]

Подписаться на новые комментарии:

E-mail:


Защита от спама: пожалуйста, напишите слово "сел" справа налево
Ответ:
Подписаться на новые комментарии без комментирования - Email:
Защита от спама: пожалуйста, напишите слово "сел" справа налево
Ответ:

04.07.2013 15:17:43 Alex:
Спасибо за статью.
Правда возникла такая задача.
Есть баннер на джаваскприпте, то как его занести в массив?
Экранировать каждый символ надо? Но это не вариант там огромный кусок кода...
04.07.2013 16:42:48 Сергей отвечает:
Здравствуйте.
Во-первых, если вы в PHP указали значение ячейки массива в одинарных кавычках, то и в яваскрипте нужно заэкранировать все одинарные (двойные не нужно). Точно также можно делать наоборот, значение записать в двойных кавычках, и в яваскрипте экранировать только двойные, как вам удобней.

Во-вторых, заэкранировать нужные вам кавычки можно очень легко и быстро. Просто скопируйте код баннера в любой редактор, нажмите Ctrl + H и сделайте автозамену. В первой строчке указываете нужный вид кавычек, во второй строке указываете туже кавычку, только заэкранированную.

Надеюсь вы меня поняли, если что, спрашивайте.
05.07.2013 09:20:25 Alex отвечает:
да что-то я про автозамену сразу не догадался.. просто ранее всегда руками экранировал. А тут куски кода под 1200 символов каждый и копаться в них долгова-то вот и задумался...

Но автозамена всеже не удобна, на одном форуме подсказали вариант более простой - nowdoc
05.07.2013 17:29:02 Сергей отвечает:
Alex, спасибо за Ваш комментарий, не знал про nowdoc, действительно интересная вещь, но работает только для версии PHP 5.3.0 и выше.

Ответить на комментарий


02.12.2013 16:32:18 Евгений:
Приветствую. Можно в ротацию поставить адсенс и РСЯ ?
02.12.2013 22:30:03 Сергей отвечает:
Добрый вечер. Я не пробовал, так как пока не было нужды, но думаю без проблем.

Ответить на комментарий


22.09.2015 02:13:36 Денис:
Сергей, спасибо большое за статью. На Joomlma 3.4.4 полет отличный.

Ответить на комментарий


24.09.2015 16:24:45 Денис:
Вставил код в joomla 2.5 все отображается, меняется но не работает ссылки привязанная к баннерам просто отображается как картинка. что делать. и нет статистики в компоненте баннеры.
24.09.2015 19:41:44 Сергей отвечает:
Добрый день.

1) Не работает ссылка - значит Вы что-то неправильно сделали.
2) Это же чистый PHP код, с чего вдруг появится статистика в компоненте баннеры? Этот код никак не связан с Joomla, он для применения независимо от CMS.
25.09.2015 02:10:36 Денис отвечает:
спасибо за статью разобрался.
26.09.2015 18:47:37 Сергей отвечает:
Рад, что у Вас все получилось.

Ответить на комментарий

Использую для работы
Мои расширения
Свежие статьи
Рекомендую
Горячо обсуждаемые
Подписка
  • Следовать в twitter:
  • Подписаться по RSS:
  • Подписаться по E-mail:
  • Следить ВКонтакте:
  • Следить на Facebook:
Пользовательское соглашение об условиях использования сайта и Политика конфиденциальности
Перепечатывание или копирование материалов сайта (текста, изображений и другого содержимого) для их публичного или коммерческого использования в сети Интернет, либо в печатных изданиях строго запрещены. При нарушении данного правила, с нашей стороны будут предприняты соответствующие меры, вплоть до судебной жалобы.
© site-on.net
Шрифт: +стандартно-