Использование разных языковых шаблонов для сайтов с разными доменными именами

Материал из Umicms

Перейти к: навигация, поиск

Описание проблемы

Иногда бывает ситуация, что версии сайта на разных языках находятся на разных доменах. Например, site.ru - русская версия, site.com - английская версия. В этом случае форма поиска и результаты будут на русском языке.

Варианты решения

Один из вариантов - создание отдельного шаблона для английской версии поиска. Для этого надо сделать следующее:

  • Создаём страницу контента для результатов поиска английского варианта сайта. Назовём её, например, "Search results" и псевдостатический адрес будет "search_results".
  • В содержимое страницы добавим макрос вывода результатов поиска с указанием шаблона:
%search search_do('en_default')%
  • В каталоге /tpls/search/ создадим файл шаблона (в нашем случае это en_default.tpl) со следующим содержанием:
<?php
 
$FORMS = Array();
 
$FORMS['search_block'] = <<<END
<p>%total% pages found.</p>
%lines%
<p>%system numpages(%total%, %per_page%)%</p>
END;
 
$FORMS['search_block_line'] = <<<END
<p>
	<span class="s_num">%num%.</span> <a href='%link%' style="font-weight: bold;" umi:element-id="%id%" umi:field-name="name">%name%</a>
	%context%
</p>
END;
 
$FORMS['search_empty_result'] = <<<END
	<p>
		Not found.
	</p>
END;
 
$FORMS['search_form'] = <<<END
	<form id="search" class="block" method="get" action="/search_results/">
		<input type="text" class="textinputs" style="width:100%;" name="search_string" value="Search..." onfocus="javascript: if(this.value == 'Search...') this.value = '';" onblur="javascript: if(this.value == '') { this.value = 'Search...';}"/>
		<input type="submit" value="Search"/>
		<p>
			Search:
			<input type="radio" name="search-or-mode" id="search-and-mode" value="0" %search_mode_and_checked%>
			<label for="search-and-mode">All words</label>
 
			<input type="radio" name="search-or-mode" id="search-or-mode" value="1" %search_mode_or_checked%>
			<label for="search-or-mode">Any word</label>
		</p>
 
	</form>
END;
 
?>

Ключевой момент - параметр action в теге <form...>, в котором необходимо указать адрес созданной ранее страницы. В нашем случае это "/search_results/"