Java settings
(Not sure if this is relevant, but better to keep in mind ...)
Filter
General information on filters in Moodle 2.0 can be found at Filters 2.0 and for developers at Filters 2.0.
Language folder
Add language folder: \lang\en\ and put filter_nanogong.php file with the following content there:
$string['filtername'] = 'NanoGong';
File:Nanogong filter folder structure.png
Filter function
The filter function is wrapped inside a class:
class filter_nanogong extends moodle_text_filter {
function filter($text, array $options = array()){
...
}
}
Note: The callback function has to be outside this class definition!
Preventing caching
$CFG->currenttextiscacheable = false;
is deprecated, outcommented
File API
Proof of concept
- Instead of the old file.php the new File API uses pluginfile.php.
- I uploaded a test file (sentence.wav) as a resource to find out the internal URL Moodle uses for serving this file.
- I then added this full URL as attribute to the NanoGong tag:
<nanogong
caption="Testing NanoGong..."
url="http://localhost/moodle-MOODLE_20_WEEKLY/pluginfile.php/130/mod_resource/content/1/sentence.wav"
/>
- As the URL is already in its full format I just commented out the following lines in filter.php.
if ($url != "") {
if ($CFG->slasharguments)
$url; # = "{$CFG->wwwroot}/file.php$url";
else
$url; # = "{$CFG->wwwroot}/file.php?file=$url";
}
- This works as a proof of concept.
Getting closer ...
This modification does also work:
- NanoGong tag
<nanogong
caption="Testing NanoGong..."
url="/130/mod_resource/content/1/sentence.wav"
/>
- filter.php
if ($url != "") {
if ($CFG->slasharguments)
$url = "{$CFG->wwwroot}/pluginfile.php$url";
else
$url; # = "{$CFG->wwwroot}/file.php?file=$url";
}
Documentation
- see File API and Using the File API
- File_API#File_serving
- Using_the_file_API#Serving_files_to_users
- File_storage_conversion_Quiz_and_Questions#Serving_files
See also
- Necessary updating for Moodle 1.9
- Migrating to Moodle 2.0
- Migrating contrib code to 2.0
- Migrating to 2.0 checklist
- Migrating contrib code to 2.0/Experience of converting a module to Moodle 2
- Forums
- Moodle plugin database
- NanoGong documentation