Skip to main content

Sandbox

Sandbox - index.php

Файл `index.php` представляет собой основную страницу приложения, которая включает:

Section Sandbox
Updated 08.12.2024

Анализ файла `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&nbsp&nbsp</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()">&nbspRequest fragment from DB&nbsp</button>
  • Описание: Отправляют AJAX-запросы для получения данных о свечах в зависимости от выбранного источника

1.5.Переключение Моделей

  • Функции:

switchModels(direction)

    • Параметры:
      • direction - направление переключения (например, 'prev')
    • Действия:
      • Навигация между различными моделями
      • Циклическая смена моделей
      • Обновление отображаемой информации

switchAlg2show(algId)

    • Параметры:
      • algId - идентификатор алгоритма
    • Действия:
      • Переключение отображаемого алгоритма
      • Смена расчетной модели
      • Перерисовка графических элементов
  • Код:
<button onclick="switchModels('prev')"><strong>&nbsp previous t.1 &nbsp </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`

Пользовательские Возможности#

  1. Переключение источника данных
  2. Запрос данных
  3. Переключение моделей и алгоритмов
  4. Отображение графика
  5. Дебаг

Continue Reading

Related Articles