Element Library: Difference between revisions
Damyon Wiese (talk | contribs) |
Damyon Wiese (talk | contribs) |
||
Line 32: | Line 32: | ||
A) Extend the abstract class "\core\output\renderer_test_generator_base" with a new class named "\{plugin namespace}\output\renderer_test_generator". This class needs to implement the "create_tests" function which accepts no arguments and returns a list of subclasses of "\core\output\renderer_test_base" | A) Extend the abstract class "\core\output\renderer_test_generator_base" with a new class named "\{plugin namespace}\output\renderer_test_generator". This class needs to implement the "create_tests" function which accepts no arguments and returns a list of subclasses of "\core\output\renderer_test_base" | ||
B) Implement the tests in subclasses of "\core\output\renderer_test_base" | B) Implement the tests in subclasses of "\core\output\renderer_test_base" | ||
Example... | |||
== Related links == | == Related links == | ||
* [[Render library specification]] | * [[Render library specification]] |
Revision as of 02:20, 6 June 2014
Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.
Element Library | |
---|---|
Project state | Specification |
Tracker issue | https://tracker.moodle.org/browse/MDL-45770 |
Discussion | https://moodle.org/mod/forum/discuss.php?d=261202 |
Assignee | Damyon, Sam |
The element library will be a new admin tool that will display the output from a list of renderer methods / renderables. The target users for the tool are:
- Themers, used to test all the existing renderables in a newly developed theme
- Developers, used to see an organized list of all the renderables that can be used when building new pages (and the docs for them)
The requirements for this tool are:
- Show a list of renderables / renderer methods for a specific component
- Show the same renderable / renderer method rendered with different test data
- Show designer docs on the recommended usage of a specific element
- Allow easy testing in LTR/RTL and different screen sizes
- Direct links to the documentation for renderers / renderables
Some optional requirements:
- Perform some checks on the renderer to verify it contains no db queries etc
- Responsive testing in the tool (short-cuts to adjust the window size)
- Testing with different language directions
- Report on the list of renderables used by a renderable / renderer method
This tool will work by querying a core api for getting a list of renderer_test instances from each plugin. The renderer_test is an abstract class that provides documentation and an example rendering of either a renderer method or a renderable.
How to add something to the element library (for developers)
Each "thing" in the element library - is rendered by an instance of a \core\output\renderer_test class. For a plugin (or core) to add a new "thing" they must: A) Extend the abstract class "\core\output\renderer_test_generator_base" with a new class named "\{plugin namespace}\output\renderer_test_generator". This class needs to implement the "create_tests" function which accepts no arguments and returns a list of subclasses of "\core\output\renderer_test_base" B) Implement the tests in subclasses of "\core\output\renderer_test_base"
Example...