Создание нового блока в 2.2

Создание нового блока в 2.2

от Матвей Беляков -
Количество ответов: 18

Все добрый день!

Поставилась задача один новый блок написать для Moodle. Нашёл данное руководство:

http://docs.moodle.org/archive/ru/Development:Blocks

Но он для версии 1.9. Для 2.2 есть серьёзные изменения??

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Tabunshchik -
Изображение пользователя Developers
В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

Спасибо большое, а на русском языке подобной документации не существует??

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Павел Кедало -
В ответ на Павел Кедало

Re: Создание нового блока в 2.2

от Виталий Апраксин -
В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

Начал создавать блок-пример block_simplehtml и уже на 3-ем шаге возникли ошибки (при добавлении блока в moodle).

Вроде всё делал по инструкции, правда с английским у меня не особо)

Создал 3 PHP-файла, так как файл access.php для версии moodle 2.4 только, а у меня 2.2.

Файл block_simplehtml.php прикрепил к сообщению.

Ошибка

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Tabunshchik -
Изображение пользователя Developers

Создал 3 PHP-файла

Какие?
version.php есть среди них? Что в нем написано? Эти строки обязательны:

$plugin->version = 2011062800;  // YYYYMMDDHH (year, month, day, 24-hr time)
$plugin->requires = 2010112400; // YYYYMMDDHH (This is the release version for Moodle 2.0)

ИМХО, ваша ошибка связана с несоответствием версии блока и системы, написано же: "Плагин…устаревший." Посмотрите версии в "родных" блоках своего сайта и укажите те же числа в version.php

ЗЫ: где РНР-шные теги (<?php) в block_simplehtml.php? улыбаюсь

В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

А как использовать русский язык в блоке? Добавил в папке lang папку ru и там создал языковой файл с употреблением русского шрифта. Обновил блок путём исправления версии блока. Но русский шрифт не отображается(

Прикрепил файл block_simplehtml.php , находящийся в папке lang/ru

Шрифт

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Tabunshchik -
Изображение пользователя Developers

Русский языковый файл должен быть в кодировке UTF-8. У Вас он Кириллица (Windows).

В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

Почему-то созданный мною блок я теперь никуда не могу добавить на страницу, кроме страниц Администрирования. Т.е. на главной странице, если выбрать "Добавить блок...", то в списке вариантов блока его просто нет. А на любой странице администрирования этот блок появляется...

Не знаете с чем это связано?

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Матвей Беляков -

Удалил блок, затем заново установил и появилась возможность добавить его на главную страницу. Но добавить ещё один такой блок на главную страницу не получается, хотя функцию instance_allow_multiple() я указал. Да и вообще потом опять никуда кроме страниц Администрирования блок добавить не удаётся...

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Tabunshchik -
Изображение пользователя Developers

Сам файл покажите, я же на расстоянии не могу посмотреть, что Вы там написали. улыбаюсь

функцию instance_allow_multiple() я указал

Вот прям так и написали?

    function instance_allow_multiple() {
        return true;
    }

если выбрать "Добавить блок...", то в списке вариантов блока его просто нет.

Напишите как Вам нужно функцию applicable_formats

return array('site' => true); - только на гл. стр. сайта
return array(
'course-view' => true,
'course-view-social' => false); во всех курсах, за исключением формата social
И так далее
В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

Прям так и написал))

Указал функцию applicable_formats

return array('site' => true);

Но всё равно добавление на главную страницу не появилось...

Добавил php-файл

 

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Tabunshchik -
Изображение пользователя Developers
  1. Мне кажется, чтобы изменения в коде блока срабатывали, его нужно удалять и заново устанавливать (для очистки БД от следов блока).
  2. Определитесь, где нужен блок (справку почитайте) и соотв-нно укажите в applicable_formats, или  удалите эту функцию, тогда блок будет доступен на любой странице, или напишите return array('all' => true); (то же самое, везде доступен)

 

В ответ на Vadim Tabunshchik

Re: Создание нового блока в 2.2

от Матвей Беляков -

И удалял, и заново ставил, и писал return array('all' => true), и вообще без функции applicable_formats оставлял, но всё равно добавить блок могу только на страницах Администрирования!

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Матвей Беляков -

Ого! Разобрался в чём проблема) На других страницах кроме администрирования при открытии выпадющего списка добавления блоков показывается 19 первых возможных вариантов блоков + запись "Добавить". Таким образом moodle просто не показывает те блоки, которые расположены ниже 19-ого возможного блока, а мой новый созданный блок как раз расположен в самом низу списка возможных блоков)

Только как обойти это ограничение?

В ответ на Матвей Беляков

Re: Создание нового блока в 2.2

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

То, что список блоков закончился именно на вас, говорит о том, что, возможно, именно на вашем блоке произошла какая-то ошибка, которая не дала пройти дальше по списку. Включите в настройка - разработка - отладка максимальный уровень отладки и вывод сообщений в html, возможно увидите много нового.