Инструменты пользователя

Инструменты сайта


матрешка

Разработать на HTML, JS и PHP движок сайта для создания баз знаний, имеющих иерархическую упорядоченность.

База данных - MySQL. Взаимодействие PHP и MySQL должно быть реализовано через PDO (https://www.php.net/manual/ru/pdo.connections.php) Изменение содержимого страницы должно происходить через AJAX, то есть без полной перезагрузки после каждого действия

Этап 1 - Реализовать добавление блоков и их первичное отображение

Каждый блок хранит только содержимое в текстовом виде и ссылку на вышестоящий блок. Таблица блоков:

CREATE TABLE `block` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `content` text COLLATE utf8_unicode_ci,
  `id_hi` int(11),
  CONSTRAINT `block_id_hi` FOREIGN KEY (`id_hi`) REFERENCES `block` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

В исходном состоянии существует единственный блок с id_hi = NULL и content = NULL. Этот блок отображается на всю страницу. Каждый блок имеет контекстное меню, вызываемое по щелчку правой кнопкой мыши. В этом меню должен быть пункт «Добавить дочерний блок». При выборе этого пункта открывается окно для текста с кнопками «Ок» и «Отмена». При нажатии «Ок» происходит добавление дочернего блока с введенным текстом. Так как на этом этапе база знаний небольшая, то можно извлекать и отображать все блоки сразу

Этап 2 - Реализовать удаление и редактирование блоков

Добавить в контекстное меню пункты «Удалить» и «Редактировать»

Этап 3 - Реализовать перемещение блоков мышью

Аналогично http://mhrj.orv.org.ru/FILES/ddUI/

Этап 4 - Разработать алгоритм отображения блоков

Извлекать не все блоки, а только те, которые будут отображаться


Потом:

  • Ссылки на блоки
  • Хранении истории изменений
  • Возможность отмены изменений
  • Разные цвета блоков
  • Хранение в блоках изображений и файлов
  • Поддержка смартфонов
матрешка.txt · Последние изменения: 2021/10/17 19:37 — keremet