Поиск по сайту


Реализацию поиска на сайте стоит начать с создания файла-шаблона, например search.php. Подробнее о том, как это сделать, можно узнать в разделе: Шаблоны страниц.

Содержание файла search.php:

<?php
/**
 * Поиск по сайту
 **/
?>
<!DOCTYPE html>
<html>
{% :head %}
<body>
	 <div class="main-wrap">
		{% :header %}
		<div id="page-content">
			 <div class="container">
			 <? if (!g::stack()->get('pages') && empty(g::stack()->get('pages'))): ?>
				<div class="row">
					 <h3>По Вашему запросу ничего не найдено</h3>
				</div>
			 <? else: ?>
				<? if ($pages = g::stack()->get('pages')): ?>
					<div class="content-section">
						<div class="container">
							<h3>Поиск по сайту</h3>
							<div class="pages-list">
							<? foreach($pages as $i): ?>
								<div class="pages-item">
									<h4><a href="<?= $i['url'] ?>"><?= $i['name'] ?></a></h4>
								</div>
							<? endforeach; ?>
						</div>
						<? if (g::pages()->pagination): ?>
							<ul class="pagination">
								<?=g::tp()->pagination('<li><a href="/search/?q='.g::stack()->get('search_info')["search_text"].'&ppage=%d">%d</li>',
								 '<li class="current">%d</li>',
								 '<li>...</li>',
								 g::stack()->get('search_info')["ppage"],
								 g::stack()->get('search_info')["count_page"],
								 1
							);
						 ?>
						</ul>
					<? endif; ?>
					</div>
				</div>
				<? endif; ?>
			<? endif; ?>
			</div>
		</div>
	</div>
	{% :footer %}
	{% :footer-js %}
</body>
</html>

Следующим шагом будет создание страницы с выбранным шаблоном Поиск по сайту | search. В качестве значения URL можно установить понятное всем пользователям search. Страница результатов поиска будет иметь адрес: https://site.ru/search/.

В заключении нужно добавить данные в форму поиска, расположенную в шаблоне:

<form action="/search/" method="GET">
	<input type="text" name="q">
	<input type="submit" value="Искать">
</form>