У Вас есть интернет-магазин с простой формой заказа или даже официальный сайт каталог сделанный на HostCMS? Этот сайт полностью отвечает вашим требованиям, но появилась задача: «Сделать сайты для филиалов компании из стран бывшего СНГ». Главное условие, сайт должен использовать действующий каталог товаров, но цена должна быть в другой валюте.
В процессе работы появляется ряд дополнительных требований:
- «Заголовок» (Title) у разделов каталога и товаров должен иметь другой вид и содержать название сайта филиала.
- «Описание» у разделов каталога должно отличаться от основного сайта.
Для создания сайта первого филиала, вам понадобиться больше времени, чем для последующих. Для решения всех поставленных задач, можно использовать разные подходы, а совершенствовать код проекта, логику и функционал администрирования можно до бесконечности. Поэтому я опишу два способа, как сделать мультидоменный интернет-магазин или сайт каталог для филиалов компании:
- Быстрый — времени мало, сроки сжатые. Всё нужно было сделать вчера.
- Правильный — времени достаточно на разработку, выявление и исправление ошибок. Нужно сделать так, чтобы нечего не отвалилось при неловких движениях администратора сайта.
Существуют ключевые операции, которые необходимо сделать в первом и втором способе. Всё приведенное ниже подходит для коммерческих редакций HostCMS, т.к. в бесплатной существует ограничение на 2 сайта. При попытке сделать большее количество на одном экземпляре у вас появится предупреждение: «Превышен лимит доступных сайтов в системе! Удалите лишние сайты из системы или приобретите полнофункциональную версию».
1. Создать дополнительный сайт
Системные функции -> Сайты -> Добавить
При создании нового сайта, появится форма «Добавление информации о сайте». Обязательное поле «Название сайта». Так же потребуется прописать кодировку и выбрать локаль, если они отличаются от значений по умолчанию UTF-8 и ru_RU.utf8. Не маловажным списком является «Часовой пояс», в нем можно выбрать город, в котором находится филиал.
На данном этапе развития этой системы управления присутствует минус – часовой пояс имеет значение континент/город, например, Europe/Moscow. Не хватает наглядного отображения, разницы времени по стандарту UTC.
1.1. Указать домен, на котором будет расположен сайт
Системные функции -> Сайты -> Домены -> Добавить
В данном этапе, пункт «Домены», подразумевает клик по иконке земного шара, напротив добавленного сайта. Вводим домен без http:// , на котором будет находиться сайт филиала. Рекомендуется перед названием сайта, поставить «*.», например *.domains.sbbo.ru
1.2. Получить ключ
Системные функции -> Сайты -> Домены -> Ключ
После того, как домен добавлен, нужно получить для него ключ.
2. Сделать копию макета
Структура сайта -> Макеты сайта -> Копировать
Это потребуется для того, чтобы оперативно менять дизайн и в определенных местах выводить другую контактную информацию. Для того, чтобы макет был доступен на другом сайте, заходим в его редактирование и в параметрах меняем значение списка «Сайт», на нужный.
2.1. Сделать копию шаблонов
Структура сайта -> Шаблоны страниц -> Копировать
После копирования, меняем параметр шаблона «Сайт», по аналогии с пунктом 2.
2.2. Сделать копию XSL шаблонов
Структура сайта -> XSL-шаблоны -> Интернет-магазин
Рекомендую не просто скопировать XSL-шаблоны, которые задействованы в сайте-каталоге, а создать отдельную папку в разделе «Интернет магазин» с названием домена. Переместить в неё скопированные шаблоны, и отредактировать таким образом, чтобы в конце названия шаблона присутствовала доменная зона. Если адрес сайта филиала отличается не только доменной зоной, RU, BY, COM.UA, KZ и т.д. но и названием, пропишите в конце шаблона и название. Это позволит избежать путаницы в дальнейшем и увеличит скорость внесения изменений на сайте.
Базовые XSL-шаблоны, которые нам потребуются:
- МагазинКаталогТоваровНаГлавной
- МагазинТовар
- МагазинКаталогТоваров
3. Внести изменения в настройки типовой динамической страницы
Без этих изменений вы не сможете использовать интернет-магазин в структуре сайта на других доменах. И в процессе решения поставленной задачи, появятся вопросы:
- Создал сайта, а в структуре каталога нет нужного интернет-магазина, что делать?
- Что сделать, чтобы интернет-магазин стал доступным для выбора?
- Не получается использовать готовый интернет магазин HostCMS с другого домена
Структура сайта -> Типовые динамические страницы -> Интернет-магазин
Рекомендую предварительно скопировать типовую динамическую страницу, чтобы исходный код, был всегда под рукой. В списке типовых динамических страниц напротив «Интернет магазин» есть значок «Параметры». Нажимаем на него, и переходим в их редактирование.
Нам нужен параметр «Идентификатор магазина».
название переменной: shop_id
тип : SQL-запрос
поле заголовка: shop_shops_name
поле значения: shop_shops_id
По умолчанию SQL-запрос имеет вид:
SELECT * FROM `shop_shops_table` WHERE `site_id` = '{SITE_ID}' ORDER BY `shop_shops_name`;
меняем этот запрос, на
SELECT * FROM `shop_shops_table` ORDER BY `shop_shops_name`;
4. Добавить курсы валют.
Интернет-магазин -> Финансы -> Валюты
По умолчанию в системе три валюты, одна из которых является базовой, а по отношению к ней устанавливаются курсы других валют.
Предустановленная валюта формата (Название — Международное):
руб. — RUR
€ — EUR
$ — USD
Добавляем ещё три:
грн. — UAH
тенге — KZT
Br — BYR
Курсы валют в HostCMS можно менять вручную, но при необходимости можно настроить автоматическую загрузку через cron (crontab).
На этом базовые изменения для создания заканчиваются. Продолжение следует.
Если у Вас появились вопросы или проблемы в процессе решение задачи, пишите сюда. Постараюсь проконсультировать, по коду системы управления и общими усилиями исправим возникшие ошибки.
Каким образом можно настроить динамичный вывод комментариев?
Это как-то связано с ТДС.
Что именно вы подразумеваете под динамичным выводом комментариев? Вывод их по мере прокрутки страницы через Ajax?
В силу того, что на подходе релиз HostCMS 6, где не задействован Zend Optimizer, используется новое API и изменены параметры для XML/XSL — публикация информации относительно 5-ой версии является не целесообразной.