Инструкция по первичной настройке Nemo CMS: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Создание макетов страниц)
(Создание шаблонов)
 
(не показана 1 промежуточная версия этого же участника)
Строка 5: Строка 5:
 
'''1)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создаем шаблон блока:  
 
'''1)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создаем шаблон блока:  
 
Нажмите кнопку “Создать шаблон”.
 
Нажмите кнопку “Создать шаблон”.
В поле “Файл шаблона” укажите block.generic.tpl
+
* В поле “Файл шаблона” укажите block.generic.tpl
В поле “Заголовок шаблона” введите “Шаблон блока”.
+
* В поле “Заголовок шаблона” введите “Шаблон блока”.
В поле “Шаблон” вставьте код шаблона
+
* В поле “Шаблон” вставьте код шаблона
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
'''код шаблона блока'''
 
'''код шаблона блока'''
Строка 18: Строка 18:
  
 
'''2)''' В разделе "Управление сайтом - Nemo CMS - Блоки элементов" создайте 3 блока: блок шапки, блок контента и блок подвала.
 
'''2)''' В разделе "Управление сайтом - Nemo CMS - Блоки элементов" создайте 3 блока: блок шапки, блок контента и блок подвала.
Для этого нажмите “Создать блок элементов страницы”.  
+
* Для этого нажмите “Создать блок элементов страницы”.  
Введите заголовок.
+
* Введите заголовок.
В списке “Шаблон” выберите ранее созданный нами шаблон блока.  
+
* В списке “Шаблон” выберите ранее созданный нами шаблон блока.  
Активируйте параметр “Включено”.
+
* Активируйте параметр “Включено”.
Нажмите кнопку “Сохранить”.
+
* Нажмите кнопку “Сохранить”.
 
Аналогично создаем блоки контента и подвала.
 
Аналогично создаем блоки контента и подвала.
  
 
'''3)''' Перейдите в раздел "Управление сайтом - Nemo CMS - Шаблоны".
 
'''3)''' Перейдите в раздел "Управление сайтом - Nemo CMS - Шаблоны".
В поле “Файл шаблона” укажите значение page.generic.tpl  
+
* В поле “Файл шаблона” укажите значение page.generic.tpl  
В поле “Заголовок шаблона” введите “Шаблон страницы”.
+
* В поле “Заголовок шаблона” введите “Шаблон страницы”.
В поле шаблон вставьте код шаблона страницы, приведенный ниже
+
* В поле шаблон вставьте код шаблона страницы, приведенный ниже
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
'''код шаблона страницы'''
 
'''код шаблона страницы'''
Строка 105: Строка 105:
  
 
В них значения элемента cms_render_block по умолчанию (1, 2 и 3) нужно заменить на соответствующие идентификаторы блоков, которые вы создали в шаге 2 в разделе “Управление сайтом - Nemo CMS - Блоки элементов”.
 
В них значения элемента cms_render_block по умолчанию (1, 2 и 3) нужно заменить на соответствующие идентификаторы блоков, которые вы создали в шаге 2 в разделе “Управление сайтом - Nemo CMS - Блоки элементов”.
Блок с идентификатором 1 соответствует блоку шапки. Замените значение 1 на идентификатор блока шапки.
+
* Блок с идентификатором 1 соответствует блоку шапки. Замените значение 1 на идентификатор блока шапки.
Блок с идентификатором 2 соответствует блоку контента. Замените значение 2 на идентификатор блока контента.
+
* Блок с идентификатором 2 соответствует блоку контента. Замените значение 2 на идентификатор блока контента.
Блок с идентификатором 3 соответствует блоку подвала. Замените значение 3 на идентификатор блока подвала.
+
* Блок с идентификатором 3 соответствует блоку подвала. Замените значение 3 на идентификатор блока подвала.
  
 
{{Attention|В Nemo CMS используется компилирующий обработчик шаблонов Smarty. Пример smarty-тэга вы можете увидеть ниже. Не вносите изменения в структуру smarty-тэгов без крайней необходимости, поскольку это может повлиять на корректность отображения элементов страниц вашего сайта (или страниц в целом).}}
 
