Note:

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

User:Frank Ralf/NanoGong: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Java settings ==
{{Back from dev}}
(Not sure if this is relevant, but better to keep in mind ...)
* see [[Question type plugin how to#Configuration settings for your question type]]


== Filter ==
--[[User:Frank Ralf|Frank Ralf]] 00:57, 16 August 2011 (WST)
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:
 
<code php>
$string['filtername'] = 'NanoGong';
</code>
 
[[File:Nanogong filter folder structure.png]]
 
=== Filter function ===
 
The filter function is wrapped inside a class:
<code php>
class filter_nanogong extends moodle_text_filter {
    function filter($text, array $options = array()){
    ...
    }
}
</code>
 
'''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:
 
<code php>
<nanogong
    caption="Testing NanoGong..."
    url="http://localhost/moodle-MOODLE_20_WEEKLY/pluginfile.php/130/mod_resource/content/1/sentence.wav"
/>
</code>
 
* As the URL is already in its full format I just commented out the following lines in '''filter.php'''.
 
<code php>
if ($url != "") {
    if ($CFG->slasharguments)
        $url; # = "{$CFG->wwwroot}/file.php$url";
    else
        $url; # = "{$CFG->wwwroot}/file.php?file=$url";
}
</code>
 
* This works as a proof of concept.
 
==== Getting closer ... ====
 
This modification does also work:
 
; NanoGong tag
<code php>
<nanogong
    caption="Testing NanoGong..."
    url="/130/mod_resource/content/1/sentence.wav"
/>
</code>
 
; filter.php
<code php>
if ($url != "") {
    if ($CFG->slasharguments)
        $url = "{$CFG->wwwroot}/pluginfile.php$url";
    else
        $url; # = "{$CFG->wwwroot}/file.php?file=$url";
}
</code>
 
==== 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
* see [[User:Frank Ralf/NanoGong/1.9|subpage on 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
* [http://moodle.org/mod/forum/discuss.php?d=170422 Release of NanoGong 4.1, an important update for Moodle users]
* [http://moodle.org/mod/forum/discuss.php?d=174922 NanoGong in Moodle 2.xxx]
 
; Moodle plugin database
* [http://moodle.org/mod/data/view.php?d=13&mode=list&perpage=50&search=&sort=44&order=ASC&advanced=0&filter=1&advanced=1&f_44=&f_45=nanogong all NanoGong plugins]
 
; NanoGong documentation
* http://gong.ust.hk/nanogong/moodle.html
* http://gong.ust.hk/nanogong/info_php.html
* [http://gong.ust.hk/moodle/course/view.php?id=2 Gong and NanoGong Demonstration]
 
[[Category:Moodle 2.0|NanoGong]]

Latest revision as of 16:57, 15 August 2011

Note:

Please see the original page at https://docs.moodle.org/20/en/User:Frank_Ralf/NanoGong - thanks!


--Frank Ralf 00:57, 16 August 2011 (WST)