Настройка макета

Для дальнейших действий нужны минимальные знания работы с макетами, 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

*при установке XSL шаблоны идут с датой текущей установки в названии, например: Мультирегиональность [05.06.2020 13:00:24]

Окно подтверждения города

Для появления окна подтверждения города нужно в Вашем подключённом скрипте /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