Изменение компонента "Баннеры" для будущей версии 1.10.7.008

+8
878
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
На этот раз описываются изменения в компоненте "Баннеры".

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

Уже давно Андрей просил меня сделать это изменение в компонент "Баннеры". Его не устраивало, что клик по ссылке, привязываемой к баннеру "не идет в зачет" в партнерской программе.

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

Проблема в том, что старые наивные времена давно кончились. Поисковые роботы, обнаруживая у вас на сайте ссылку на партнерскую программу, тут же обрушивают ваш сайт в поисковой выдаче. Поэтому разработчики нашей системы, дабы обезопасить себя и вас от подобной конфузии, мудро сделали редирект ссылки через ядро. Но владельцы партнерских программ тоже не дураки — они предусмотрели у себя начисление копеек только в случае прямой ссылки.

Получается вообще фигня — вы и свой сайт обрушили и денег не получили! Как говорят в городе нашей красавицы Надюши (той самой, что обожает динозавров больше любого другого пользователя Инстанта): "А оно вам надо?"

Переделывая алгоритм формирования баннеров, я ставил перед собой задачу сделать настройки для трех алгоритмов:
1. Сохранить старый алгоритм редиректа через ядро.
2. Сделать прямую ссылку (хоть собственный сайт в поисковой выдаче упадет, но хоть копейка начисляться будет).
3. Скрыть ссылку от поисковых роботов.
4. Сделать совсем уже хитрый алгоритм, чтобы ссылка, оставаясь прямой, все-таки была скрыта от поисковиков.

Измененные файлы

admin\components\banners\backend.php
languages\ru\admin\components\banners.php
components\banners\frontend.php
components\banners\model.php
filters\f_banners\filter.php
templates\_default_\js\template.js
templates\_default_\template.php
includes\js\banners.js

Причем тут файл дефолтного шаблона, скажете вы? По идее, он в играх с баннерами не участвует? Так и есть — не участвует. Я сегодня утречком просто привел его в порядок. За долгие годы правок он превратился в настоящую помойку. Скрипты и там и тут, вызов стилей — откуда попало, только не из header'а. Некоторые умельцы там даже свои модули разместили (дада, модуль с музыкой там и торчал!!!). Короче, я весь мусор оттуда вымел и выбросил. Все js-скрипты из шаблона сгреб в отдельный файл templates\_default_\js\template.js.
Сделал однообразное подключение всех скриптов и стилей через метод
  1. $this->printHead();
короче, теперь у нас шаблон чист и сияет, как… ну, вы понили…

Скриншоты

Иллюстрация

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

1. Галка "Прямая ссылка" установлена. В этом случае формируется прямая ссылка. При клике по баннеру хитрая контора партнерская программа должна начислять вам копейки. Пофигу, что вы при этом свой сайт в поисковиках уроните.
2. Галка "Скрыть ссылку" установлена. В этом случае баннер и ссылка с него на страницах сайта отображаются, но в тексте страницы вы картинку баннера и ссылку не найдете. Вы же знаете, Странник — динозавр слегка сумасшедший (это чтобы не говорить странный), он иногда пишет слегка сумасшедший код. И мед у него тоже слегка сумасшедший, да. Пиво называется...
3. Обе галки "Прямая ссылка" и "Скрыть ссылку" установлены. Ну, тут пивом уже не обойдесся, надо коньяком стимулировать… Но и этот (уже без слегка) сумасшадший код ваш Станник создал.
4. Все галки сняты. В этом случае реализуется старый добрый проверенный алгоритм редиректа через ядро.


Во вторых, небольшое изменение, на которое пришлось пойти, чтобы снять путаницу. Раньше указатель баннера у нас назывался позицией. Но позиции у нас фигурируют в шаблоне. Теперь он называется, как называется — указатель.

Приятная для пользователя новинка — формирование готового к использованию выражения для фильтра-стартера баннера. На скриншоте отмечено зеленым фоном. Теперь вы можете скопировать прямо со страницы выражение в фигурных скобках и вставить его в нужное место в статье или в модуле — и вообще в любое место, где фильтры поддерживаются.

