Анализ файла `index.php`#
Описание#
Файл `index.php` представляет собой основную страницу приложения, которая включает:
- HTML-структуру интерфейса
- JavaScript для обработки событий и манипуляции DOM
- PHP для взаимодействия с базой данных
Основные возможности:
- Выбор источника данных
- Запрос данных
- Переключение между моделями и алгоритмами
- Настройка отображения графика
Ключевые технологии:
- PHP
- JavaScript
- HTML
- MySQL
- jQuery
1.Функции и Функционал#
1.1.Отображение Структуры Пользовательского Интерфейса
- Код: Весь HTML-контент
- Описание: Определяет структуру страницы, включая различные разделы и элементы управления
1.2.Обработчики Событий Мыши
- Функции:
body_m_move(event)
- Назначение: Обработка движений мыши
- Вероятные действия:
- Перемещение графических элементов
- Динамическое масштабирование
- Трекинг координат курсора
body_m_up(event)
- Назначение: Обработка отпускания кнопки мыши
- Вероятные действия:
- Фиксация положения элементов
- Завершение операций перетаскивания
- Сброс состояний интерактивных элементов
body_m_down(event)
- Назначение: Обработка нажатия кнопки мыши
- Вероятные действия:
- Инициализация перемещения
- Выделение областей
- Активация интерактивных элементов
- Код:
<body onmousemove='body_m_move(event)' onmouseup='body_m_up(event)' onmousedown='body_m_down(event)'>
- Описание: Обрабатывают события мыши для перемещения и масштабирования графика
1.3.Переключение Источника Данных
- Функции:
changeSource(source)
- Параметры:
- source - идентификатор источника данных
- Действия:
- Смена активного источника данных
- Перезагрузка или обновление графических компонентов
- Возможная фильтрация данных
- Параметры:
changeChkActiveMOdelsOnly()
- Действия:
- Включение/отключение фильтра моделей
- Отображение только активных или всех моделей
- Управление видимостью элементов интерфейса
- Действия:
- Код:
<input id="rb-forex" type="radio" name="source" value="1" onclick="changeSource('forex')"> FOREX data (Finam) online  </input>
<input id="chk-active-only" type="checkbox" name="source" value="active_only" checked onclick="changeChkActiveMOdelsOnly()"> For unselected models, show only t.1</input>
- Описание: Переключают источник данных (FOREX, сохраненные графики, база данных MySQL) и фильтр отображения моделей
1.4.Запрос Данных
- Функции:
get_candles(source)
- Параметры:
- source - источник свечных данных
- Действия:
- AJAX-запрос к серверу
- Получение свечных данных (возможно для FOREX)
- Подготовка данных для визуализации
- Параметры:
get_fragment()
- Действия:
- Запрос фрагмента данных из базы
- Извлечение специфического набора данных
- Загрузка частичных данных графика
- Действия:
- Код:
<button id="get-data-btn" onclick="get_candles('forex')">Request candlestick chart FOREX</button>
<button id="get-data-btn3" onclick="get_fragment()"> Request fragment from DB </button>
- Описание: Отправляют AJAX-запросы для получения данных о свечах в зависимости от выбранного источника
1.5.Переключение Моделей
- Функции:
switchModels(direction)
- Параметры:
- direction - направление переключения (например, 'prev')
- Действия:
- Навигация между различными моделями
- Циклическая смена моделей
- Обновление отображаемой информации
- Параметры:
switchAlg2show(algId)
- Параметры:
- algId - идентификатор алгоритма
- Действия:
- Переключение отображаемого алгоритма
- Смена расчетной модели
- Перерисовка графических элементов
- Параметры:
- Код:
<button onclick="switchModels('prev')"><strong>  previous t.1   </button>
<input id="showAlg1" type="radio" name="AlgshowSwith" value="Alg1" onclick="switchAlg2show(1)">Algorythm_1</input>
- Описание: Позволяют переключаться между моделями и алгоритмами
1.6.Отображение Графика (Функции Визуализации)
- Функции:
drawGraph()
- Действия:
- Построение графика
- Визуализация данных
- Применение настроек отображения
- Действия:
toggleDetailedLog()
- Действия:
- Включение/выключение подробного логирования
- Управление отображением диагностической информации
- Действия:
build_models(algId)
- Параметры:
- algId - идентификатор алгоритма построения моделей
- Действия:
- Расчет моделей по выбранному алгоритму
- Генерация новых графических представлений
- Параметры:
- Код:
<button class="build-btn" onclick="build_models(1)">Calculate Algorythm_1 models</button>
<input id="chk-log" class="chk-log" type="checkbox" name="show-detailed-log" onclick="toggleDetailedLog()">
- Описание: Отрисовывают график, переключают подробное логирование и вычисляют модели
1.7.Функции отладки
show_model_for_key()
- Действия:
- Отображение информации о модели
- Вывод технических деталей
- Действия:
show_resAJAX_info(infoType)
- Параметры:
- infoType - тип отображаемой информации
- Действия:
- Вывод результатов AJAX-запросов
- Диагностическая информация
- Параметры:
debug_on_off(event)
- Действия:
- Включение/выключение режима отладки
- Управление видимостью отладочных элементов
- Действия:
- Код:
<button onclick="show_model_for_key()">Show models</button>
<div id="right-block" oncontextmenu="debug_on_off(event)">
- Описание: Включают функционал отладки и вывода информации
2. Анализ Входящих Данных
2.1 Пользовательский Ввод
Текстовое поле popUpText
- Назначение: Ввод пользовательских данных
- Возможные сценарии:
- Ввод параметров
- Фильтрация данных
- Поиск
Выпадающий список select-interval
- Назначение: Выбор интервалов
- Функции:
- Настройка временных рамок
- Фильтрация графических данных
2.2 Источники Данных
FOREX-данные
- Онлайн-источник
- Реального времени
- Финансовые котировки
Сохраненные CSV-графики
- Путь: saved_charts/
- Локальное хранилище
- Возможность восстановления предыдущих состояний
База данных MySQL
- Таблица: chart_names
- Структурированное хранение
- Возможность сложных запросов
3. Пользовательские Возможности
3.1 Источники Данных
Переключение между:
- FOREX
- Сохраненные графики
- MySQL-база данных
3.2 Работа с Данными
Получение свечных графиков Извлечение фрагментов данных Настройка параметров отображения
3.3 Модели и Алгоритмы
Навигация между моделями Выбор алгоритмов расчета Переключение отображаемых моделей
3.4 Визуализация
Масштабирование графиков Применение фильтров Настройка детализации
3.5 Отладка и Диагностика
Просмотр технических деталей Управление режимом отладки Диагностика AJAX-запросов
Связи с Функциями из Других Файлов и Подключаемых Модулей#
Подключение jQuery
- Код:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
- Описание: Используется для обработки событий и манипуляции DOM
Подключение Скриптов
- Код:
<script src='js/moving_box_css.js'></script>
<link rel="stylesheet" href="css/style.css">
<script src="js/functions.js"></script>
<script src="js/main.js"></script>
- Описание: Подключают дополнительные скрипты и стили для функционала, такой как перемещение и масштабирование графика, а также общие функции
Запросы к Базе Данных
- Код:
require_once 'login_4js.php';
- Описание: Подключает файл с конфигурацией базы данных и выполняет запросы для получения данных из таблицы `chart_names`
Запросы#
AJAX-запросы
- Функции:
- `get_candles(source)`
- `get_fragment()`
- Описание: Отправляют запросы на сервер для получения данных о свечах и фрагментов графиков
Запросы к Базе Данных
- Пример Запроса:
$result = queryMysql("select name from chart_names order by name");
- Описание: Выполняют SQL-запросы для получения данных из таблиц базы данных MySQL
Входящие Данные#
Пользовательские Вводы
- Код:
<input id="popUpText" type="text" required="">
<select id="select-interval" name="interval" size="1">
- Описание: Позволяют пользователю вводить данные и выбирать параметры (интервалы, пары торговли)
Данные из Базы Данных
- Пример Запроса:
$result = queryMysql("select name from chart_names order by name");
- Описание: Получают данные из таблиц базы данных MySQL
Сохраненные Графики
- Код:
<div id="source-saves">
<?php
$filelist = glob("saved_charts/*.csv");
sort($filelist);
?>
</div>
- Описание: Считывают и отображают список сохраненных графиков из папки `saved_charts`
Пользовательские Возможности#
- Переключение источника данных
- Запрос данных
- Переключение моделей и алгоритмов
- Отображение графика
- Дебаг