/
Benis
/
Korochki
Обзор
Документация
Войти
/
Benis
/
Korochki
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
php/application_functions.php
183 строки
6 KB
Benis
pervaya versyia Korochki.yest
13 май 2026, 12:37
13 май 2026, 12:37
1e34d0e
Код
Авторство
О чём код?
<?php // Файл: php/application_functions.php - версия без БД require_once 'config.php'; function createApplication($user_id, $course_name, $start_date, $payment_method_id) { $applications = loadData('applications'); $new_id = count($applications) > 0 ? max(array_column($applications, 'id')) + 1 : 1; $applications[] = [ 'id' => $new_id, 'user_id' => (int)$user_id, 'course_name' => $course_name, 'desired_start_date' => $start_date, 'payment_method_id' => (int)$payment_method_id, 'status' => 'Новая', 'created_at' => date('Y-m-d H:i:s'), 'review' => null ]; saveData('applications', $applications); return true; } function getUserApplications($user_id) { $applications = loadData('applications'); $payment_methods = loadData('payment_methods'); $result = []; // Сортируем по дате создания (новые сверху) usort($applications, function($a, $b) { return strtotime($b['created_at']) - strtotime($a['created_at']); }); foreach ($applications as $app) { if ($app['user_id'] == $user_id) { // Находим название способа оплаты $payment_name = ''; foreach ($payment_methods as $pm) { if ($pm['id'] == $app['payment_method_id']) { $payment_name = $pm['name']; break; } } $app['payment_method_name'] = $payment_name; $result[] = $app; } } return $result; } function getAllApplicationsFiltered($status_filter = '', $search = '', $page = 1, $items_per_page = 10) { $applications = loadData('applications'); $users = loadData('users'); $payment_methods = loadData('payment_methods'); // Собираем все заявки с данными пользователей $all = []; foreach ($applications as $app) { // Находим пользователя $user = null; foreach ($users as $u) { if ($u['id'] == $app['user_id']) { $user = $u; break; } } if (!$user) continue; // Находим способ оплаты $payment_name = ''; foreach ($payment_methods as $pm) { if ($pm['id'] == $app['payment_method_id']) { $payment_name = $pm['name']; break; } } $app['user_name'] = $user['full_name']; $app['user_email'] = $user['email']; $app['payment_method_name'] = $payment_name; $all[] = $app; } // Фильтрация $filtered = []; foreach ($all as $app) { $status_match = empty($status_filter) || $app['status'] === $status_filter; $search_match = empty($search) || stripos($app['user_name'], $search) !== false || stripos($app['course_name'], $search) !== false; if ($status_match && $search_match) { $filtered[] = $app; } } // Сортировка по дате (новые сверху) usort($filtered, function($a, $b) { return strtotime($b['created_at']) - strtotime($a['created_at']); }); // Пагинация $offset = ($page - 1) * $items_per_page; return array_slice($filtered, $offset, $items_per_page); } function getTotalApplicationsCount($status_filter = '', $search = '') { $applications = loadData('applications'); $users = loadData('users'); $count = 0; foreach ($applications as $app) { // Находим пользователя $user = null; foreach ($users as $u) { if ($u['id'] == $app['user_id']) { $user = $u; break; } } if (!$user) continue; $status_match = empty($status_filter) || $app['status'] === $status_filter; $search_match = empty($search) || stripos($user['full_name'], $search) !== false || stripos($app['course_name'], $search) !== false; if ($status_match && $search_match) { $count++; } } return $count; } function updateApplicationStatus($application_id, $new_status) { $applications = loadData('applications'); foreach ($applications as &$app) { if ($app['id'] == $application_id) { $app['status'] = $new_status; saveData('applications', $applications); return true; } } return ['error' => 'Заявка не найдена']; } function addReview($application_id, $review) { $applications = loadData('applications'); foreach ($applications as &$app) { if ($app['id'] == $application_id) { $app['review'] = $review; saveData('applications', $applications); return true; } } return ['error' => 'Заявка не найдена']; } function getPaymentMethods() { return loadData('payment_methods'); } function canAddReview($application_id, $user_id) { $applications = loadData('applications'); foreach ($applications as $app) { if ($app['id'] == $application_id && $app['user_id'] == $user_id && $app['status'] == 'Обучение завершено' && empty($app['review'])) { return true; } } return false; } ?>