Мне кажется, я где-то писал в своем блоге, как прикрутить фильтры везде в движке, где душа пожелает. Ищите, да обрящете.

Как работает эта машинерия.

1. Сперва, как водится, следует заключить договор с партнерской программой о размещении у себя на сайте их ссылки. Ссылка состоит, как правило, из собственно ссылки и картинки. Если хитрожопые скромные партнеры вам картинку не дали — ну что ж, стащите у них их логотип. Или нарисуйте сами. Без картинки вы баннер не создадите.
2. Идете в админку, Компоненты — Баннеры. Щелкаете на зеленом плюсике, чтобы создать баннер. Вы увидите примерно такую страницу, как на скриншоте. Здесь вы даете баннеру имя, указываете его тип. В поле "Ссылка баннера" вставляете ссылку, которую вам дали партнеры.
С регулировками надо быть осторожнее. Для начала я рекомендую вообще снять все галки (чтобы использовать редирект через ядро — это самый безопасный способ). Если не устраивает — переходите ко второму способу, поставьте галку "Скрыть ссылку от индексации". Если и тут не хотят платить — попробуйте вариант со всеми установлеными галками. Если и теперь хитрая контора не хочет вам платить, требуя непременно прямой ссылки, чтобы обрушить ваш сайт в выдаче — ну, флаг вам в руки и барабан на шею — оставьте единственную галку "Прямая ссылка". Я вас предупредил.
3. Выбирайте в выпадающем списке любой, от 1 до 30 номер указателя. Это очень важная настройка, в дальнейшем будет нужна.
4. Загружайте картинку.
5. Установите максимум показов (если 0 то баннер будет показываться без передыху).
6. Ставите галку Да/Нет для публикации/не публикации данного баннера.
7. Копируете из строчки "Примечание" фильтр (например, {БАННЕР=banner_1}) — прямо с этими фигурными скобками — это важно!!!!
8. Открываете на редактирование любую статью, описание разделов — везде, где поддерживаются фильтры — и вставляете в нужное место этот фильтр ({БАННЕР=banner_1}) прямо как скопировали. Убедитесь, что фигурные скобки не забыли.
9. Все. Сохраняете статью (или что редактировали) и наслаждаетесь баннером с чужого сайта!

Как протестировать

Как водится, на этом демосайте. Если обратитесь к Андрею, он вам создаст права админа после регистрации. Заодно компонент регистрации проверите.

Прощание

Всем пока, здоровья и благополучия. Не болейте.
Ваш Странник.
+2
Андрей Андрей 1 год назад #
Ура! То, что надо было сделать изначально, теперь сделано! Привет, работающие партнерские ссылки!
+2
Андрей Андрей 1 год назад #
Вот только, может, все таки на радиокнопках?!!! Заодно и обкатать новинку из предыдущего поста в твоем блоге :)
+1
Странник Странник 1 год назад #
Ну, здесь радиокнопки вставляются без проблем - админка компонента имеет расширение *.php.
Просто Странник уперся рогами в землю и радиокнопки вставлять ни за что не хочет! smoke
+2
Андрей Андрей 1 год назад #
будем надеяться на улучшение настроенческих факторов у Странника
+1
Странник Странник 1 год назад #
Это зависит от количества выпитого пива.
После трех-четырех литров он обычно добреет....
+2
Андрей Андрей 1 год назад #
пиши адрес, куда прислать пиво
+1
Странник Странник 1 год назад #
И обрушеный в поисковой выдаче собственный сайт! facepalm
+1
Андрей Андрей 1 год назад #
и недополученный миллион на кликах по партнерским баннерам за 5 лет
(больше 5000 кликов по 2000 рублей за каждого привлеченного, при статистических расчетах 20 на 80)

а при текущих правилах поисковиков, прямая ссылка очень мало влияет на выдачу, особенно, если у тебя СМИ
0
o5Tolik o5Tolik 1 год назад #
А этот релиз то вышел?

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Добавление элемента радиокнопки в админки модулей и плагинов с расширением *.xml для версии  1.10.7.
В этой заметке рассказывается о добавлении поддержки радиокнопки, как элемента управления, в админках модулей и плагинов.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.