- •Глава 4. Система управления содержимым «цифровая библиотека»: разработка
- •4.1. Система управления содержимым «Цифровая библиотека»
- •4.2. Сетевая модель «клиент-сервер»
- •4.3. Выбор языка программирования для разработки сус
- •4.3.1. Использование скриптового языка программирования php 5.X
- •4.3.2. Использование языка разметки гипертекста html 5
- •4.3.2.1. Пример html-кодасформированного сус до входа пользователя в систему
- •4.3.3. ИспользованиекаскадныхтаблицстилейCss 3
- •4.3.4. Использование скриптов JavaScript
- •4.3.5. Итоги выбора
- •4.4. Выбор конечного источника базы данных
- •4.4.1. Пример содержимого xml-файла страницы «Главная страница»
- •4.5. Выбор программного обеспечения для php и htmLи JavaScript-кода
- •4.6. Выбор программного обеспечения для css-кода
- •4.7. Итоги разработки и общее описание сус «Цифровая библиотека»
- •4.7.1. Итоги разработки
- •4.7.2. Общее описание сус «Цифровая библиотека»
- •4.8.Защита содержимого сус «Цифровая библиотека»
- •4.9. Обзор готового программного продукта: содержимое директорий и функциональное назначение файлов
- •4.9.1. Содержимое директорий и функциональное назначение файлов
- •4.10. Работа исходного кода на примере выхода одной страницы
4.9. Обзор готового программного продукта: содержимое директорий и функциональное назначение файлов
Всё программное обеспечение автоматизированного учебного курса «Прикладное программное обеспечение САПР» как уже было сказано в предыдущих подразделах главы 4было написано с использованием объектно-ориентированного интерпритируемого скриптового языка программирования высокого уровняPHPи смежных с ним языков, таких как:
HTML―язык разметки гипертекстовых документов;
JavaScript―языка программирования, предназначенный для написания сценариев управления (скриптов) отображением гипертекстовых документов;
CSS―языка предназначенного для создания уникального оформления гипертекстовых документов;
XML―расширяемого языка разметки предназначенного для хранения содержимого базы данных программного продукта (кроме загружаемых файлов директорииupload\программного продукта).
Упрощённую логическую схему разработанной СУС «Цифровая библиотека» и базы данных учебного курса «Прикладное программное обеспечение САПР» можно представить в следующем виде:

