tel8618217223380 / oasychev-moodle-plugins

Automatically exported from code.google.com/p/oasychev-moodle-plugins
0 stars 0 forks source link

Унаследоваться от класса plugininfo #275

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
По-моему нужно объявить унаследованный 
класс от класса plugininfo, в котором 
описываются свойства плагина (как минимум, 
что плагин является удаляемым).
Иначе невозможно удалить ни supervisedblock ни 
supervisedcheck со страницы администрирования.
http://screencast.com/t/Dp3bz0zE0

Это нововведение последних версий Moodle - 
2.5/2.6. На старой версии Moodle я мог удалить 
плагин.
http://docs.moodle.org/dev/Subplugins#plugininfo_class

Да и наверное логично было бы удалять ВСЕ 
таблицы и связанные с плагином данные при 
его деинсталляции.

Original issue reported on code.google.com by ushakov....@gmail.com on 30 Mar 2014 at 1:02

GoogleCodeExporter commented 9 years ago

Original comment by ushakov....@gmail.com on 30 Mar 2014 at 1:02

GoogleCodeExporter commented 9 years ago
Хотя вообще это относится к subplugins, а не к 
плагинам и написано
Sub-plugins are supported in following plugin types:
- activity modules
- html editors (since 2.4)
- local plugins (since 2.6)
- admin tools (since 2.6)

Т.е. по идее к блокам и accessrules отношения это 
не имеет...

Конкретно для supervisedcheck вызывается метод 
is_uninstall_allowed из абстрактного класса base - 
lib\classes\plugininfo\base.php, возвращающий false (весь 
метод - одна строчка return false). Поэтому плагин 
не удаляется. Не пойму - нужно ли для 
плагинам наследоваться от plugininfo и 
переопределять метод или нет...

Проверьте пожалуйста на деплое - есть ли 
напротив наших плагинов Uninstall на странице 
администрирования? Может это у меня глюк 
такой..

Скачал рандомный блок под 2.6 с moodle.org, не 
вижу в нем никакого наследования, но 
удалить его можно...

Original comment by ushakov....@gmail.com on 30 Mar 2014 at 1:41

GoogleCodeExporter commented 9 years ago
Посмотреть смогу на следующий вечер - 
сегодня не за тем компом; но раньше кнопки 
удаления (uninstall) находились в перечнях 
конкретных видов плагинов (блоков, и т.д.) - а 
не в общем их списке.

quiz access rule это определенно subplugin, блок - нет.

Original comment by oasyc...@gmail.com on 30 Mar 2014 at 3:40

GoogleCodeExporter commented 9 years ago
А о каком классе идет речь - о классе 
правила или отдельный класс надо 
создавать? И все-таки создается он в каждом 
плагине или для вида плагинов как такового? 
Попробуйте установить какое-нибудь уже 
выложенное access rule - их там два есть - оно 
будет удаляться? Вроде было такое, у кого 
maintainer - Tim Hunt - это точно будет сделано все, 
что можно.

Потому что если надо это для вида плагинов 
делать, то это мудловские проблемы, надо 
Тиму будет писать баг на трекере.

Original comment by oasyc...@gmail.com on 30 Mar 2014 at 5:19

GoogleCodeExporter commented 9 years ago
Насколько я понял, создается для вида 
плагинов. Для всех quiz access rules есть 
mod\quiz\classes\plugininfo\quizaccess.php. В нем:
class quizaccess extends base {
    public function is_uninstall_allowed() {
        return false;
    }
}

Исправить на true - будет можно удалять эти 
самые правила...

Устанавливал Honesty check, он также не удаляется.

Original comment by ushakov....@gmail.com on 30 Mar 2014 at 6:07

GoogleCodeExporter commented 9 years ago
Что-то странное ответил Тим...
https://moodle.org/mod/forum/discuss.php?d=257346

Original comment by ushakov....@gmail.com on 30 Mar 2014 at 6:20

GoogleCodeExporter commented 9 years ago
Тим то ли не включился, то ли 
заморачиваться не хочет. Я задал ему вопрос 
прямым текстом - увидим.
Но в любом случае раз не в плагине, а для 
вида - это не наша проблема. В рамках 
правила она не решается.

Original comment by oasyc...@gmail.com on 30 Mar 2014 at 7:30

GoogleCodeExporter commented 9 years ago
Проблема не наша

Original comment by oasyc...@gmail.com on 3 Apr 2014 at 10:13