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

Содержимое удалено Содержимое добавлено
оформление
Строка 16:
Для создания ''блока'' в Moodle в большинстве случаев достаточно написать один скрипт. Для начала в директории <tt>blocks/имя_блока/</tt> создаем наш скрипт <tt>''имя_блока''</tt>. Например если наш блок будет носить имя <tt>''simplehtml''</tt>, путь к скрипту будет иметь вид <tt>/blocks/simplehtml/'''block_simplehtml.php'''</tt>. Теперь начнем писать сам код:
 
<code php>
<?php
class block_simplehtml extends block_base
Строка 41:
Для того чтобы наш блок мог что-то отображать, нам необходимо добавить метод<span style="color:grey;">(ы)</span>, который будет осуществлять вывод:
 
<code php>
function get_content()
{
Строка 160:
Иногда в рамках одного курса необходимо использовать несколько одинаковых блоков <span style="color:grey; font-size:x-small;">''(одного типа)''</span>. Обеспечить возможность включения нескольких блоков на одной странице в moodle очень легко. Для этого необходим еще один короткий метод:
 
<code php>
function instance_allow_multiple()
{
Строка 175:
Если в '''moodle''' существует возможность [[#Множественные включения|множественного включения]] однотипных блоков, то разумно обеспечить возможность определения общих настроек для всех блоков одного типа. Для этого существует отдельные ''метод''.
 
<code php>
function has_config()
{
Строка 184:
Для этого метода необходим соответствующий файл для отображения самих настроек, он должен называться ''/blocks/simplehtml/config_global.html''. В нашем случае в нем будет одна опция ''«разрешить HTML»'':
 
<code php>
<div style="text-align: center;">
<input type="hidden" name="block_simplehtml_strict" value="0" />
Строка 207:
Есть более сложный способ получить и сохранить конфигурационные данные. Он реализуется с помощью метода ''config_save()'', синтаксис которого показан ниже:
 
<code php>
function config_save($data)
{
Строка 221:
Как мы можем видеть метод перебирает все значения ассоциативного массива ''$data'', который содержит значения всех переменных из обрабатываемой формы. Если мы хотим обойтись без одноименных полей в форме, то обрабатывающий скрипт будет выглядеть так:
 
<code php>
function config_save($data)
{
Строка 244:
Если у нас есть несколько однотипных блоков, то мы можем задать для них глобальные свойства. А как сохранить конфигурацию каждого из них? Для этого существует метод ''instance_config_save()'' который по умолчанию выглядит так:
 
<code php>
function instance_config_save($data)
{
Строка 259:
В нашем случае, если мы хотим предварительно обработать данные перед записью, мы можем использовать такую конструкцию:
 
<code php>
function instance_config_save($data)
{
Строка 282:
Для начала, мы можем создать блок вообще без заголовка. Для этого используется следующий метод:
 
<code php>
function hide_header()
{
Строка 295:
Для того чтобы сообщить Moodle предпочитаемую ширину для нашего блока, используется следующий метод:
 
<code php>
function preferred_width()
{
Строка 305:
Все блоки заключены в &lt;div&gt; <span style="color:grey; font-size:x-small;">(&lt;table&gt; в более старых версиях)</span> контейнеры, атрибуты и CSS свойства которых мы можем изменять. Целесообразнее для блока создать CSS класс и прописать селектор с свойствами в CSS файле темы Moodle. Для этого нам необходимо использовать соответствующий метод, который возвращает ассоциативный массив атрибутов и значений:
 
<code php>
function html_attributes()
{
Строка 319:
=== полезные примеры ===
 
<code php>
function html_attributes()
{
Строка 329:
Мы можем переписать (перегрузить) этот метод так, чтобы кроме добавления своих атрибутов, сохранить старые (стандартные):
 
<code php>
function html_attributes()
{
Строка 343:
Трудно представить себе блок который был бы полезен во всех случаях, на всех страницах Moodle. Поэтому Moodle позволяет определить на каких страницах, в рамках каких курсов показывать блок. Для этого используется специальный метод, который возвращает ассоциативный массив ключи которого задают формат страниц, а значения (''true/false'') определяют показывать блок или нет:
 
<code php>
function applicable_formats()
{
Строка 363:
Мы можем использовать столько шаблонов, сколько захотим. Каждый шаблон может запрещать или разрешать отображение блока.
 
<code php>
function applicable_formats()
{