Development:Blocks: различия между версиями

Материал из MoodleDocs
Перейти к:навигация, поиск
Нет описания правки
Строка 88: Строка 88:
<?php use_html_editor(); ?>
<?php use_html_editor(); ?>
</code>
</code>
Легко увидеть, что код выше предоставляет нам визуальный редактор текста для нашего блока с кнопкой сохранения. Мы можем обращаться к свойствам класса как <tt>$this->config->свойство</tt> и менять их из конфигурационной формы.


== См. также ==
== См. также ==

Версия от 17:02, 9 апреля 2010

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

Автор источника: 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   = 'Здороваемся с Миром :)';
   $this->content->footer = 'Завершающий вывод...';

   return $this->content;
 }

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

Давайте проанализируем этот метод, чтобы увидеть, что происходит.

Прежде всего, мы должны произвести вывод $this->content только в том случае, если оно не равно NULL, в противном случае сформируем content. Это делается для экономии ресурсов и ускорения обработки блоков. Мы можем выводить HTML как в text, так и в footer.

На этом этапе наш блок уже может быть автоматически установлен в систему Moodle. Открываем страницу администратора, нажимаем Уведомления в блоке Администрирование и наш блок появляется на главной странице.

Конфигурирование

Для того чтобы блок не был "мертвым" необходимо обеспечить возможность пользователям (участникам системы) настраивать содержимое блоков. Для того чтобы добавить в наш блок возможность конфигурирования необходимо добавить в него еще один метод:

function instance_allow_config() {

 return true;

}

Этого достаточно для того чтобы в системе Moodle появился пункт (иконка) "Настроить" для нашего блока. Но если вы попробуете его настроить у вас ничего не получится, нам необходимо описать что и как конфигурировать. Для этого нам необходимо создать еще один файл /blocks/simplehtml/config_instance.html (должен называться именно так) с следующим содержанием:

      <?php print_string('configcontent', 'block_simplehtml'); ?>:
      <?php print_textarea(true, 10, 50, 0, 0, 'text', $this->config->text); ?>
     <input type="submit" value="<?php print_string('savechanges') ?>" />

<?php use_html_editor(); ?>

Легко увидеть, что код выше предоставляет нам визуальный редактор текста для нашего блока с кнопкой сохранения. Мы можем обращаться к свойствам класса как $this->config->свойство и менять их из конфигурационной формы.

См. также

  • 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


Ссылки