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

Issue #275 wontfix
Former user created an issue

Originally reported on Google Code with ID 275

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

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

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

Reported by ushakov.andrey.34 on 2014-03-30 13:02:26

Comments (8)

  1. Former user Account Deleted

    Reported by ushakov.andrey.34 on 2014-03-30 13:02:54 - Labels added: Component-UnderSupervision

  2. Former user Account Deleted
    Хотя вообще это относится к 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, не вижу в нем никакого наследования, но
    удалить его можно...
    

    Reported by ushakov.andrey.34 on 2014-03-30 13:41:48

  3. Oleg Sychev repo owner
    Посмотреть смогу на следующий вечер - сегодня не за тем компом; но раньше кнопки удаления
    (uninstall) находились в перечнях конкретных видов плагинов (блоков, и т.д.) - а не
    в общем их списке.
    
    quiz access rule это определенно subplugin, блок - нет.
    

    Reported by oasychev on 2014-03-30 15:40:13

  4. Oleg Sychev repo owner
    А о каком классе идет речь - о классе правила или отдельный класс надо создавать? И
    все-таки создается он в каждом плагине или для вида плагинов как такового? Попробуйте
    установить какое-нибудь уже выложенное access rule - их там два есть - оно будет удаляться?
    Вроде было такое, у кого maintainer - Tim Hunt - это точно будет сделано все, что можно.
    
    Потому что если надо это для вида плагинов делать, то это мудловские проблемы, надо
    Тиму будет писать баг на трекере.
    

    Reported by oasychev on 2014-03-30 17:19:05

  5. Former user Account Deleted
    Насколько я понял, создается для вида плагинов. Для всех quiz access rules есть mod\quiz\classes\plugininfo\quizaccess.php.
    В нем:
    class quizaccess extends base {
        public function is_uninstall_allowed() {
            return false;
        }
    }
    
    Исправить на true - будет можно удалять эти самые правила...
    
    Устанавливал Honesty check, он также не удаляется.
    

    Reported by ushakov.andrey.34 on 2014-03-30 18:07:31

  6. Former user Account Deleted
    Что-то странное ответил Тим...
    https://moodle.org/mod/forum/discuss.php?d=257346
    

    Reported by ushakov.andrey.34 on 2014-03-30 18:20:17

  7. Oleg Sychev repo owner
    Тим то ли не включился, то ли заморачиваться не хочет. Я задал ему вопрос прямым текстом
    - увидим.
    Но в любом случае раз не в плагине, а для вида - это не наша проблема. В рамках правила
    она не решается.
    

    Reported by oasychev on 2014-03-30 19:30:13

  8. Oleg Sychev repo owner
    Проблема не наша
    

    Reported by oasychev on 2014-04-03 10:13:28 - Status changed: WontFix

  9. Log in to comment