Рис. 4. 19. Упрощённая блок-схема программного продукта
На рисунке выше, двусторонние стрелки означают чтение базы данных и изменение базы данных. Односторонние стрелки означают только чтение из базы данных.
Ядрона упрощённом блок-схеме является центром системы, через него производится взаимодействие с базой данных (XMLи обычными файлами). Ядро содержит набор основных механизмов обеспечивающих работу всей системы.
Подсистемыявляются сложными механизмами неразрывно связанными с ядром. Различные подсистемы, отвечают за разные аспекты работы системы в целом (например, Подсистема навигации на рисунке выше отвечает за организацию динамическую навигацию пользователя («Пользователь» на рисунке) по страницам системы.
Модули(иДополнения) работают как подсистемы, но они не являются обязательной частью, необходимой для работы СУС «Цифровая библиотека» со стороны пользователя («Пользователь» на рисунке). Модули расширяют функциональные возможности системы, и организовывают функциональность по управлению базой данных системы и другие функциональные возможности. Новые модули всегда могут быть добавлены в систему, а подсистемы нет.
4.9.1. Содержимое директорий и функциональное назначение файлов
Все файлы2СУС «Цифровая библиотека» и базы данных учебного курса «Прикладное программное обеспечение САПР» лежат в отдельной директории (корневойдля системы), которая является корневой директорией веб-сервера или является одной из поддиректорий веб-сервера.
2Исходный код любого упомянутого здесь (и в любом месте пояснительно записки) файла (*.php,*.js,*.css,*.xmlили любого иного входящего в состав дистрибутива) или можно посмотреть внепосредственно в дистрибутиве программного продукта.
Практически все файлы исходного кода программного продукта содержат необходимые комментарии (для понимания принципов работы кода). Также, каждый файл исходного кода сопровождается (в начале файла) описанием (для чего нужен, что делает или как работает файл), например:

Рис. 4. 20. Пример комментариев в самом начале кода, в файле template.phpдиректорииtheme\dLTheme\
4.9.1.1. Корневая директория \

Рис. 4. 21. Содержимое корневой директории установленной на локальный сервер СУС «Цифровая библиотека»
Ниже приведён список файлов содержащихся в корневой директории (\)(илиdL\на рисунке выше):
|
Имя файла или директории |
Функциональное назначение файла или директории |
|
Корневая директория \ |
Является корневой директорией системы |
|
Файлconfig.php |
Основной файл настроек системы. Ключевой файл ядра (нельзя удалять или переименовывать) |
|
Файл index.php |
Скрипт страницы «Главная страница» (для пользовательского интерфейса).Ключевой файл ядра (нельзя удалять или переименовывать) |
|
Файл.htaccess |
Основной файл настроек сервера и дополнительный файл настроек системы (связанных с взаимодействием с сервером). Ключевой файл ядра (нельзя удалять или переименовывать) |
|
Файл changelog.txt |
Текстовый файл, содержащий информацию о ходе разработки системы. «Мусорный» файл (можно удалять или переименовывать) |
|
Файл readme.txt |
Текстовый файл, содержащий информацию системе в целом и данных о разработчике (авторе данной записки). «Мусорный» файл (можно удалять или переименовывать) |
|
Файл robots.txt |
Текстовый файл, содержащий информацию для поисковых роботов (от поисковых сервисов типа Yandex или Google) с информацией о том, что можно индексировать и просматривать. Является ключевым файлом в случае функционирования системы в сети Интернет |
|
Файл sitemap.xml |
XML-файл, генерируемый автоматически подсистемой навигации. В файл сохраняются данные о всей текущей иерархии страниц. Если страница помечена атрибутом «Скрытая страница», её данные не добавляются в этот файл. «Мусорный» файл (можно удалять или переименовывать) |
|
Директория admin\ |
Является ключевой директорией ядра системы и модулей по управлению базой данных. Все модули данной директории, а также дополнения директории pluginsявляются в целом «административной панелью управления» |
|
Директория backups\ |
Является дополнительной директорией базы данных системы и содержит резервные копии XML-файлов, а также ZIP-архив сайта (создаваемый модулем «Архивы сайта») |
|
Директория data\ |
Является ключевой директорией базы данных системы и содержит XML-файлы создаваемые разными модулями, а также директорию data\upload\, хранящую загружаемые извне файлы базы данных |
|
Директория theme\ |
Является ключевой директорией ядра системы (для пользовательского интерфейса) и содержит директории тем оформления страниц пользовательского интерфейса. Всё содержимое данной директории, а также функции ядра (файл theme_functions.php директории admin\inc\) и файл index.phpявляются в целом «пользовательским интерфейсом» |
4.9.1.2. Директория admin\

Рис. 4. 22. Содержимое директории admin\установленной на локальный сервер СУС «Цифровая библиотека»
|
Имя файла или директории |
Функциональное назначение файла или директории |
|
Файлarchive.php |
Скрипт страницы «Архивы сайта». Модуль административной панели управления. Управляет резервными копиями ZIP-архивов системы. Архивирует всё кроме содержимого директории admin\ |
|
Файл backup-edit.php |
Скрипт страницы «Резервные копия: Все страницы '...'» (выбранной страницы). Модуль административной панели управления. Управляет резервными копиями XML-страниц содержимого базы данных. Резервную копию можно просмотреть, удалить или восстановить |
|
Файл backups.php |
Скрипт страницы «Резервная копия '...'» (выбранной страницы). Модуль административной панели управления. Управляет резервными копиями XML-страниц содержимого базы данных и отображает список всех доступных копий. Резервную копию можно просмотреть, удалить или удалить все доступные в списке |
|
Файл changedata.php |
Составная часть модуля «Управление страницами». Выполняет сохранение введённых администратором данных XML-страницы в базе данных системы |
|
Файлcomponents.php |
Скрипт страницы «Компоненты». Модуль административной панели управления. Управляет содержимым XML-файлов боковых панелей для пользовательского интерфейса (например, такой панелью является панель «Преподаватель»). Компоненты можно просматривать, создавать новые, редактировать и удалять уже существующие |
|
Файл cron.php |
Составная часть подсистемы навигации. Модуль административной панели управления. Выполняет создание карты сайта (файла sitemap.xmlв корневой директории) |
|
Файл deletefile.php |
Составная часть модуля «Управление страницами» и модуля «Файлы». Выполняет удаление конкретного файла базы данных по запросу |
|
Файл download.php |
Составная часть модуля «Архивы сайта». Выполняет скачивание конкретного типа файла по запросу |
|
Файлedit.php |
Скрипт страницы «Управление страницами». Модуль административной панели управления. Управляет содержимым XML-файлов страниц базы данных для пользовательского интерфейса (например, такой страницей является «Главная страница, файл index.xmlдиректории data\pages\). Страницы можно просматривать, создавать новые, редактировать и удалять уже существующие |
|
Файл edit-infolink.php |
Составная часть модуля «Управление страницами». Выводит содержимое интерактивной справки по работе с модулем. Является частью подсистемы интерактивной справки |
|
Файлfaq.php |
Скрипт страницы «Документация». Модуль административной панели управления. Выводит содержимое интерактивной справки по работе с системой в целом. Является частью подсистемы интерактивной справки |
|
Файлfavicon.png
( |
Изображение иконки отображаемой в адресной строке в некоторых браузерах и при добавлении страницы системы в избранное браузера |
|
Файл filebrowser.php |
Составная часть модуля «Редактор HTML». Выполняет функции браузера файлов для редактора HTMLCKEditor3.5.2 |
|
Файл health-check.php |
Скрипт страницы «Проверка целостности сайта». Модуль административной панели управления. Выполняет проверочные функции различных аспектов системы (работы необходимых модулей веб-сервера, проверки целостности базы данных и прочее) |
|
Файл image.php |
Составная часть модуля «Файлы». Выполняет вывод конкретного изображения (JPEG, GIF, WBMPиPNG) и инициализирует различные функции по работе с этим изображение (например, создание эскиза изображения или миниатюры) |
|
Файл index.php |
Скрипт страницы «Войти». Модуль административную панель управления. Выводит страницу «войти» и предоставляет возможность администратору системы выполнить вход в административную панель управления. Является частью подсистемы идентификации.Ключевой файл ядра (нельзя удалять или переименовывать) |
|
Файл load.php |
Скрипт страницы выводящей содержимое дополнений (дополнительных модулей) для административной панели управления из директории plugins\ |
|
Файл load-ajax.php |
Скрипт страницы выводящей функций для работы в режиме AJAX,если таковые функции определены в дополнениях (дополнительных модулях) для административной панели управления из директории plugins\ |
|
Файл log.php |
Скрипт страницы «Журнал неудачных попыток входа». Модуль административной панели управления. Выводит журнал с записями всех неудачных попытки подбора или неправильного ввода данных (на странице «Войти») учётной записи с уровнем прав «Администратор». Журнал можно очищать |
|
Файл logout.php |
Скрипт страницы завершающей сессию администратора системы (после нажатия на кнопку «Выйти из системы в административной панели управления). Является частmю подсистемы идентификации |
|
Файл navigation.php |
Скрипт страницы «Текущее меню». Составная часть модуля «Управление страницами». Выводит страницу с демонстрацией вида текущего верхнего меню для пользовательского интерфейса в административной панели управления |
|
Файл pages.php |
Скрипт страницы «Все страницы». Составная часть модуля «Управление страницами». Выводит список всех доступных страниц содержимого системы (XML-страниц) |
|
Файл phpinfo.php |
Скрипт страницы «phpinfo()».Модуль административной панели управления. Выводит стандартную страницу с информацией о сервере через применение функции phpinfo(). Является частью подсистемы интерактивной справки |
|
Файл plugins.php |
Скрипт страницы «Управление дополнениями». Модуль административной панели управления. Позволяет управлять дополнениями (дополнительными модулями) директории plugins\. Модули модно включать или выключать |
|
Файл replace.php |
Скрипт страницы «Замена». Составная часть модуля «Управление заменой». Позволяет запускать настроенный режим «грубой» заменытекста в файлах системы |
|
Файл resetpassword.php |
Скрипт страницы «Сбросить текущий пароль». Модуль административную панель управления. Выводит страницу «Сбросить текущий пароль» и предоставляет возможность администратору системы сменить пароль к административной учётной записи (письмо с паролем будет отправлено при помощи Sendmailна электронный адрес, указанный в модуле «Настройка», либо (если включен локальный режим), будет создан файл с новым паролем в директории (определённой также в модуле «Настройки»). Является частью подсистемы идентификации |
|
Файл server-info.php |
Скрипт страницы «Информация о сервере». Модуль административной панели управления. Выводит страницу со ссылкой на модуль «phpinfo()». Является частью подсистемы интерактивной справки |
|
Файл settings.php |
Скрипт страницы «Настройка». Модуль административной панели управления. Выводит страницу настройки всей системы в целом. Основной настроечный скрипт ядра системы |
|
Файл settings-lc.php |
Скрипт страницы «Управления учебными курсами». Модуль административной панели управления. Выводит страницу настройки базы данных учебных курсов. Каждый учебный курс обладает двумя дополнительными текстовыми полями, которые выводятся в шапке пользовательского интерфейса в случае посещения пользователем системы страницы, принадлежащей к данному учебному курсу. Также, для подсистемы организована специальная страница «Учебные курсы» где выводится полное описание курса, а также дополнительные данные курса, которые можно указывать в модуле. Является частью подсистемы «Учебные курсы» |
|
Файл settings-qa.php |
Скрипт страницы «Вопросы и ответы». Модуль административной панели управления. Является частью подсистемы общения. Подробнее о подсистемы общения приводится в главе 6 данной пояснительной записки |
|
Файл settings-ql.php |
Скрипт страницы «Управления цитатами и ссылками». Модуль административной панели управления. Выводит страницу настройки базы данных цитат и ссылок, выводимых на соответствующей боковой панели Цитаты и ссылки пользовательского интерфейса. Вывод осуществляется случайным образом, и подсистема может выбрать одну цитату (хранимую в XML-файле) и одну ссылку (либо из тех что хранятся в базе данных в XML-файлах, либо ссылку на любую доступную страницу пользовательского интерфейса). Является частью подсистемы «Цитаты и ссылки» |
|
Файл settings-replace.php |
Скрипт страницы «Настройка замены». Модуль административной панели управления. Выводит страницу настройки режима замены |
|
Файл sitemap.php |
Скрипт страницы генерирующей карту сайта (файл sitemap.xml) которая сохраняется в корневой директории системы.Модуль административной панели управления. Является частью подсистемы навигации |
|
Файлsupport.php |
Скрипт страницы «Поддержка». Модуль административной панели управления. Является частью подсистемы интерактивной справки |
|
Файлtheme.php |
Скрипт страницы «Доступные темы оформления». Модуль административной панели управления. Предоставляет функции выбора текущей активной темы оформления для пользовательского интерфейса |
|
Файлtheme-edit.php |
Скрипт страницы «Доступные темы оформления». Модуль административной панели управления. Предоставляет функции выбора редактирования кода всех доступных файлов темы оформления для пользовательского интерфейса. Позволяет редактировать, например файлы template.php, header.php, footer.php, functions.php, sidebar.phpи style.cssиз директории theme\dLTheme\ |
|
Файлtheme-special.php |
Скрипт страницы «Доступные темы оформления». Модуль административной панели управления. Предоставляет функции выбора темы оформления для пользовательского интерфейса, которая будет активирована при переходе в режим «под печать» (кнопка-ссылкаПереключиться в режим под печать)/ По умолчанию для этой функции избрана тема оформления Print (директория theme\Print\) |
|
Файлupload.php |
Скрипт страницы «Файлы». Модуль административной панели управления. Предоставляет функции для работы с загрузкой файлов практически любых типов файлов с максимальным размером 2МБ (мегабайта) на сервер в директорию uploads\. Позволяет создавать в директории uploads\через веб-интерфейс другие вложенные директории и загружать туда файлы |
|
Файлupload-check-exists.php |
Скрипт страницы проверяющей существование конкретного файла в конкретной директории с использованием AJAX-режима. Составная часть модуля «Файлы» |
|
Файлupload-uploadify.php |
Скрипт страницы загружающей файлы и создающей миниатюры изображений в AJAX-режиме. Составная часть модуля «Файлы» |
|
Файлusers.php |
Скрипт страницы «Управление пользователями». Модуль административной панели управления. Предоставляет функции работы с базой данных пользователей системы с уровнем прав «Пользователь» (регистрация новых учётных записей самими пользователя может быть разрешена в модуле «Настройки», установкой галочки на параметреВключить регистрацию новых пользователей). Является частью подсистемы идентификации |
|
Файлwelcome.php |
Скрипт страницы «Начальная страница». Модуль административной панели управления. Выводит содержимое интерактивной справки по работе с системой в кратком виде. Эта страница выводится сразу же после установки системы на веб-сервер с помощью скриптовой-установки (используя файлы install.phpи setup.phpдистрибутива программного продукта). Является частью подсистемы интерактивной справки |
|
Файлzip.php |
Скрипт страницы выполняющее непосредственное архивирование файлов системы при использовании модуля «Архивы сайта». Составная часть модуля «Архивы сайта» |
|
Директория faq\ |
Содержит два файла: content-faq.php, отвечающий за текстовое содержимое модуля «Документация» и sidebar-faq.php, отвечающий за содержимое боковой панели модуля «Документация». Является составной часть подсистемы интерактивной справки |
|
Директория inc\ |
Содержит все основные файлы ядра системы, так или иначе используемые в административной панели управления или пользовательским интерфейсом |
|
Директория lang\ |
Содержит один файл: ru_RU.php, содержащий массив i18n («internationalization») элементы которого являются строками локализации всей системы в целом (что упрощает, например исправление грамматических ошибок или создания перевода строк на другие языки) |
|
Директория qa\ |
Содержит некоторые файлы подсистемы общения. .Подробнее о подсистемы общения приводится в главе 6 данной пояснительной записки |
|
Директория template\ |
Содержит файлы организовывающие интерфейс административной панели управления, а именно: файл style.phpсодержащий таблицу стилей, файлы боковых панелей для модулей, файл header.php (для формирования подключения JavaScriptи CSS для панели управления), файл footer.php(для низа любого модуля) и include-nav.php (шапка любого модуля), директорию js\содержащую все основные JavaScript-библиотеки и файлы (подробнее в подпункте 4.3.4данной главы) и директорию images, содержащую некоторые изображения, используемые в оформление интерфейса |
|
Директория users\ |
Содержит два файла: ckeditor.php, отвечающий за функции и переменные для подключения HTML-редактора CKEditor 3.5.2в модуле «Управление пользователями» и users-style.cssдиректории admin\users\css\ для формирования стиля модуля «Управление пользователями» |
