The problem was in the order of the content preparing. Now when the
filters are always skipped (they have to) we must always run
format_text() first. That will prepare nice HTML in which we just
rewrite the portfolio URIs.
Note that we are still calling clean_text() so that we do not export
malicious code for portfolios like File download. In the future, this
may be changed, made format specific or even per-export configurable.
As a side product of the patch, I have re-enabled online assignment
portfolio export and switched $options->para to false consistently.
The display mode selector is supposed to display in the middle of the
row. Move discussion selector should be on the right, portfolio export
selector on the left. Thanks Sam Marshall for the report and testing the
patches.
The API of the function forum_print_posts_threaded() was changed in
63e87951e6 but this call was not updated.
This led to not displaying other replies when replying to a forum post.
Filters can replace text with images (smilies, temporary TeX images
etc.), links to glossaries or databases or embedded media players.
Therefore it is important to disable filter processing during portfolio
export.
There was a mistake in the text format upgrade in the question bank. The wrong conversions were performed, and the wrong arguments were passed to text_to_html in the conversions that were done.
Also, not all the calls to format_text had been updated to use the values in the new format columns.
I think this change fixes everything, but I have only had very limited time to test it. I am committing it anyway, because that seems to me to be the best way to maximise testing. I think that the new code is certainly better than the old code was.
During the portfolio export, portfolio_rewrite_pluginfile_urls() must be
called before format_text(). Otherwise some filters can interfere with
internal raw record syntax. For example, the Algebra Notation uses @@
for its own purposes and it used to break @@PLUGINFILE@@ placeholder.
As reported by Trudy Koedooder at http://moodle.org/mod/forum/discuss.php?d=161322
there can be some orphaned grade records without the referenced
assessment. It threw upgrade error. Such grades are now just ignored
during the upgrade.