-
Improvement
-
Resolution: Fixed
-
Major
-
2.6, 2.7
-
MOODLE_26_STABLE, MOODLE_27_STABLE
-
MOODLE_28_STABLE
-
MDL-41663-master -
For new plugins at least - it would be nice to be able to put the renderer in a class in the plugins classes folder and use a namespace instead of the full frankenstyle name for the class. Same goes for renderables - they currently can't be put in a namespace.
Current situation:
Currently we look for renderer class like this (depending on the renderer_factory):
standard_renderer_factory
(get_renderer called with $component = 'mod_assign', $subtype = 'custom', $target='ajax')
Search list:
mod_assign_custom_renderer_ajax
|
mod_assign_custom_renderer
|
theme_overridden_renderer_factory
(get_renderer called with $component = 'mod_assign', $subtype = 'custom', $target='ajax' and theme_clean inherits from theme_bootstrapbase)
Search list:
theme_clean_mod_assign_custom_renderer_ajax
|
theme_bootstrapbase_mod_assign_custom_renderer_ajax
|
mod_assign_custom_renderer_ajax
|
theme_clean_mod_assign_custom_renderer
|
theme_bootstrapbase_mod_assign_custom_renderer
|
mod_assign_custom_renderer
|
renderables
And currently renderables cannot existing in a namespace, because the class name is used in the render_xxx method of the renderer.
After this patch:
standard_renderer_factory
(get_renderer called with $component = 'mod_assign', $subtype = 'custom', $target='ajax')
Search list:
\\mod_assign\\output\\custom_renderer_ajax
|
\\mod_assign\\output\\custom_renderer
|
mod_assign_custom_renderer_ajax
|
mod_assign_custom_renderer
|
theme_overridden_renderer_factory
(get_renderer called with $component = 'mod_assign', $subtype = 'custom', $target='ajax' and theme_clean inherits from theme_bootstrapbase)
Search list:
theme_clean\\output\\mod_assign\\custom_renderer_ajax
|
theme_clean_mod_assign_custom_renderer_ajax
|
theme_bootstrapbase\\output\\mod_assign\\custom_renderer_ajax
|
theme_bootstrapbase_mod_assign_custom_renderer_ajax
|
\\mod_assign\\output\\custom_renderer_ajax
|
mod_assign_custom_renderer_ajax
|
theme_clean\\output\\mod_assign\\custom_renderer
|
theme_clean_mod_assign_custom_renderer
|
theme_bootstrapbase\\output\\mod_assign\\custom_renderer
|
theme_bootstrapbase_mod_assign_custom_renderer
|
\\mod_assign\\output\\custom_renderer
|
mod_assign_custom_renderer
|
renderables
renderables can exist in the (e.g.) \mod_assign\output\test_renderable class, and the render method on the renderer will be "render_test" (_renderable is removed).