Можно ли как-то переопределять функции ядра Moodle? Имеется в виду не переопределение функций рендеринга, а например функции get_courses() в файле course/classes/category.php.
Переопределение функций ядра Moodle
Number of replies: 5Re: Переопределение функций ядра Moodle
Переопределить можно, но с точки зрения идеологии разработки надо делать наследование класса core_course_category, в нем переопределять и работать там, где надо со своим классом.
Re: Переопределение функций ядра Moodle
а как это правильно сделать? Допустим, я добавил свою тему сайта. С наследованием классов core_renderer и core_course_renderer к примеру я разобрался: создал файл theme/mytheme/classes/output/core_renderer.php и в нем использовал конструкцию class theme_mytheme_core_renderer extends \core_renderer {}, затем использовал require_once($CFG->dirroot . "/course/renderer.php"); и наследовал класс core_course_renderer с помощью конструкции class theme_mytheme_core_course_renderer extends \core_course_renderer {}.
я могу в файле theme/mytheme/classes/output/core_renderer.php с помощью require_once подключить файл course/classes/category.php и наследовать класс core_course_category? или для этого в папке theme/mytheme/classes лучше создать отдельный файл?
я могу в файле theme/mytheme/classes/output/core_renderer.php с помощью require_once подключить файл course/classes/category.php и наследовать класс core_course_category? или для этого в папке theme/mytheme/classes лучше создать отдельный файл?
Re: Переопределение функций ядра Moodle
На уровне темы наверно без разницы. Если только одну функцию класса менять, то кода немного и в theme/mytheme/classes/output/core_renderer.php будет более понятно.
В отдельный файл стоит вынести, если еще будете блоки или плагины переписывать (если в них нужен свой get_courses()).
А чем системная функция не устраивает?
В отдельный файл стоит вынести, если еще будете блоки или плагины переписывать (если в них нужен свой get_courses()).
А чем системная функция не устраивает?
Re: Переопределение функций ядра Moodle
"А чем системная функция не устраивает?" - возникла необходимость доработать в данной функции условия формирования sql-запроса для выборки курсов в соответствии с нуждами клиента.
Re: Переопределение функций ядра Moodle
А не разобрались случайно, зачем в рендеринге такая конструкция core_course_category::get(0)->get_courses()
Т.е статический метод класса возвращает экземпляр объекта этого же класса. Почему просто не создается экземпляр объекта?
Т.е статический метод класса возвращает экземпляр объекта этого же класса. Почему просто не создается экземпляр объекта?