Настройка макета
Для дальнейших действий нужны минимальные знания работы с макетами, XSL-шаблонами (далее - XSL), типовыми динамическими страницами (далее - ТДС) в HostCMS. Работу должен выполнять Ваш программист или администратор сайта.
Вывод выбора региона/города для посетителей сайта
В главном макете Вашего сайта укажите css стили/js скрипты для работы модуля (обычно в пределах тега <head></head>)
<head>
<!-- ... ваш код title и тд -->
<?php
Core_Page::instance()
/* ... тут ваши css ... */
->css('/hostcmsfiles/multiregion/css/style9999.css')
->showCss();
?>
<?php
Core_Page::instance()
/* ... тут ваши js ... */
/* все js multiregion должны быть подключены после jQuery */
->js('/hostcmsfiles/multiregion/js/mp.autocomplete.js')
->js('/hostcmsfiles/multiregion/js/script9999.js')
->showJs();
?>
</head>
Готовый пример можно увидеть в демо макете созданном после установки модуля
в css и js файлах 9999 - Ваш уникальный номер файла при установке, посмотреть можно в папке /hostcmsfiles/multiregion/*/, т.к. все файлы без уникального номера при обновлении будут заменяться на новые
В главном макете Ваше сайта, в том месте где хотите вывести выбор города/региона вставьте код (например в шапке сайта)
<?php
// Показ и выбор города
$MultiRegion_Controller_Show = new MultiRegion_Controller_Show(
Core_Entity::factory('Site', CURRENT_SITE)
);
$MultiRegion_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('Мультирегиональность'))
->show();
?>
favoriteCities — устанавливает массив идентификаторов городов фаворитов для показа
regionsMode — режим показа регионов, может принимать следующие значения:
none - не показывать регионы (по умолчанию)
all - все регионы
directory — (TRUE|FALSE) режим показа данных региона (телефоны, email, адреса), по умолчанию FALSE
Окно подтверждения города
Для появления окна подтверждения города нужно в Вашем подключённом скрипте /hostcmsfiles/multiregion/js/scriptXXXXX.js
раскомментировать следующий код
// 46 line: this.CurrentCity.data('hint') == true
if(typeof this.getCookie('city_close') == "undefined" || this.CurrentCity.data('hint') == true)
{
var _mrTooltips = $('.mr_tooltips');
_mrTooltips.fadeIn();
}
Окно подтверждения появляется только пока посетитель не подтвердит свой выбор (город хранится в куках) и если регионы не совпадают, например сайт определил посетителя из регионы 2, а он находится на странице/сайте региона 1, для типа cookie окно выбора не работает, если вы хотите его включить и для cookie то в XSL-шаблоне "Мультирегиональность" отредактируйте следующее:
<!-- текущее -->
<!--<a href="javascript:;" onclick="$.getMRModal()" class="mr_current-city" data-path="{$path}" data-hint="false">
<xsl:if test="$type != 'cookie' and current_multiregion_id and current_multiregion_id != current_shop_country_location_city_multiregion/multiregion/@id">
<xsl:attribute name="data-hint">true</xsl:attribute>
</xsl:if>
<xsl:value-of select="current_city/city"/>
</a>-->
<!-- замнеить на этот код data-hint="true" -->
<a href="javascript:;" onclick="$.getMRModal()" class="mr_current-city" data-path="{$path}" data-hint="true">
<xsl:value-of select="current_city/city"/>
</a>
Last updated