Разработка:С чего начать
Версия от 21:33, 4 июня 2009; Ilya (обсуждение | вклад) (→moodle.:  добавлена ссылка на описание XMLDB)
Чтобы успешно работать над проектом кроме общих навыков программирования следует ориентироваться в архитектуре и реализации moodle и deansoffice. Ниже описаны краткие сведения, которые могут помочь разработчику освоить эти системы. Символ / написанный в начале пути папок здесь обозначает корневую папку moodle или блока dof.
Содержание
moodle.
- Подробности по работе с moodle можно найти на http://moodle.org.
 - Структура папок описана тут.
 - Установка moodle описана здесь.
 -  Чтобы перенести работающую систему на другой компьютер, надо
- чтобы на нем работали apache, php, mysql.
 - На него надо скопировать в соответствующую папку файлы moodle.
 - В СУБД создать БД с таким же именем, которое было на прежнем ПК.
 - Занести туда все таблицы из прежней БД.
 - Задать логин и пароль на доступ к БД, которые использовались для этого на предыдущем ПК. Логин и пароль прописаны в файле /htdocs/config.php (см структуру папок).
 
 -  Для установки блока или модуля в moodle надо
- скопировать его в папку /htdocs/blocks или /htdocs/mod соответственно.
 - Зайти в администрирование->уведомления.
 - Прочитать сообщение об успешной установке.
 
 -  При работе с системой придется использовать ее функции.
- Они лежат в папке /htdocs/lib.
 - А также в папках lib модулей, установленных в системе.
 - И в файлах с суффиксом lib.php.
 -  Наиболее нужными из них являются файлы
- moodlelib.php - в нем лежат часто употребляемые функции общего назначения, определяеются многие константы.
 - datalib.php - набор функций для получения часто используемых данных из БД.
 - dmllib.php - функции для взаимодействия с БД.
 - weblib.php - функции для формирования элементов веб странички. Таких как заголовок, кнопка, форма и т.п.
 
 
 -  Для перевода интерфейса на русский язык в moodle используются языковые файлы локализации.
- Они лежат в папке /moodledata/lang/ru_utf8.
 - Для изменения перевода надо перейти по ссылкам блока администрирование язык->редактирование языка->редактирование слов или фраз.
 - Результат редактирования сохраняется в папке /moodledata/lang/ru_utf8_local.
 
 -  Все большинство данных moodle хранит в БД. Для работы с различными элементами системы используются одноименные таблицы.
- user - данные о пользователях.
 - roles - роли системы
 - context - описывает контексты (уровни) системы. Примеры - сайт, курс, блок, элемент курса, экземпляр курса.
 - role_capabilities - что разрешено роли в конкретном контексте.
 - role_assignments - кому, какая роль, когда, в каком контексте разрешена.
 
 -  Для создания и модификации таблиц лучше использовать встроенный редактор таблиц.
- Чтобы его открыть надо перейте по ссылке разное->XMLDB редактор, блока "Администрирование". Результатом работы является файл install.xml, который лежит в папке соответствующего модуля. Подробную справку по работе с XMLDB-редактором можно найти в статье Разработка:XMLDB.
 - Чтобы сделать это с помощью функций, используйте библиотеку /htdocs/lib/ddllib.php. Пример ее использования можно найти в moodle или dof в файле upgrade.php
 
 
freedeansoffice.
- Установка модуля описана здесь.
 - Со структурой модуля можно ознакомиться тут. Внимательно ознакомьтесь с ней и со структурой плагинов. Посмотрите как реализованы примеры плагинов разных типов. Чтобы все правильно работало, нужно, чтобы были соблюдены требования к наличию структуры минимального набора файлов плагина.
 - Создайте плагин по образцу, и обратите внимание, какие методы и как надо определять, чтобы плагин корректно устанавливался и работал.
 - Работа справочников основана на стандартных методах, которые описаны в /dof/lib/storage_base.php.
 -  Внимательно изучите файл /dof/lib/dof.php и содержащиеся в нем методы. Ими вам придется пользоваться постоянно. Например,
- Чтобы в каком-то модуле получить запись из таблицы, с которой работает examplest, надо написать конструкцию типа $rec = $DOF->storage('examplest')->get($id);
 - Когда надо вывести на экран строку текста "Идет обработка данных...", который задан в модуле widgets типа modlib, то используется команда $str = $DOF->get_string('proccessing','widgets',null,'modlib');
 - С помощью метода plugin_path вы получаете путь к файлам и папкам плагинов. Этот метод следует использовать для подключения библиотек и других подобных случаях.
 - Метод url_im позволяет получить www-адрес странички в плагине типа im.
 
 
Вопросы для самоконтроля
Для того, чтобы убедиться, что вы в минимальной степени ориентируетесь в moodle и freedeansoffice ответьте на вопросы, написанные ниже. Если вы можете найти ответы на них, то разберетесь и с вопросами, которые возникнут в процессе работы над плагинами.
Вопросы по moodle.
- Какие данные хранятся в таблицах БД moodle?
 - Где хранятся логин и пароль на доступ к БД moodle?
 - Как перенести систему на другой компьютер/сервер, не устанавливая ее из дистрибутива?
 -  В каких таблицах хранится информация о
- пользователях системы?
 - ролях?
 - полномочиях?
 - контекстах полномочий?
 - оценках?
 - курсах?
 - элементах курсов?
 - Какова структура папок moodle?
 - Где лежат элементы курса?
 - Где лежат библиотеки функций?
 - Какие функции лежат в файлах moodlelib.php, weblib.php, dmllid.php, datalib.php
 
 -  В каких файлах лежат функции для работы с
- БД?
 - элементами интерфейса?
 - В каком файле лежит слово "уведомление", которое выводится в блоке "администрирование"?
 
 - Как создавать таблицы через xmldb-редактор?
 - Как писать функции обновления таблиц через xmldb?
 - Как установить новый блок?
 
Вопросы по freedeansoffice.
- Как он устанавливается в moodle?
 - Какова структура папок блока freedeansoffice?
 - Какова структура папок его плагинов?
 - Какие методы надо обязательно определять при создании плагина к dof?
 - В каком файле лежат стандартные методы для работы с таблицами?
 -  Где лежат и как называются методы, с помощью которых 
- выводится сообщение на экран?
 - можно получить путь к плагину?
 - путь к файлу внутри плагина?
 - выводится навигационная панель?
 - выводятся шапка и подвал страницы?
 - выводятся блоки в модуле freedeansoffice?
 
 -  Каково назначение плагина ama?
- Как получить методы для работы с курсами, группами, пользователями?