Development:Interface guidelines
Note: This article is a work in progress. Please use the page comments or an appropriate moodle.org forum for any recommendations/suggestions for improvement.
This document is not authoritative, it is a collection of ideas and under construction.
See also: Development:Usability
Keeping it simple
Use the minimum interface required to get the job done. Order the elements by contexts. Give the user a strong orientation where the places are to do several things.
Standard pages
Activity modules
- index.php - lists all instances for that module in a course
- view.php - displays a particular instance
- config.html - configure an instance of the module
Blocks
- config.html - configure an instance of the block
One script per major function/page
...
Page layout
- Print headings with print_heading, use the CSS hooks for IDs and Classes
- Print boxes around text using print_simple_box, use the CSS hooks for IDs and Classes
Form layout
- Show the more important settings at the top
- Each entry should have a label, and if necessary, a help file
- If there are more than 10 options, split them into required and optional/extra/advanced parameters
Dealing with tables
Use the print_table function whenever possible.
See:
The information that was here has been incorporated to those pages
URLs
Buttons vs links
See: Development:Button and Development:Link
The information that was here has been integrated to those documents.
Language strings
- Use your own language strings in a separate file. Don't use existing language files from moodle.php or other lang files. So translators can translate in the contexts in different ways as terms are used in the special learning culture.
CSS naming
- Don't add font, color or layout definitions in code. This belongs to CSS theme files.
- See theme standards
Linking to help
- Help buttons should be on the right of the thing (as an exception it can be left, if the thing is right-aligned)
Related topics
Robin Good's Latest News. "Interaction Design Meets Online Real Estate" 1 Mar. 2005 http://www.masternewmedia.org/news/2005/03/01/interaction_design_meets_online_real.htm
The article presents a view of virtual spaces with the focus on human actions. It reminded me of communicative approaches like Moodle. The interface serves as the handle of all the communication tools.