OutputtingHTML - mudrd8mz/moodle-dev-chronicles GitHub Wiki
"Web programming is the science of coming up with increasingly complicated ways of concatenating strings." -- Greg Brockman
At the lowest code level, Moodle uses
echo
to output a text string. Today it
is a common syntax to use this language construct as if it was a function - with
parentheses - and with a single parameter.
echo('<h1>It works!</h1>');
We do not use print
in Moodle.
Not every content can be sent directly to the browser via echo()
, mostly for security
reasons. Moodle core libraries provide some output formatting helpers. Rough guideline
for when to use which helper follows:
+--------------+
No | Should it | Yes
+--------| support HTML |-------+
| +--------------+ |
| |
v v
+-------------------+ +-----------------+
| Should it support | | Does it contain |
No | multilanguage and | Yes | user content? |
+---| other filters? |---+ +-----------------+
| +-------------------+ | No | | Yes
| | | |
v v v v
+-----+ +-----------------+ +--------+ +-------------+
| s() | | format_string() | | echo() | | Should it |
+-----+ +-----------------+ +--------+ | support JS? |
HTML tags Activity titles, Help strings +-------------+
attributes forum post subjects, | |
book chapter titles No | Yes |
| |
v v
+---------------+ +---------------+
| format_text() | | format_text() |
| noclean=false | | noclean=true |
+---------------+ +---------------+
Forum post Page recourse
content content, activity
descriptions