Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Element Library: Difference between revisions

From MoodleDocs
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...

Related links