Разработка:С чего начать

Материал из DOF
(перенаправлено с «Разработка: С чего начать»)
Перейти к: навигация, поиск

Чтобы успешно работать над проектом кроме общих навыков программирования следует ориентироваться в архитектуре и реализации moodle и deansoffice. Ниже описаны краткие сведения, которые могут помочь разработчику освоить эти системы. Символ / написанный в начале пути папок здесь обозначает корневую папку moodle или блока dof.

moodle.

  1. Подробности по работе с moodle можно найти на http://moodle.org.
  2. Структура папок описана тут.
  3. Установка moodle описана здесь.
  4. Чтобы перенести работающую систему на другой компьютер, надо
    1. чтобы на нем работали apache, php, mysql.
    2. На него надо скопировать в соответствующую папку файлы moodle.
    3. В СУБД создать БД с таким же именем, которое было на прежнем ПК.
    4. Занести туда все таблицы из прежней БД.
    5. Задать логин и пароль на доступ к БД, которые использовались для этого на предыдущем ПК. Логин и пароль прописаны в файле /htdocs/config.php (см структуру папок).
  5. Для установки блока или модуля в moodle надо
    1. скопировать его в папку /htdocs/blocks или /htdocs/mod соответственно.
    2. Зайти в администрирование->уведомления.
    3. Прочитать сообщение об успешной установке.
  6. При работе с системой придется использовать ее функции.
    1. Они лежат в папке /htdocs/lib.
    2. А также в папках lib модулей, установленных в системе.
    3. И в файлах с суффиксом lib.php.
    4. Наиболее нужными из них являются файлы
      1. moodlelib.php - в нем лежат часто употребляемые функции общего назначения, определяеются многие константы.
      2. datalib.php - набор функций для получения часто используемых данных из БД.
      3. dmllib.php - функции для взаимодействия с БД.
      4. weblib.php - функции для формирования элементов веб странички. Таких как заголовок, кнопка, форма и т.п.
  7. Для перевода интерфейса на русский язык в moodle используются языковые файлы локализации.
    1. Они лежат в папке /moodledata/lang/ru_utf8.
    2. Для изменения перевода надо перейти по ссылкам блока администрирование язык->редактирование языка->редактирование слов или фраз.
    3. Результат редактирования сохраняется в папке /moodledata/lang/ru_utf8_local.
  8. Все большинство данных moodle хранит в БД. Для работы с различными элементами системы используются одноименные таблицы.
    1. user - данные о пользователях.
    2. roles - роли системы
    3. context - описывает контексты (уровни) системы. Примеры - сайт, курс, блок, элемент курса, экземпляр курса.
    4. role_capabilities - что разрешено роли в конкретном контексте.
    5. role_assignments - кому, какая роль, когда, в каком контексте разрешена.
  9. Для создания и модификации таблиц лучше использовать встроенный редактор таблиц.
    1. Чтобы его открыть надо перейте по ссылке разное->XMLDB редактор, блока "Администрирование". Результатом работы является файл install.xml, который лежит в папке соответствующего модуля. Подробную справку по работе с XMLDB-редактором можно найти в статье Разработка:XMLDB.
    2. Чтобы сделать это с помощью функций, используйте библиотеку /htdocs/lib/ddllib.php. Пример ее использования можно найти в moodle или dof в файле upgrade.php

freedeansoffice.

  1. Установка модуля описана здесь.
  2. Со структурой модуля можно ознакомиться тут. Внимательно ознакомьтесь с ней и со структурой плагинов. Посмотрите как реализованы примеры плагинов разных типов. Чтобы все правильно работало, нужно, чтобы были соблюдены требования к наличию структуры минимального набора файлов плагина.
  3. Создайте плагин по образцу, и обратите внимание, какие методы и как надо определять, чтобы плагин корректно устанавливался и работал.
  4. Работа справочников основана на стандартных методах, которые описаны в /dof/lib/storage_base.php.
  5. Внимательно изучите файл /dof/lib/dof.php и содержащиеся в нем методы. Ими вам придется пользоваться постоянно. Например,
    1. Чтобы в каком-то модуле получить запись из таблицы, с которой работает examplest, надо написать конструкцию типа $rec = $DOF->storage('examplest')->get($id);
    2. Когда надо вывести на экран строку текста "Идет обработка данных...", который задан в модуле widgets типа modlib, то используется команда $str = $DOF->get_string('proccessing','widgets',null,'modlib');
    3. С помощью метода plugin_path вы получаете путь к файлам и папкам плагинов. Этот метод следует использовать для подключения библиотек и других подобных случаях.
    4. Метод url_im позволяет получить www-адрес странички в плагине типа im.

Вопросы для самоконтроля

Для того, чтобы убедиться, что вы в минимальной степени ориентируетесь в moodle и freedeansoffice ответьте на вопросы, написанные ниже. Если вы можете найти ответы на них, то разберетесь и с вопросами, которые возникнут в процессе работы над плагинами.

Вопросы по moodle.

  1. Какие данные хранятся в таблицах БД moodle?
  2. Где хранятся логин и пароль на доступ к БД moodle?
  3. Как перенести систему на другой компьютер/сервер, не устанавливая ее из дистрибутива?
  4. В каких таблицах хранится информация о
    1. пользователях системы?
    2. ролях?
    3. полномочиях?
    4. контекстах полномочий?
    5. оценках?
    6. курсах?
    7. элементах курсов?
    8. Какова структура папок moodle?
    9. Где лежат элементы курса?
    10. Где лежат библиотеки функций?
    11. Какие функции лежат в файлах moodlelib.php, weblib.php, dmllid.php, datalib.php
  5. В каких файлах лежат функции для работы с
    1. БД?
    2. элементами интерфейса?
    3. В каком файле лежит слово "уведомление", которое выводится в блоке "администрирование"?
  6. Как создавать таблицы через xmldb-редактор?
  7. Как писать функции обновления таблиц через xmldb?
  8. Как установить новый блок?

Вопросы по freedeansoffice.

  1. Как он устанавливается в moodle?
  2. Какова структура папок блока freedeansoffice?
  3. Какова структура папок его плагинов?
  4. Какие методы надо обязательно определять при создании плагина к dof?
  5. В каком файле лежат стандартные методы для работы с таблицами?
  6. Где лежат и как называются методы, с помощью которых
    1. выводится сообщение на экран?
    2. можно получить путь к плагину?
    3. путь к файлу внутри плагина?
    4. выводится навигационная панель?
    5. выводятся шапка и подвал страницы?
    6. выводятся блоки в модуле freedeansoffice?
  7. Каково назначение плагина ama?
    1. Как получить методы для работы с курсами, группами, пользователями?