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

{% hint style="danger" %}
Для дальнейших действий нужны минимальные знания работы с **макетами**, **XSL-шаблонами (далее - XSL)**, **типовыми динамическими страницами (далее - ТДС)** в HostCMS. Работу должен выполнять Ваш программист или администратор сайта.
{% endhint %}

### Вывод выбора региона/города для посетителей сайта

В главном макете Вашего сайта укажите css стили/js скрипты для работы модуля (обычно в пределах тега \<head>\</head>)

{% tabs %}
{% tab title="php Core\_Page" %}
{% code lineNumbers="true" fullWidth="true" %}

```php
<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>
```

{% endcode %}
{% endtab %}

{% tab title="html inline" %}
{% code fullWidth="true" %}

```php
<?php
	// GeoIP определяет текущий город и сохраняет в $_SESSION['ASMP_City']
	MultiRegion_GeoIp::getCountryLocationCity();
?>
<head>
	<!-- тут ваш код, css и js -->
	<link rel="stylesheet" type="text/css" href="/hostcmsfiles/multiregion/css/style9999.css" />
	
	<!-- все js multiregion должны быть подключены после jQuery -->
	<!--
		* !!!Раскомментировать один из двух скриптов подсказок городов
		* jquery-ui.min.js (с Widget Autocomplete) или jquery.autocomplete.min.js, 
		* если не один из них не был подключен ранее.
		* Рекомендуем jquery.autocomplete.min.js!
	-->
	<!--script src="/hostcmsfiles/multiregion/js/jquery-ui.min.js"></script-->
	<!--script src="/hostcmsfiles/multiregion/js/jquery.autocomplete.min.js"></script-->
	<script src="/hostcmsfiles/multiregion/js/script9999.js"></script>
</head>
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% hint style="danger" %}
**Готовый пример можно увидеть в демо макете созданном после установки модуля**

в css и js файлах **9999** - Ваш уникальный номер файла при установке, посмотреть можно в папке **/hostcmsfiles/multiregion/\*/**, т.к. все файлы без уникального номера при обновлении будут заменяться на новые
{% endhint %}

В главном макете Ваше сайта, в том месте где хотите вывести выбор города/региона вставьте код (например в шапке сайта)

{% code lineNumbers="true" fullWidth="true" %}

```php
<?php
// Показ и выбор города
$MultiRegion_Controller_Show = new MultiRegion_Controller_Show(
	Core_Entity::factory('Site', CURRENT_SITE)
);
				
$MultiRegion_Controller_Show
	->xsl(Core_Entity::factory('Xsl')->getByName('Мультирегиональность'))
	->show();
?>
```

{% endcode %}

* ***favoriteCities** — устанавливает массив идентификаторов городов фаворитов для показа*
* ***regionsMode** — режим показа регионов, может принимать следующие значения:*&#x20;
  * *none - не показывать регионы (по умолчанию)*
  * *all - все регионы*
* ***directory** — (TRUE|FALSE) режим показа данных региона (телефоны, email, адреса), по умолчанию FALSE*

{% hint style="info" %}
\*при установке XSL шаблоны идут с датой текущей установки в названии, например: **Мультирегиональность \[05.06.2020 13:00:24]**
{% endhint %}

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

Для появления окна подтверждения города нужно в Вашем подключённом скрипте `/hostcmsfiles/multiregion/js/scriptXXXXX.js` раскомментировать следующий код

<pre class="language-javascript" data-line-numbers data-full-width="true"><code class="lang-javascript"><strong>// 46 line: this.CurrentCity.data('hint') == true
</strong><strong>if(typeof this.getCookie('city_close') == "undefined" || this.CurrentCity.data('hint') == true)
</strong>{
	var _mrTooltips = $('.mr_tooltips');

	_mrTooltips.fadeIn();
}
</code></pre>

Окно подтверждения появляется только пока посетитель не подтвердит свой выбор (город хранится в куках) и если регионы не совпадают, например сайт определил посетителя из регионы 2, а он находится на странице/сайте региона 1, для типа cookie окно выбора не работает, если вы хотите его включить и для cookie то в **XSL-шаблоне** **"Мультирегиональность"** отредактируйте следующее:

{% code fullWidth="true" %}

```html
<!-- текущее -->
<!--<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>
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.morozovpimnev.ru/multiregion/nastroika-maketa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
