# =========================================================================== #
# NG CMS // Плагины // Отображение рекламы на сайте                           #
# =========================================================================== #

Плагин позволяет отделить дизайн сайта от рекламных блоков, вставляемых на сайте.
Тем самым, решается одновременно несколько задач:

1. Отсутствует необходимость менять основной шаблон main.tpl в случае изменения
   рекламного кода.
2. Возможность гибкого управления рекламными блоками (включать/выключать блок;
   задавать типы страниц на которых данный блок будет отображаться).
3. Поддержка "отложенной загрузки" рекламных блоков, тормозящих загрузку сайта.


Механизм "отложенной загрузки"
=================================================================
Рекламные блоки (как и блоки различных счетчиков) можно условно разделить на
две большие группы (по методу вставки их кода):
1. Вставка фиксированного текста+JS кода+картинок
2. Вставка ссылки на внешний исполняемый код JavaScript


 В тот момент, когда браузер обнаруживает ссылку на внешний JS код, он временно
приостанавливает загрузку/отображение страницы и начиает загружать данный код.
Только после полного окончания загрузки браузер продолжает свою работу.

 С одной стороны это поведение вроде бы не доставляет никаких проблем.
Но давайте посмотрим на практике - не все счетчики/рекламные брокеры в состоянии
позволить себе использовать быстродействующие серверные фермы, и, к сожалению,
очень часто возникает ситуация, что JS код, содержащий рекламу, загружается в
течении 2-3 секунд.
 Что это означает на практике? Для рекламы, которую часто размещают в самом
начале страницы, это означает одно - до тех пор, пока реклама не загрузится (те
самые 2-3 секунды) у пользователя на экране будет пустой экран.
 Плохо? Нет, это ужасно.
 Исследования показывают, что пользователей раздражают страницы, открывающиеся
дольше 2-4 секунд. И размещая "медленную" JS рекламу вы рискуете начать терять аудиторию.


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

1. В место, где вы вставляете тег {adsX} вставляется специальный HTML код-маркер
   (обычно это блок div, но вы можете его изменить) не содержащий внутри себя
   никакой информации.
2. В самый конец основного шаблона сайта main.tpl (обычно сразу перед [/sitelock]) вы 
   вставляете переменную {plugin_ads_defer}. На место этой переменной плагин добавит
   специальный код, который будет:
   1. Загружать внешний JS код
   2. Перемещать результат исполнения этого кода на место кода-маркера.


Таким образом, "медленная" реклама будет появляться уже после фактического отображения
страниц и задержка в её загрузке не будет раздражать посетителей.


Поддерживаемые переменные
=============================================================
{ads1}, {ads2},.. {adsX} - рекламные блоки.
                           Их количество и содержимое задаётся в конфигураторе
{plugin_ads_defer}       - блок, необходимый для работы механизма "отложенной загрузки"
{plugin_ads_rand}        - случайное значение, используемое для отмены кеширования
                           рекламных JS кодов
