The column description in mnet_service table is set to not null and no
value is set for the insert_record(). We must explicitly provide the
empty string if the description is not defined in db/mnet.php file.
When there was a question category whose parent had somehow been deleted from the question bank, while the child category was still there, then that gave an error because a DB query was still referring to the question_categories.courese coloumn, that was changed to contextid in moodle 1.9.
Fix thanks to Mahmoud Kassaei.
The solution is to not tidy the XML. The XML generated is already quite well laid out, and if we want it better, we should fix that, rather than trying to load the whole file into memory to reformat it.
Also, while investigating this, I found that we were not handling the mime-type of the exported file very elegantly, so I added a new mime_type method (defaults to getting the mime type of the file extension).
Major tasks undertaken in this patch:
* New format_text argument, overflowdiv.
* New page layout Report.
* Review of all format_text calls.
* Added support for the report layout to all themes.
* Changed forum post display from tables to divs.
There was a problem with properties $to, $ReplyTo and $error_count that
are now private. $error_count is accessible via public IsError() method.
For the other two, we needed them just because of post-processing charset
conversion. So I just made sure that the charset is converted before
the recipent and reply-to names are added to the PHPMailer.
Also, I do not instantiate Typo3 during every email if it is not needed
and I pass the character set to it in lower case now as stated in
textlib documentation.
The method used to be set as private in PHPdocs @access property in the
versions for PHP4. But apparenty upstream considers the function public.
Also, if the function did not declare visibility explicitly, it was
considered public anyway.
It was unnecessary on modern browsers, since they let thought a pop-up if you just clicked on a link, so this check was just causing an annoying and misleading alert.
Since the popupchecker was only used here, and since it was implemented in a way that does not work on all browsers, I just deleted the function. If anyone ever finds that they acutally need this functionality, they can re-implement it in a way that works.
The unerlying problem seemed to be too many uses of pass-by-reference in listlib, where it was not necessary.
In investigating this code, I ended up doing a fair bit of cleaning up. Apologies that it leads to an unclear changeset.