В начале сотрудничества студий с изготовителями шаблонов и готовых сборок, всегда возникает техническая заковырка - как быстро поднять личный демо сайт студии или воспользоваться демками изготовителя, но притом каким-то образом обрезать там все ссылки на сайт изготовителя. Чтобы клиент студии всегда оставался на студийной "территории", а сайт изготовителя не обратился бы невольно в конкурента. Опишем несколько путей решения обозначенной трудности.
Физическая копия демо сайта
Это когда мы заводим свой сервер, устанавливаем на него движок, и один за другим устанавливаем демонстрационные шаблоны и сборки. Скажем так, процесс длительный, утомительный в силу концентрации внимания на исправлении демо баз и макетов страничек под себя.
Но при таком подходе мы точно уверены, наш демо сайт будет содержать только те ссылки. Из недостатков следует отметить необходимость ручной синхронизации обновлений.
Демо сайт на фрейме
Это когда мы показываем демо сайт через незаметное "окошко" на своей страничке. Будто накрыли чужой сайт своим фантиком, и всё выглядит так, словно это на нашем сайте находится столько демок. При данном подходе собственный демо сайт запускается хоть за минуту, отсутствует проблема синхронизации обновлений. А недостаток в том, что если визитёр откроет внутрифреймовую ссылку в новом окне, реальный сайт выскочит из-под нашей обёртки.
Тем не менее, такой способ используется в знаменитых супермаркетах шаблонов, поэтому опишем его подробнее и дадим простейшую реализацию.
Назначение
- Для частных вебмастеров или студий, кто хотел бы продавать со своего сайта имперские шаблоны и сборки без нужды поднимать у себя копию демо сайта, а просто обернуть его своим фреймом с возможностью порезать посторонние ссылки.
- О принципах порезки поговорим ниже, а сначала...
Как использовать
- Качаете этот файл из раздела наших примеров и размещаете на своём сайте, например по адресу http://ваш.сайт/demo.html
- Когда в какой-то момент вы сделали и разместили у себя на сайте продажную страницу очередного товара, допустим это будет некая сборка AutoDrive, то демо ссылкой станет адрес с хешем ИмяСборки, например http://ваш.сайт/demo.html#AutoDrive
Смотрите вот этот живой пример.
Как скачать
- Когда будете смотреть живой пример, нажмите прямо в его шапке, а ещё лучше на корневой странице того примера, правую кнопку мыши, из выпавшего меню выберите Сохранить как... и далее тип Веб-страница полностью
- О настройке под себя скажем ниже, а сейчас...
Принцип порезки
- Когда клиент щёлкнул по вашей демо ссылке, во фрейм грузится соответствующий демо сайт, а затем вызывается функция fixDemo в том файле.
- Сейчас эта функция пустая, то есть ничего не делает.
- Впишите туда свой алгоритм: что хотите поменять "на лету" в странице загрузившегося демо фрейма. Например пробежать по DOM-дереву документа и заглушить все ссылки с атрибутом href, равным абсолютной ссылке вне текущего демо сайта.
Пример алгоритма
- Предположим, мы хотим найти все ссылки, начинающиеся с http://, и если какая-то не равна валидному адресу, заменить ссылкой на ваш лендинг.
- Под переменной frameDoc ниже понимаем указатель на документ загрузившегося фрейма.
var pattern = 'a[href^="http://]', valid = 'http://demo.imperacms.com/', landing = 'http://ваш.сайт/hello', url, i; var items = frameDoc.querySelectorAll(pattern); for (i = 0; i < items.length; i++) { url = items[i].getAttribute('href'); if (url.indexOf(valid) !== 0) { items[i].setAttribute('href', landing); } }
Когда не сработает порезка
- Политика безопасности браузера запрещает доступ к контенту фрейма из несовпадающего или недоверенного домена.
- Поэтому пока мы не внесём домен вашего сайта в CROSS DOMAIN POLICY официального демо сайта, браузер будет блокировать любые ваши алгоритмы манипуляции frameDoc.
Настройка файла под себя
-
Когда вы скачали выше упомянутый файл, следует заменить в нём демо-тексты. Перечислим их расположение в файле сверху вниз:
- Тег <title> - здесь напишите дефолтный заголовок вашего демо сайта.
- Контент тега <header> - исправьте логотип, телефон, адрес ссылки "другие".
- Функция gotoBuy - впишите посадочный URL товарных страниц на вашем сайте, удалите строку-заглушку return alert(...).
- Функция fixDemo - напишите свой алгоритм порезки контента загрузившегося демо.
- Тег <section> - этот текст, который сейчас читаете, удалите этот тег вообще или перепишите его контент.
- Тег <footer> - удалите вообще или исправьте его контент на свой.
Надеемся вам тоже понравится такой способ постановки демо сайта, и предложенный выше файлик с простенькой реализацией окажется полезным началом большого сотрудничества. Ведь Импера заметна в среде веб-разработок не только производством новых методик, а также высоким качеством изготовляемых собственно или курируемых ею изделий других изготовителей, но и очень выгодными партнёрскими предложениями.