- file_info class now has new methods get_non_empty_children and count_non_empty_children; added default implementation;
- all core classes extending file_info have their implementation of those methods;
- class repository_local_file used for caching get_children() results is removed;
- class repository_local rewritten to use new methods from file_info;
- added caching of retrieved modules in file_browser::get_file_info_context_module() - this query is slow and executed multiple times on big servers
Portfolios are not officially supported in Database module yet. But this
missing library inclusion is a coding error because the class defined in
the library is already used in the code.
This means for places in Moodle that are going to write a file, like a
CSV file, they can set the intended mimetype of the generated file.
Previously you had to use a stored_file object.
This also gets rid of portfolio_fake_add_url function and replaces the
data module implementation with a button. I also refactored
portfolio_add_button::to_html to use moodle_url so it's easy to return
the same parameters to hidden form fields, an escaped url (for a link),
and a non escaped url (to redirect to, which is what the data module
does)
this involves moving all formslib includes to where they're actually needed.
it also moves the portfolio stuff from assignment,data,chat,forum and glossary
into a locallib.php which involved creating it for many of those modules.