Development:Blocks

Материал из MoodleDocs
Перейти к:навигация, поиск


Пошаговое руководство по созданию блоков

Автор источника: Jon Papaioannou (pj@moodle.org)

Данное руководство предназначено для разработчиков которые работают над своими блоками для Moodle. Руководство написано для версии Moodle 1.5 но постоянно обновляется.

Введение

Блоки - это стандартные контейнеры для отображения виджетов на страницах Moodle. В этом руководстве мы рассмотрим несуществующий блок "SimpleHTML". Подразумевается, что вcе пути начинаются из домашней директории Moodle.

Здравствуй Мир

Для создания блока в Moodle в большинстве случаев достаточно написать один скрипт. Для начала в директории blocks/имя_блока/ создаем наш скрипт имя_блока. Например если наш блок будет носить имя simplehtml, путь к скрипту будет иметь вид /blocks/simplehtml/block_simplehtml.php. Теперь начнем писать сам код:

<?php class block_simplehtml extends block_base {

 function init() {
   $this->title   = get_string('simplehtml', 'block_simplehtml');
   $this->version = 2004111200;
 }
• • •
// Здороваемся с Миром :)
• • •

}

Сначала мы объявляем класс, он должен обязательно объявлятся таким образом как показано, т. к. является расширением автоподключаемого класса, который находиться в файле /blocks/moodleblock.class.php В дальнейшем мы можем (и даже должны) изменять только часть simplehtml, все остальное является стандартным и стандартизированным.

Первый метод в нашем классе init(), он обязательный для всех блоков и служит для определения двух методов. Рассмотрим их более подробно.

  • $this->title это заголовок, отображаемый в строке заголовка нашего блока. Мы можем назвать его как угодно. В нашем случае мы берем заголовок из языкового файла, который прилагается к нашему блоку. Более подробно мы рассмотрим этот метод позже. Если вы хотите использовать блок без заголовка, назначьте методу любое значение но не пустую строку! Далее мы рассмотрим как отключить отображение заголовка.
  • $this->version это версия нашего блока. Используется скриптом обновления (англ. upgrade script

nu i??). В нашем случае мы установили версию как дату ГГГГММДД00, для простоты.

Вывод

Для того чтобы наш блок мог что-то отображать, нам необходимо добавить метод(ы), который будет осуществлять вывод:

 function get_content() {
   if ($this->content !== NULL) {
     return $this->content;
   }
   $this->content         =  new stdClass;
   $this->content->text   = 'Содержимое нашего SimpleHTML блока!';
   $this->content->footer = 'Завершающий вывод...';

   return $this->content;
 }

} // Конец класса ?>

См. также

  • Developer FAQ – часто задаваемые вопросы, особенно полезны для новичков Moodle
  • Moodle tracker - bug доклады, специальные вопросы и другие виды выходов
  • General developer forum
  • CVS code – просмотр кодов Moodle через web
  • Cross reference - phpxref – выход для просмотра ресурсов кода в Moodle
  • Moodle PHP doc reference – автоматически производимая документация
  • Database Schema – для новых публикаций
  • Development news and discussion раздел курса Moodle Using
  • YUI documentation - YUI официальная AJAX библиотека в Moodle.
  • Setting up Eclipse for Moodle development - Eclipse грандиозное издание для проявления php навыков, если Вы если вы сможете выработать план установки .
  • Unmerged files – изменение устойчивого направления в CVS которое может быть не совместимо с HEAD


Ссылки