{{Attention|В Nemo CMS используется компилирующий обработчик шаблонов Smarty. Пример smarty-тэга вы можете увидеть ниже. Не вносите изменения в структуру smarty-тэгов без крайней необходимости, поскольку это может повлиять на корректность отображения элементов страниц вашего сайта (или страниц в целом).}}
Строка 114: Строка 114:
  
 
'''4)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон шапки.
 
'''4)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон шапки.
В поле “Файл шаблона” укажите значение module.textsystem.single.header.tpl  
+
* В поле “Файл шаблона” укажите значение module.textsystem.single.header.tpl  
В поле “Заголовок шаблона” введите “Шаблон шапки”.
+
* В поле “Заголовок шаблона” введите “Шаблон шапки”.
В поле шаблон добавьте код шаблона шапки, указанный ниже:
+
* В поле шаблон добавьте код шаблона шапки, указанный ниже:
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
  
Строка 470: Строка 470:
  
 
'''5)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон подвала.
 
'''5)''' В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон подвала.
В поле “Файл шаблона” укажите значение module.textsystem.single.footer.tpl  
+
* В поле “Файл шаблона” укажите значение module.textsystem.single.footer.tpl  
В поле “Заголовок шаблона” введите “Шаблон подвала”.
+
* В поле “Заголовок шаблона” введите “Шаблон подвала”.
В поле шаблон внесите код шаблона подвала, указанный ниже:
+
* В поле шаблон внесите код шаблона подвала, указанный ниже:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="margin-bottom:10px;">
Строка 570: Строка 570:
 
==Установка соответствия между макетами страниц и страницами системы==
 
==Установка соответствия между макетами страниц и страницами системы==
 
Зададим соответствие между страницами системы и макетами, которые должны быть использованы для этих страниц.  
 
Зададим соответствие между страницами системы и макетами, которые должны быть использованы для этих страниц.  
Для этого перейдите в раздел "Управление сайтом - Nemo CMS - Настройки сайта" и выберите созданный нами ранее макет в соответствующих пунктах (в зависимости от того, какой компонент или компоненты системы Nemo.travel вы используете).  
+
Для этого перейдите в раздел "Управление сайтом - Nemo CMS - Настройки сайта" и выберите созданный нами ранее макет в соответствующих пунктах (в зависимости от того, какой компонент или компоненты системы {{NameSystem}} вы используете).
  
 
==Добавление дополнительных CSS и Javascript==
 
==Добавление дополнительных CSS и Javascript==
 
В разделе "Управление сайтом - Настройка внешнего вида" вы можете добавить дополнительный код в <nowiki><head></nowiki>, CSS стили и код Javascript.
 
В разделе "Управление сайтом - Настройка внешнего вида" вы можете добавить дополнительный код в <nowiki><head></nowiki>, CSS стили и код Javascript.

Текущая версия на 17:31, 28 апреля 2020

Первичная настройка Nemo CMS, необходима для того, чтобы начать работу по стилизации вашего агентства.

Все шаги по первичной настройке Nemo CMS указаны ниже.

Создание шаблонов

1) В разделе "Управление сайтом - Nemo CMS - Шаблоны" создаем шаблон блока: Нажмите кнопку “Создать шаблон”.

  • В поле “Файл шаблона” укажите block.generic.tpl
  • В поле “Заголовок шаблона” введите “Шаблон блока”.
  • В поле “Шаблон” вставьте код шаблона

код шаблона блока

{foreach from=$elements item=element}{cms_render_element id=$element.id}{/foreach}

2) В разделе "Управление сайтом - Nemo CMS - Блоки элементов" создайте 3 блока: блок шапки, блок контента и блок подвала.

  • Для этого нажмите “Создать блок элементов страницы”.
  • Введите заголовок.
  • В списке “Шаблон” выберите ранее созданный нами шаблон блока.
  • Активируйте параметр “Включено”.
  • Нажмите кнопку “Сохранить”.

Аналогично создаем блоки контента и подвала.

3) Перейдите в раздел "Управление сайтом - Nemo CMS - Шаблоны".

  • В поле “Файл шаблона” укажите значение page.generic.tpl
  • В поле “Заголовок шаблона” введите “Шаблон страницы”.
  • В поле шаблон вставьте код шаблона страницы, приведенный ниже

код шаблона страницы

{foreach from=$global item=item key=key}{assign var=$key value=$item}{/foreach}
{if $go == 'search/index' || $go == 'search/view_results' || $isNewHotels}
	<div class="nemo-common-pageWrapper">
		{cms_render_block id=1}
		{cms_render_block id=2}
	</div>
	{cms_render_block id=3}
	<div class="nemo-global-loader js-global-loader"></div>
{elseif $go == 'exare_exchange/search_form'}
    <div class="nemo-common-pageWrapper">
		{cms_render_block id=2}
	</div>
{else}
	<div class="{if $go != "poffice/table" && 
	$go != "poffice/train_table" &&
	$go != 'poffice/exare_table' && 
	$go != "pomessage/inbox" && 
	$go != 'pomessage/create' && 
	$go != 'pomessage/fromtpl' && 
	$go != 'pomessage/index' && 
	$go != 'pomessage/reply' && 
	$go != 'pomessage/search' &&
	$go != 'pomessage/show' &&
	$go != 'pomessage/sent' &&
	$go != 'pomessage/from_orders' &&
	$go != 'pomessage/agency_messages' &&
	$go != "poffice/my_passengers" &&
	$go != 'poclaim/list' &&
	$go != 'poclaim/create' &&
	$go != "poclaim/show" &&
	$go != 'poffice/finances' &&
	$go != 'poffice/finance_documents' &&
	$go != 'poffice/finances_log' && 
	$go != "base/user_settings" &&
	$go != "base/mini_agency_settings"}pro-wrapper js-pageWrapper pro-wrapper_wide{else} nemo-common-pageWrapper nemo-common-po{/if}{if $booking && $booking->getType() == 'TRAINS' || $current_component == 'TRAINS'} nemo-trains-wrapper{/if}">
		{cms_render_block id=1}
		{if $go != "poffice/bookinfo" && 
		$go != "poffice/table" && 
		$go != "poffice/train_table" &&
		$go != "poffice/exare_table" && 
		$go != 'pomessage/inbox' && 
		$go != 'pomessage/create' && 
		$go != 'pomessage/fromtpl' && 
		$go != 'pomessage/index' && 
		$go != 'pomessage/reply' && 
		$go != 'pomessage/search' &&
		$go != 'pomessage/show' &&
		$go != 'pomessage/sent' &&
		$go != 'pomessage/from_orders' &&
		$go != 'pomessage/agency_messages' &&
		$go != "poffice/my_passengers" && 
		$go != 'poclaim/list' &&
		$go != 'poclaim/create' &&
		$go != "poclaim/show" &&
		$go != 'poffice/finances' && 
		$go != 'poffice/finance_documents' &&
		$go != 'poffice/finances_log' && 
		$go != "base/user_settings" && 
		$go != "base/mini_agency_settings"}
			{assign var=needWrapper value=true}
		{/if}
		{if $needWrapper}<div class="{if $booking && $booking->getType() == 'TRAINS' || $current_component == 'TRAINS'}nemo-common-pageWrapper nemo-trains{else}pro-wrapper{/if}">{/if}
			{cms_render_block id=2}
		{if $needWrapper}</div>{/if}
	</div>
	{cms_render_block id=3}
{/if}

В них значения элемента cms_render_block по умолчанию (1, 2 и 3) нужно заменить на соответствующие идентификаторы блоков, которые вы создали в шаге 2 в разделе “Управление сайтом - Nemo CMS - Блоки элементов”.

  • Блок с идентификатором 1 соответствует блоку шапки. Замените значение 1 на идентификатор блока шапки.
  • Блок с идентификатором 2 соответствует блоку контента. Замените значение 2 на идентификатор блока контента.
  • Блок с идентификатором 3 соответствует блоку подвала. Замените значение 3 на идентификатор блока подвала.

Внимание! В Nemo CMS используется компилирующий обработчик шаблонов Smarty. Пример smarty-тэга вы можете увидеть ниже. Не вносите изменения в структуру smarty-тэгов без крайней необходимости, поскольку это может повлиять на корректность отображения элементов страниц вашего сайта (или страниц в целом).

{foreach from=$global item=item key=key}...{/foreach}

4) В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон шапки.

  • В поле “Файл шаблона” укажите значение module.textsystem.single.header.tpl
  • В поле “Заголовок шаблона” введите “Шаблон шапки”.
  • В поле шаблон добавьте код шаблона шапки, указанный ниже:

код шаблона шапки

{foreach from=$global item=item key=key}{assign var=$key value=$item}{/foreach}
{* Loading registration forms *}
{registrationForms}
{getCurrencyConverterData}

<div class="nemo-common-mobileControl nemo-common-mobileControl_links js-nemo-mobileControl js-nemo-mobileControl_links">
	<div class="nemo-common-mobileControl__pseudoHeader">
		<div class="nemo-common-mobileControl__pseudoHeader__close js-nemo-mobileControl__close"></div>
		<div class="nemo-common-mobileControl__pseudoHeader__options js-nemo-mobileControl__toOptions"></div>
		<div class="nemo-common-mobileControl__pseudoHeader__title js-nemo-mobileControl__title"></div>
	</div>
	<div class="nemo-ui-subContainer nemo-common-mobileControl__sideblock">
		<div class="nemo-common-mobileControl__sideblock__user">
			{if $info_user_status == 'gst'}
				<button class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button js-header-auth_adaptive">
					{'new-header-enter'|language}
				</button>

				{if isset($registrationFormsData.b2c) && !$is_sirena_rail}
					<button class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button js-header-register_adaptive">
						{'new-header-registration'|language}
					</button>
				{/if}
			{else}
				<div class="nemo-common-mobileControl__sideblock__user__name">
					{$info_name} {$info_surname} {$info_login}

					{if $info_user_status !== 'usr'}
						({$info_user_status|language})
					{/if}
				</div>
				{strip}
				{if !$hide_poffice}
					<a class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button" href="/{url controller="poffice" action="table"}">{'new-header-privateOffice'|language}</a>
				{/if}
				<a class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button" href="/{url controller="settings" action="dashboard"}" target="_blank">{'new-header-settings'|language}</a>
				<a class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button" href="/{go_and_back controller='authorization' action='logout'}">{'new-header-logout'|language}</a>
				{/strip}
			{/if}

			{if $show_booking_status_check && !$is_sirena_rail}
				<a href="/{url controller='booking' action='status'}" class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__sideblock__user__button js-header-checkOrder_adaptive">
					{'new-header-checkBookStatus'|language}
				</a>
			{/if}
		</div>

		{if in_array('FLIGHTS', $enabled_components)}
			{if $current_component != 'FLIGHTS'}
				<a class="nemo-common-mobileControl__sideblock__componentLink" href="/">
					{'header.components_menu--flights'|language}
				</a>
			{else}
				<span class="nemo-common-mobileControl__sideblock__componentLink nemo-common-mobileControl__sideblock__componentLink_active">{'header.components_menu--flights'|language}</span>
			{/if}
		{/if}
		{if in_array('HOTELS', $enabled_components)}
			{if $current_component != 'HOTELS'}
				<a class="nemo-common-mobileControl__sideblock__componentLink" href="/hotels">
					{'header.components_menu--hotels'|language}
				</a>
			{else}
				<span class="nemo-common-mobileControl__sideblock__componentLink nemo-common-mobileControl__sideblock__componentLink_active">{'header.components_menu--hotels'|language}</span>
			{/if}
		{/if}
		{if in_array('TRAINS', $enabled_components)}
			{if $current_component != 'TRAINS'}
				<a class="nemo-common-mobileControl__sideblock__componentLink" href="/trains">
					{'header.components_menu--trains'|language}
				</a>
			{else}
				<span class="nemo-common-mobileControl__sideblock__componentLink nemo-common-mobileControl__sideblock__componentLink_active">{'header.components_menu--trains'|language}</span>
			{/if}
		{/if}
	</div>
</div>
<div class="nemo-common-mobileControl nemo-common-mobileControl_options js-nemo-mobileControl js-nemo-mobileControl_options">
	<div class="nemo-common-mobileControl__optionsInner">
		<div class="nemo-common-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock_selector">
			{assign var=locale_up value=$locale|upper}
			<div class="nemo-ui-subContainer nemo-common-mobileControl__optionsBlock__options">
				<div class="nemo-common-mobileControl__optionsBlock__option" data-block="userInfo">
					<span class="nemo-common-mobileControl__optionsBlock__option__value">
						{strip}
							<a href="/profile">
								{if $info_name}
									{$info_name}
								{elseif $info_surname}
									{$info_surname}
								{else}
									{$info_login}
								{/if}
							</a>
						{/strip}
						{if $info_user_status !== 'usr'}
							({$info_user_status|language})
						{/if}
					</span>
				</div>
				<div class="nemo-common-mobileControl__optionsBlock__option js-nemo-mobileControl__optionsBlock__selector" data-block="language">
					<span class="nemo-common-mobileControl__optionsBlock__option__additional">{'new-header-mobileOptions__change'|language}</span>
					<span class="nemo-common-mobileControl__optionsBlock__option__value">
						{'lang_'|cat:$locale_up|language}
					</span>
				</div>
				<div class="nemo-common-mobileControl__optionsBlock__option js-nemo-mobileControl__optionsBlock__selector" data-block="currency">
					<span class="nemo-common-mobileControl__optionsBlock__option__additional">{'new-header-mobileOptions__change'|language}</span>
					<span class="nemo-common-mobileControl__optionsBlock__option__value js-nemo-mobileControl__currency__selected">{'currency_'|cat:$currencyConverter.defaultCurrency|language}</span>
				</div>
			</div>
			<div class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__optionsBlock__cancel js-nemo-mobileControl__close">{'new-header-mobileOptions__close'|language}</div>
		</div>

		<div class="nemo-common-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock_language" style="display: none;">
			<div class="nemo-ui-subContainer nemo-common-mobileControl__optionsBlock__options">
				{foreach item=lang from=$agency_langs key=lang_code}
					{if $locale != $lang_code}
						<div class="nemo-common-mobileControl__optionsBlock__option js-nemo-header-dropmenu__drop__language" data-language="{$lang_code}">
							{$lang}
						</div>
					{/if}
				{/foreach}
			</div>
			<div class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__optionsBlock__cancel js-nemo-mobileControl__optionsBlock__selector" data-block="selector">{'new-header-mobileOptions__cancel'|language}</div>
		</div>

		<div class="nemo-common-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock js-nemo-mobileControl__optionsBlock_currency" style="display: none;">
			<div class="nemo-ui-subContainer nemo-common-mobileControl__optionsBlock__options">
				{foreach from=$currencyConverter.rates item=oneCur key=key}
					<div class="nemo-common-mobileControl__optionsBlock__option js-nemo-mobileControl__currency__option" data-currency="{$key}">
						{'currency_'|cat:$key|language}
					</div>
				{/foreach}
			</div>
			<div class="nemo-ui-button nemo-ui-button_common nemo-common-mobileControl__optionsBlock__cancel js-nemo-mobileControl__optionsBlock__selector" data-block="selector">{'new-header-mobileOptions__cancel'|language}</div>
		</div>
	</div>
</div>
<header class="nemo-common-pageHeader">
	<div class="nemo-common-pageHeader__inner">
		<div class="nemo-common-pageHeader__mobileControl nemo-common-pageHeader__mobileControl_links js-nemo-mobileControl__toggler" data-control="links"></div>

		<div class="nemo-common-pageHeader__mobileControl nemo-common-pageHeader__mobileControl_options js-nemo-mobileControl__toggler" data-control="options"></div>

		<a href="/" class="nemo-common-pageHeader__logo">
			<img class="nemo-common-pageHeader__logo__image" src="/templates/wurst/f2.0/img/nemo.travel.svg" alt="">
		</a>

		<div class="nemo-common-pageHeader__inner__headerLinks">
			{if $test_mode}
				{'system_test_mode'|language}
			{/if}
			{strip}
				<div class="nemo-common-pageHeader__inner__headerRight__componentsLinks">
					{if in_array('FLIGHTS', $enabled_components)}
						{if $current_component != 'FLIGHTS'}
							<a href="/" class="nemo-ui-link nemo-common-pageHeader__inner__headerRight__componentsLinks__avia">
								{'header.components_menu--flights'|language}
							</a>
						{else}
							<span class="nemo-common-pageHeader__inner__headerRight__componentsLinks__avia nemo-common-pageHeader__inner__headerRight__componentsLinks_active">
								{'header.components_menu--flights'|language}
							</span>
						{/if}
					{/if}
					{if in_array('HOTELS', $enabled_components)}
						{if $current_component != 'HOTELS'}
							<a href="/hotels" class="nemo-ui-link nemo-ui-link nemo-common-pageHeader__inner__headerRight__componentsLinks__hotels">
								{'header.components_menu--hotels'|language}
							</a>
						{else}
							<span class="nemo-common-pageHeader__inner__headerRight__componentsLinks__hotels nemo-common-pageHeader__inner__headerRight__componentsLinks_active">
								{'header.components_menu--hotels'|language}
							</span>
						{/if}
					{/if}
					{if in_array('TRAINS', $enabled_components)}
						{if $current_component != 'TRAINS'}
							<a href="/trains" class="nemo-ui-link nemo-common-pageHeader__inner__headerRight__componentsLinks__trains">
								{'header.components_menu--trains'|language}
							</a>
						{else}
							<span class="nemo-common-pageHeader__inner__headerRight__componentsLinks__trains nemo-common-pageHeader__inner__headerRight__componentsLinks_active">
								{'header.components_menu--trains'|language}
							</span>
						{/if}
					{/if}
				</div>
			{/strip}
		</div>

		<div class="nemo-common-pageHeader__inner__headerRight">

			{if $info_user_status == 'gst'}

				{if $show_booking_status_check && !$is_sirena_rail}
					<a href="/{url controller='booking' action='status'}" class="nemo-ui-pseudoLink nemo-common-pageHeader__checkBook js-header-checkOrder">
						{'new-header-checkBookStatus'|language}
					</a>

					{include file='checkBooking_popup.tpl'}
				{/if}

				<a href="/{go_and_back controller='authorization' action='auth_client'}"
					class="nemo-ui-button nemo-ui-button_common nemo-ui-button_medium nemo-common-pageHeader__inner__headerLinks__item nemo-common-pageHeader__auth js-header-auth
							{if isset($registrationFormsData.b2c) && !$is_sirena_rail} nemo-common-pageHeader__auth__borderRight {/if}">
					{'new-header-enter'|language}
				</a>

				<div class="js-header-restorepass" style="display: none;"></div>

				{include file='authorization_popup.tpl'}
				{include file='authorization_passRecovery_popup.tpl'}

				{if isset($registrationFormsData.b2c) && !$is_sirena_rail}
					<a href="/{url controller='authorization' action='registration' get=''}"
						class="js-header-register nemo-common-pageHeader__inner__headerLinks__item nemo-ui-button nemo-ui-button_common nemo-common-pageHeader__registration">
						{'new-header-registration'|language}
					</a>

					<div class="js-registration-formcontainer_b2c" style="display: none;">
						{include file="registration_inline.tpl" form=$registrationFormsData.b2c}
					</div>
				{/if}

			{else}
				{if !$hide_poffice}
					<a href="/{url controller="poffice" action="table"}" class="nemo-ui-button nemo-ui-button_common nemo-common-pageHeader__myOffice">
						{'new-header-privateOffice'|language}
					</a>
				{/if}

				<div class="nemo-ui-dropMenu nemo-common-pageHeader__dropMenu nemo-common-pageHeader__dropMenu_user">
					<div class="nemo-ui-dropMenu__main">
						<div class="nemo-ui-select js-common-pseudoSelectHeader">
							<div class="nemo-ui-select__toggle js-common-pseudoSelectHeader__toggle nemo-common-pageHeader__dropMenu_user_label {if !$hide_poffice} nemo-common-pageHeader__dropMenu_user_label_borderLeft {/if}">
								{$info_logged_in_as}
							</div>

							<ul class="nemo-ui-select__dropdown js-common-pseudoSelectHeader__dropdown">
								{if !$hide_poffice}
									<li class="nemo-ui-select__dropdown__item">
										<a href="/profile">
											{'tab_my_profile'|language}
											{if $info_user_status !== 'usr'}
												({$info_user_status|language})
											{/if}
										</a>
									</li>
								{/if}

								<li class="nemo-ui-select__dropdown__item">
									<a href="/settings__dashboard">
										{'new-header-settings'|language}
									</a>
								</li>

								<li class="nemo-ui-select__dropdown__item">
									<a href="/{go_and_back controller='authorization' action='logout'}">
										{'new-header-logout'|language}
									</a>
								</li>
							</ul>
						</div>
					</div>
				</div>
			{/if}

			<div class="nemo-ui-dropMenu js-nemo-header-dropmenu nemo-common-pageHeader__dropMenu nemo-common-pageHeader__dropMenu_language
				{if count($currencyConverter.rates) > 1 && $currencyConverter.conversionEnabled} nemo-common-pageHeader__dropMenu nemo-common-pageHeader__dropMenu_language_borderRight {/if} ">

				<div class="nemo-ui-dropMenu__main">
					<button class="nemo-ui-button nemo-ui-button_common nemo-common-pageHeader__dropMenu__button js-nemo-header-dropmenu__button">
						<span class="nemo-common-pageHeader__langSelectImage flag flag-{if isset($country_codes_by_languages[$locale])}{$country_codes_by_languages[$locale]|upper}{else}{$locale|upper}{/if}"></span>
					</button>
				</div>

				<div class="nemo-ui-dropMenu__drop js-nemo-header-dropmenu__drop nemo-common-pageHeader__droplist nemo-common-pageHeader__droplist_language">
					<span class="nemo-common-pageHeader__droplist__header">{'new-header-siteLang'|language}</span>
					{foreach item=lang from=$agency_langs key=lang_code}
						{if $locale != $lang_code}
							<div class="nemo-common-pageHeader__droplist__option js-nemo-header-dropmenu__drop__option js-nemo-header-dropmenu__drop__language" data-language="{$lang_code}">
								<div class="nemo-common-pageHeader__droplist__option__icon">
									<span class="nemo-common-pageHeader__langSelectImage flag 
										flag-{if isset($country_codes_by_languages[$lang_code])}{$country_codes_by_languages[$lang_code]|upper}{else}{$lang_code|upper}{/if}"
									>
									</span>
								</div>
								<span class="nemo-common-pageHeader__droplist__option__text">
									{$lang}
								</span>
							</div>
						{/if}
					{/foreach}
				</div>
			</div>

			{if count($currencyConverter.rates) > 1 && $currencyConverter.conversionEnabled}
			<div class="nemo-ui-dropMenu js-nemo-header-dropmenu nemo-common-pageHeader__dropMenu nemo-common-pageHeader__dropMenu_currency">

				<div class="nemo-ui-dropMenu__main">
					<button class="nemo-ui-button nemo-ui-button_common nemo-common-pageHeader__dropMenu__button js-nemo-header-dropmenu__button">
						{if  $currencyConverter.defaultCurrency == "RUB"}
							<money><currency type="symbol" currency="RUB">RUB</currency></money>
						{else}
							{"currency_"|cat:$currencyConverter.defaultCurrency|cat:"_symbol"|language}
						{/if}
					</button>
				</div>

				<div class="nemo-ui-dropMenu__drop js-nemo-header-dropmenu__drop nemo-common-pageHeader__droplist">
					<span class="nemo-common-pageHeader__droplist__header">{'new-header_currency_for'|language}</span>
					{foreach from=$currencyConverter.rates item=oneCur key=key}
						<div class="nemo-common-pageHeader__droplist__option js-nemo-header-dropmenu__drop__option js-nemo-header-dropmenu__drop__currency" data-currency="{$key}">
							<div class="nemo-common-pageHeader__droplist__option__icon">
								{if $key == "RUB"}
								<money><currency type="symbol" currency="RUB">RUB</currency></money>
								{else}
								{"currency_$key"|cat:"_symbol"|language}
								{/if}
							</div>
							<span class="nemo-common-pageHeader__droplist__option__text">
								{"currency_$key"|language}
							</span>
							<span class="js-nemo-header-dropmenu__drop__currency__text" style="display: none;">
								{if $key == "RUB"}
								<money><currency type="symbol" currency="RUB">RUB</currency></money>
								{else}
								{"currency_$key"|cat:"_symbol"|language}
								{/if}
							</span>
						</div>
					{/foreach}

				</div>

			</div>
			{/if}
		</div>
	</div>
	{include file="authenticationWarning.tpl"}
	{include file="header_scripts.tpl"}
</header>

5) В разделе "Управление сайтом - Nemo CMS - Шаблоны" создадим шаблон подвала.

  • В поле “Файл шаблона” укажите значение module.textsystem.single.footer.tpl
  • В поле “Заголовок шаблона” введите “Шаблон подвала”.
  • В поле шаблон внесите код шаблона подвала, указанный ниже:

код шаблона подвала

<footer class="nemo-common-footer">
	<div class="nemo-common-footer__footerInner">
		<div class="nemo-common-footer__copyRight">
			© nemo.travel
		</div>
		<div class="nemo-common-footer__footerMenu">
			<a href="#" class="nemo-common-footer__footerMenu__item">
				Помощь
			</a>
			<a href="#" class="nemo-common-footer__footerMenu__item">
				Обратная связь
			</a>
		</div>
	</div>
</footer>

Создание системного текста

Перейдите в раздел "Управление сайтом - Nemo CMS - Модули - Системные тексты".

  • Нажмите “Создать категорию текстов”.
  • В поле “Заголовок” укажите значение "Служебные".
  • Нажмите “Создать новую запись”.
  • Далее перейдите в созданную категорию.
  • Нажмите “Создать текстовую статью”.
  • В поле “заголовок” укажите"Служебный текст”.
  • Поле “Содержание” оставьте пустым.
  • Активируйте параметр “Включено”.

Создание макетов страниц

1) Перейдите в раздел "Управление сайтом - Nemo CMS - Макеты страниц".

  • Нажмите “Создать новый макет страницы”.
  • В поле “Заголовок” введите любое название, например “Поиск авиабилетов”.

Внимание! Указанное название макета будет использовано как значение тэга title в элементе head. Для страниц с формой поиска и результатами поиска значение тэга title в элементе head можно указать в разделе Языковые ресурсы. Для этого необходимо перейти в раздел настроек “Управление сайтом - Языковые ресурсы”, найти переменные FlightsSearch и FlightsResults, после чего изменить их значение на нужное. Более подробная информация о работе с разделом “Языковые ресурсы” доступна в соответствующей статье.

  • В выпадающем списке “Родитель” оставьте значение “Не определено”.
  • В списке “Шаблон” выберите “Шаблон страницы”.
  • В списке “Режим создания элементов страницы” выберите “Наследовать далее”.
  • Активируйте параметр “Включено”.

2) Нажмите на название макета. Создадим элемент макета для вывода содержимого шаблона шапки.

  • Нажмите “Создать элемент страницы”.
  • В поле “Заголовок” внесите “Шапка”
  • В списке “Информационный блок” выберите “Блок шапки”
  • В списке “Режим создания объекта” выберите “Наследовать далее”
  • В списке “Экземпляр модуля” выберите “Служебные”
  • Нажмите кнопку “Применить”.
  • В списке “Режим отображения содержимого” выберите “Определенный текст”
  • Нажмите кнопку “Применить”.
  • В списке “Произвольная статья” выберите “Служебный текст”
  • В списке “Шаблон” выберите “Шаблон шапки”
  • Активируйте параметр “Включено”.
  • Нажмите кнопку “Сохранить”.

Далее создадим аналогичным образом элементы для движка и подвала сайта.

3) Нажмите “Создать элемент страницы”.

  • В поле “Заголовок” внесите “IBE” (Internet Booking Engine)
  • В списке “Информационный блок” выберите “Блок контента”
  • В списке “Режим создания объекта” выберите “Наследовать далее”
  • В списке “Экземпляр модуля” выберите “Системные функции”
  • Нажмите кнопку “Применить”.
  • В списке “Режим отображения содержимого” выберите “Внедренный объект системы”
  • Активируйте параметр “Включено”.
  • Нажмите кнопку “Сохранить”.

4) Нажмите “Создать элемент страницы”.

  • В поле “Заголовок” внесите “Подвал”
  • В списке “Информационный блок” выберите “Блок подвала”
  • В списке “Режим создания объекта” выберите “Наследовать далее”
  • В списке “Экземпляр модуля” выберите “Служебные”
  • Нажмите кнопку “Применить”.
  • В списке “Режим отображения содержимого” выберите “Определенный текст”
  • Нажмите кнопку “Применить”.
  • В списке “Произвольная статья” выберите “Служебный текст”
  • В списке “Шаблон” выберите “Шаблон подвала”
  • Активируйте параметр “Включено”.
  • Нажмите кнопку “Сохранить”.

Для всех настроек, которые не были упомянуты выше, оставьте уже заданное в них значение по умолчанию.

В итоге у вас окажется 3 элемента макета с параметрами, установленными так, как показано на приложенных скриншотах.

Установка соответствия между макетами страниц и страницами системы

Зададим соответствие между страницами системы и макетами, которые должны быть использованы для этих страниц. Для этого перейдите в раздел "Управление сайтом - Nemo CMS - Настройки сайта" и выберите созданный нами ранее макет в соответствующих пунктах (в зависимости от того, какой компонент или компоненты системы Nemo.Travel вы используете).

Добавление дополнительных CSS и Javascript

В разделе "Управление сайтом - Настройка внешнего вида" вы можете добавить дополнительный код в <head>, CSS стили и код Javascript.