Файл: upload/pages/search/search.php
Строк: 30
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');
$search = isset($_GET['search']) && $_GET['search'] !== '' ? trim(chars($_GET['search'])) : '';
$breadcrumbs = generateBreadcrumbs([
['/', 'Главная'],
['#', 'Поиск']
]);
$search = trim($_GET['search'] ?? '');
$works = [];
$pagination = '';
if ($search !== '') {
// Получаем все работы
$all_raw = dbquery("
SELECT *
FROM `works`
WHERE `name_work` LIKE ?
ORDER BY `id` DESC
", ["%$search%"]);
$all_filtered = [];
while ($row = FetchAssoc($all_raw)) {
$hashOne = CryptorHash('1', $row['salt']);
// скрытые работы
if ($row['k_off'] === $hashOne && $row['user_work'] != $user['id']) continue;
if ($row['del'] === $hashOne) continue;
$all_filtered[] = $row;
}
// Пагинация
$max = 30;
$k_post = count($all_filtered);
$k_page = k_page($k_post, $max);
$page = page($k_page);
$start = $max * $page - $max;
$works_filtered = array_slice($all_filtered, $start, $max);
foreach ($works_filtered as $work) {
// Передаём данные в компонент
$GLOBALS['work'] = $work;
$GLOBALS['user'] = $user;
// Подключаем компонент, который создаёт $work_item
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/elements/work-box.php');
// Добавляем HTML в массив
$works[] = $work_item;
}
// Пагинация
if ($k_page > 1) {
$pagination = str(homeLink() . '/search?search=' . urlencode($search) . '&', $k_page, $page);
}
}
$page_html = $view->render('pages/search/search.html', [
'breadcrumbs_html' => $breadcrumbs['html'],
'breadcrumbs_json' => $breadcrumbs['json_ld'],
'search' => htmlspecialchars($search),
'works' => $works,
'pagination' => $pagination,
'templ_home' => TemplateLink($theme),
'home' => homeLink()
]);
require_once ($_SERVER['DOCUMENT_ROOT'] . '/layout.php');
?>