Resource module file API migration: Difference between revisions
From MoodleDocs
Matt Gibson (talk | contribs) |
|||
Line 7: | Line 7: | ||
* is IMS plug-in maintained? | * is IMS plug-in maintained? | ||
* repository plug-in obsoleted | * repository plug-in obsoleted | ||
* embedded images are lost during backup & restore which moves the course to a new site. -- [[User:Matt Gibson|Matt Gibson]] 08:53, 18 May 2009 (UTC) | |||
=Types of resources= | =Types of resources= |
Revision as of 08:53, 18 May 2009
Moodle 2.0
Current problems
- text and html resource types separate
- embedded images and files in general are stored in course files without appropriate access control
- local files and Internet links mixed
- is IMS plug-in maintained?
- repository plug-in obsoleted
- embedded images are lost during backup & restore which moves the course to a new site. -- Matt Gibson 08:53, 18 May 2009 (UTC)
Types of resources
- Directory of files
- Resource page - using new editor element
- External resource link - some file stored elsewhere
- Single uploaded images and files
- Packages and uploaded html files
- Other 3rd party plugins
Upgrade planning
Each type requires different upgrade code.
Directory type
- Recursively copy directory to resource area, skip backup and moddata contents
Text and web page
- Convert to one plug-in using new editor forms element
- Copy directly linked files that may not contain other relative links to resource area
- PROBLEM: deal somehow with html, flash, and java; maybe just warn and manual migration button
Links to files
- Links to external sites do not need any upgrade
- If link points to simple file (image, sound, pdf.) copy to resource area
- PROBLEM: links to different courses - already problem now, maybe just warn teachers
- PROBLEM: links to files that may contain other relative links (html, flash, java)
IMS type
- copy files to resource area
hive
- PROBLEM: remove from core completely?
3rd party
- needs docs
Solution of caching problems
Teachers often do not understand that files may be cached in browsers, se the same mechanism already implemented in SCORM module.
- Internally store all files as itemid=0
- Add new revision db field into resource table
- When serving files always construct links with itemid==revision
- Ignore itemid for resource files in pluginfile.php
Internal refactoring and UI changes
...
See also
- Using the file API
- Repository API
- Portfolio API
- File API
- MDL-14589 - File API Meta issue
- MDL-16089 - Resource module conversion