Файл: upload/core/ajax/profile/load_more_works.php
Строк: 28
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');
header('Content-Type: application/json; charset=utf-8');
$id = intval($_POST['id'] ?? 0);
$offset = intval($_POST['offset'] ?? 0);
$limit = 32;
// Проверяем пользователя
$ank = FetchAssoc(dbquery("SELECT * FROM users WHERE id = ?", [$id]));
if (!$ank) {
echo json_encode([
'html' => '',
'show_more' => false
]);
exit;
}
// Проверяем бан
$us_ban = FetchAssoc(dbquery("SELECT * FROM users_banned WHERE us = ?", [$id]));
// Загружаем ВСЕ ворки пользователя
$q = dbquery("
SELECT *
FROM works
WHERE user_work = ?
ORDER BY id DESC
", [$id]);
$filtered = [];
while ($row = FetchAssoc($q)) {
$flag = CryptorHash('1', $row['salt']);
// Если пользователь забанен — его ворки не показываем никому
if ($us_ban) continue;
// Скрытый ворк — видит только автор
if ($row['k_off'] === $flag && $row['user_work'] != $user['id']) continue;
// Удалённый ворк — никто не видит
if ($row['del'] === $flag) continue;
$filtered[] = $row;
}
$total = count($filtered);
// Берём нужный кусок
$chunk = array_slice($filtered, $offset, $limit);
// Генерируем HTML
$html = '';
foreach ($chunk as $work) {
// Передаём данные в компонент
$GLOBALS['work'] = $work;
$GLOBALS['user'] = $user;
// Подключаем компонент, который создаёт $work_item
require $_SERVER['DOCUMENT_ROOT'] . '/core/elements/work-box.php';
// Добавляем HTML
$html .= $work_item;
}
// Показывать ли кнопку "Показать ещё"
$show_more = ($offset + $limit < $total);
echo json_encode([
'html' => $html,
'show_more' => $show_more
], JSON_UNESCAPED_UNICODE);
exit;
?>