<?php use PhoneBook\Component\View, PhoneBook\DataSource\PhoneBook as PhoneBookDataSource; $search_block = View::getRender(['template' => $_SERVER['DOCUMENT_ROOT'] . '/private/template/part/search-block.php', 'data' => ['query' => $_GET['search']]]); $_GET['search'] = trim(preg_replace('#[^a-zA-ZА-Яа-я0-9 ]+#ui', '', $_GET['search'])); $searchTerms = explode(' ', mb_substr($_GET['search'], 0, 100, 'UTF-8')); $searchPattern = implode('|', $searchTerms); while (strpos($searchPattern, '||') !== false) { $searchPattern = str_replace('||', '|', $searchPattern); } $searchPattern = trim($searchPattern, '|'); $phoneBook = ''; if (!empty($_GET['search']) && !empty($phoneBook = PhoneBookDataSource::getRecordsBySearchQuery($searchTerms))) { $phoneBook = View::getRender(['template' => $_SERVER['DOCUMENT_ROOT'] . '/private/template/part/phone-book.php', 'data' => ['phoneBook' => PhoneBookDataSource::getRecordsBySearchQuery($searchTerms), 'searchPattern' => $searchPattern]]); } $phoneBook = empty($phoneBook) ? 'Ничего не найдено.' : $phoneBook; View::render(['template' => $_SERVER['DOCUMENT_ROOT'] . '/private/template/layout.php', 'data' => ['content' => $search_block . $phoneBook]]);