Merge branch 'MDL-26607_search_error' of git://github.com/andyjdavis/moodle
authorSam Hemelryk <sam@moodle.com>
Mon, 21 Mar 2011 03:54:20 +0000 (11:54 +0800)
committerSam Hemelryk <sam@moodle.com>
Mon, 21 Mar 2011 03:54:20 +0000 (11:54 +0800)
881 files changed:
admin/bloglevelupgrade.php
admin/cli/install.php
admin/cli/upgrade.php
admin/generator.php [changed mode: 0755->0644]
admin/index.php
admin/langimport.php [changed mode: 0755->0644]
admin/process_email.php [changed mode: 0755->0644]
admin/replace.php
admin/report/spamcleaner/index.php [changed mode: 0755->0644]
admin/report/unittest/coveragefile.php [changed mode: 0755->0644]
admin/roles/allow.php [changed mode: 0755->0644]
admin/roles/assign.php [changed mode: 0755->0644]
admin/roles/check.php [changed mode: 0755->0644]
admin/roles/define.php [changed mode: 0755->0644]
admin/roles/lib.php
admin/roles/manage.php [changed mode: 0755->0644]
admin/roles/managetabs.php [changed mode: 0755->0644]
admin/roles/override.php [changed mode: 0755->0644]
admin/uploaduser.php [changed mode: 0755->0644]
admin/uploaduser_form.php
admin/uploaduserlib.php [new file with mode: 0644]
admin/user.php
admin/user/user_bulk.php [changed mode: 0755->0644]
admin/user/user_bulk_confirm.php [changed mode: 0755->0644]
admin/user/user_bulk_delete.php [changed mode: 0755->0644]
admin/user/user_bulk_display.php [changed mode: 0755->0644]
admin/user/user_bulk_download.php [changed mode: 0755->0644]
admin/user/user_bulk_message.php [changed mode: 0755->0644]
auth/ldap/cli/sync_users.php [changed mode: 0755->0644]
auth/ldap/lang/en/auth_ldap.php
auth/manual/db/upgrade.php [new file with mode: 0644]
auth/manual/version.php [new file with mode: 0644]
auth/shibboleth/config.html [changed mode: 0755->0644]
backup/backupfilesedit.php [changed mode: 0755->0644]
backup/cc/cc2moodle.php [changed mode: 0755->0644]
backup/cc/entities.class.php [changed mode: 0755->0644]
backup/cc/entity.forum.class.php [changed mode: 0755->0644]
backup/cc/entity.label.class.php [changed mode: 0755->0644]
backup/cc/entity.quiz.class.php [changed mode: 0755->0644]
backup/cc/entity.resource.class.php [changed mode: 0755->0644]
backup/cc/includes/constants.php [changed mode: 0755->0644]
backup/cc/restore_cc.php [changed mode: 0755->0644]
backup/cc/schemas/cclibxml2validator.xsd [changed mode: 0755->0644]
backup/cc/schemas/config.xml [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_0/imsccauth_v1p0.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_0/imsccauth_v1p0_constraintsDocument.scmt [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_0/imsccauth_v1p0_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/anyElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/anyElement_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/anyElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/dataTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/elementNames.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/elementTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/rootElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/vocabTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/common/vocabValues.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/dataTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/elementNames_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/elementTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/extend/custom.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/imscc_m_definition.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/lomLoose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/lomLoose_constraintsDocument.scmt [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/lomLoose_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/rootElement_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/unique/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/vocab/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/vocabTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_1/vocabValues_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/anyElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/anyElement_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/anyElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/dataTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/elementNames.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/elementTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/rootElement.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/vocabTypes.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/common/vocabValues.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/dataTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/elementNames_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/elementTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/extend/custom.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/imscc_mR_definition.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/lomLoose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/lomLoose_constraintsDocument.scmt [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/lomLoose_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/rootElement_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/unique/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/vocab/loose.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/vocabTypes_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_2/vocabValues_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_3/imscp_extensionv1p2.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_3/imscp_extensionv1p2_constraintsDocument.scmt [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_3/imscp_extensionv1p2_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_4/ims_qtiasiv1p2.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_4/ims_qtiasiv1p2_def_copy.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_4/ims_qtiasiv1p2_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_4/imscc_q_definition.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_4/xml.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_5/imswl_v1p0.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_5/imswl_v1p0_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_6/imsdt_v1p0.xsd [changed mode: 0755->0644]
backup/cc/schemas/domainProfile_6/imsdt_v1p0_localised.xsd [changed mode: 0755->0644]
backup/cc/schemas/imscc_c1p2maeV0p15_definition.xsd [changed mode: 0755->0644]
backup/cc/schemas/imscp_v1p2.xsd [changed mode: 0755->0644]
backup/cc/schemas/imscp_v1p2_constraintsDocument.scmt [changed mode: 0755->0644]
backup/cc/schemas/imscp_v1p2_localised.xsd [changed mode: 0755->0644]
backup/cc/sheets/base.xml [changed mode: 0755->0644]
backup/cc/sheets/course_blocks_block.xml [changed mode: 0755->0644]
backup/cc/sheets/course_header.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_forum.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_label.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_quiz.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_quiz_feedback.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_quiz_question_instance.xml [changed mode: 0755->0644]
backup/cc/sheets/course_modules_mod_resource.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question_answer.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question_eesay.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question_multiple_choice.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question_shortanswer.xml [changed mode: 0755->0644]
backup/cc/sheets/course_question_categories_question_category_question_true_false.xml [changed mode: 0755->0644]
backup/cc/sheets/course_sections_section.xml [changed mode: 0755->0644]
backup/cc/sheets/course_sections_section_mods_mod.xml [changed mode: 0755->0644]
backup/cc/sheets/info_details_mod.xml [changed mode: 0755->0644]
backup/cc/sheets/info_details_mod_instance.xml [changed mode: 0755->0644]
backup/moodle2/backup_plagiarism_plugin.class.php [new file with mode: 0644]
backup/moodle2/backup_plan_builder.class.php
backup/moodle2/backup_stepslib.php
backup/moodle2/backup_theme_plugin.class.php [new file with mode: 0644]
backup/moodle2/restore_plagiarism_plugin.class.php [new file with mode: 0644]
backup/moodle2/restore_plan_builder.class.php
backup/moodle2/restore_plugin.class.php
backup/moodle2/restore_stepslib.php
backup/moodle2/restore_subplugin.class.php
backup/moodle2/restore_theme_plugin.class.php [new file with mode: 0644]
backup/restorefile.php [changed mode: 0755->0644]
backup/restorefile_form.php [changed mode: 0755->0644]
backup/util/dbops/backup_plan_dbops.class.php
backup/util/plan/restore_structure_step.class.php
backup/util/ui/renderer.php
backup/util/ui/restore_ui_components.php
backup/util/xml/parser/simpletest/fixtures/test4.xml [changed mode: 0755->0644]
blocks/blog_menu/block_blog_menu.php [changed mode: 0755->0644]
blocks/completionstatus/block_completionstatus.php
blocks/html/block_html.php [changed mode: 0755->0644]
blocks/html/lib.php
blocks/mentees/block_mentees.php [changed mode: 0755->0644]
blocks/mentees/lang/en/block_mentees.php [changed mode: 0755->0644]
blocks/private_files/block_private_files.php [changed mode: 0755->0644]
blocks/rss_client/lang/en/block_rss_client.php [changed mode: 0755->0644]
blocks/section_links/config_instance.html [changed mode: 0755->0644]
blocks/section_links/settings.php [changed mode: 0755->0644]
blocks/selfcompletion/block_selfcompletion.php
blocks/selfcompletion/lang/en/block_selfcompletion.php
blog/edit.php [changed mode: 0755->0644]
blog/index.php [changed mode: 0755->0644]
blog/preferences.php [changed mode: 0755->0644]
blog/rsslib.php [changed mode: 0755->0644]
config-dist.php
course/edit_form.php
course/format/scorm/config.php [changed mode: 0755->0644]
course/format/social/config.php [changed mode: 0755->0644]
course/format/topics/config.php [changed mode: 0755->0644]
course/format/weeks/config.php [changed mode: 0755->0644]
course/lib.php
course/modedit.php
course/pending.php
course/report/log/lang/en/coursereport_log.php
course/report/log/lib.php
course/request_form.php
course/reset.php [changed mode: 0755->0644]
course/simpletest/testcourselib.php [changed mode: 0755->0644]
enrol/authorize/enrol_form.php [changed mode: 0755->0644]
enrol/authorize/version.php [changed mode: 0755->0644]
files/externallib.php [changed mode: 0755->0644]
files/filebrowser_ajax.php [changed mode: 0755->0644]
filter/algebra/AlgParser.pm [changed mode: 0755->0644]
filter/algebra/filter.php
filter/mediaplugin/db/upgrade.php [new file with mode: 0644]
filter/mediaplugin/eolas_fix.js [deleted file]
filter/mediaplugin/filter.php
filter/mediaplugin/filtersettings.php
filter/mediaplugin/flowplayer.audio.swf [deleted file]
filter/mediaplugin/flowplayer.controls.swf [deleted file]
filter/mediaplugin/flvplayer.README.txt [deleted file]
filter/mediaplugin/flvplayer.fla.zip [deleted file]
filter/mediaplugin/flvplayer.swf [deleted file]
filter/mediaplugin/lang/en/filter_mediaplugin.php
filter/mediaplugin/mp3player.fla.zip [deleted file]
filter/mediaplugin/mp3player.swf [deleted file]
filter/mediaplugin/styles.css [new file with mode: 0644]
filter/mediaplugin/version.php
filter/tex/db/upgrade.php [new file with mode: 0644]
filter/tex/displaytex.php
filter/tex/filter.php
filter/tex/filtersettings.php
filter/tex/lang/en/filter_tex.php
filter/tex/lib.php
filter/tex/mimetex.exe [changed mode: 0755->0644]
filter/tex/pix.php
filter/tex/texdebug.php
filter/tex/version.php
filter/urltolink/filter.php
filter/urltolink/filtersettings.php
filter/urltolink/lang/en/filter_urltolink.php
grade/edit/outcome/course_form.html [changed mode: 0755->0644]
grade/edit/outcome/edit_form.php
grade/edit/outcome/index.php
grade/edit/tree/functions.js [changed mode: 0755->0644]
grade/edit/tree/grade_form.php [changed mode: 0755->0644]
grade/edit/tree/lib.php [changed mode: 0755->0644]
grade/export/grade_export_form.php [changed mode: 0755->0644]
grade/export/lib.php [changed mode: 0755->0644]
grade/export/ods/export.php [changed mode: 0755->0644]
grade/export/ods/grade_export_ods.php [changed mode: 0755->0644]
grade/export/ods/index.php [changed mode: 0755->0644]
grade/export/txt/export.php [changed mode: 0755->0644]
grade/export/txt/grade_export_txt.php [changed mode: 0755->0644]
grade/export/txt/index.php [changed mode: 0755->0644]
grade/export/txt/version.php [changed mode: 0755->0644]
grade/export/xls/export.php [changed mode: 0755->0644]
grade/export/xls/grade_export_xls.php [changed mode: 0755->0644]
grade/export/xls/index.php [changed mode: 0755->0644]
grade/export/xml/export.php [changed mode: 0755->0644]
grade/export/xml/grade_export_xml.php [changed mode: 0755->0644]
grade/export/xml/index.php [changed mode: 0755->0644]
grade/import/xml/index.php [changed mode: 0755->0644]
grade/report/outcomes/index.php
install/lang/de_kids/langconfig.php [new file with mode: 0644]
install/lang/pl/admin.php
install/lang/pl/install.php
install/welcome.html [changed mode: 0755->0644]
lang/en/admin.php
lang/en/blog.php [changed mode: 0755->0644]
lang/en/error.php [changed mode: 0755->0644]
lang/en/grades.php
lang/en/install.php [changed mode: 0755->0644]
lang/en/moodle.php
lang/en/notes.php [changed mode: 0755->0644]
lang/en/role.php
lib/accesslib.php [changed mode: 0755->0644]
lib/adminlib.php
lib/ajax/section_classes.js [changed mode: 0755->0644]
lib/alfresco/Service/Association.php [changed mode: 0755->0644]
lib/alfresco/Service/BaseObject.php [changed mode: 0755->0644]
lib/alfresco/Service/ChildAssociation.php [changed mode: 0755->0644]
lib/alfresco/Service/ContentData.php [changed mode: 0755->0644]
lib/alfresco/Service/Functions.php [changed mode: 0755->0644]
lib/alfresco/Service/Logger/Logger.php [changed mode: 0755->0644]
lib/alfresco/Service/Logger/LoggerConfig.php [changed mode: 0755->0644]
lib/alfresco/Service/NamespaceMap.php [changed mode: 0755->0644]
lib/alfresco/Service/Node.php [changed mode: 0755->0644]
lib/alfresco/Service/Repository.php [changed mode: 0755->0644]
lib/alfresco/Service/Session.php [changed mode: 0755->0644]
lib/alfresco/Service/SpacesStore.php [changed mode: 0755->0644]
lib/alfresco/Service/Store.php [changed mode: 0755->0644]
lib/alfresco/Service/Version.php [changed mode: 0755->0644]
lib/alfresco/Service/VersionHistory.php [changed mode: 0755->0644]
lib/alfresco/Service/WebService/AlfrescoWebService.php [changed mode: 0755->0644]
lib/alfresco/Service/WebService/WebServiceFactory.php [changed mode: 0755->0644]
lib/boxlib.php [changed mode: 0755->0644]
lib/completionlib.php
lib/db/upgrade.php
lib/ddl/mssql_sql_generator.php
lib/ddl/postgres_sql_generator.php
lib/ddl/simpletest/testddl.php [changed mode: 0755->0644]
lib/ddl/sql_generator.php
lib/dml/simpletest/testdml.php [changed mode: 0755->0644]
lib/dml/sqlsrv_native_moodle_database.php
lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodlemedia/css/media.css [changed mode: 0755->0644]
lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodlemedia/editor_plugin.js [changed mode: 0755->0644]
lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodlemedia/editor_plugin_src.js [changed mode: 0755->0644]
lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodlemedia/js/media.js [changed mode: 0755->0644]
lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodlemedia/moodlemedia.htm [changed mode: 0755->0644]
lib/enrollib.php
lib/eventslib.php [changed mode: 0755->0644]
lib/excellib.class.php
lib/filelib.php
lib/flickrlib.php [changed mode: 0755->0644]
lib/flowplayer.js [deleted file]
lib/flowplayer/README.txt [new file with mode: 0644]
lib/flowplayer/flowplayer-3.2.6.js [new file with mode: 0644]
lib/flowplayer/flowplayer-3.2.7.swf [new file with mode: 0644]
lib/flowplayer/flowplayer.audio-3.2.2.swf [new file with mode: 0644]
lib/flowplayer/flowplayer.controls-3.2.5.swf [new file with mode: 0644]
lib/flowplayer/readme_moodle.txt [new file with mode: 0644]
lib/form/radio.php
lib/form/selectwithlink.php [changed mode: 0755->0644]
lib/form/url.php [changed mode: 0755->0644]
lib/grade/simpletest/testgradecategory.php [changed mode: 0755->0644]
lib/grade/simpletest/testgradegrades.php [changed mode: 0755->0644]
lib/grade/simpletest/testgradeitem.php [changed mode: 0755->0644]
lib/grade/simpletest/testgradescale.php [changed mode: 0755->0644]
lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt [changed mode: 0755->0644]
lib/htmlpurifier/HTMLPurifier/PropertyList.php [changed mode: 0755->0644]
lib/htmlpurifier/HTMLPurifier/PropertyListIterator.php [changed mode: 0755->0644]
lib/jabber/XMPP/Exception.php [changed mode: 0755->0644]
lib/javascript-static.js
lib/markdown.php [changed mode: 0755->0644]
lib/moodlelib.php
lib/odbc.php [changed mode: 0755->0644]
lib/outputlib.php
lib/outputrenderers.php
lib/outputrequirementslib.php
lib/pear/HTTP/WebDAV/Server.php [changed mode: 0755->0644]
lib/pear/OLE.php [changed mode: 0755->0644]
lib/pear/OLE/PPS.php [changed mode: 0755->0644]
lib/pear/OLE/PPS/File.php [changed mode: 0755->0644]
lib/pear/OLE/PPS/Root.php [changed mode: 0755->0644]
lib/pear/PHP/runsniffer [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-cz.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-de.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-es.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-fr.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-it.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-nl.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-no.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-se.php [changed mode: 0755->0644]
lib/phpmailer/language/phpmailer.lang-tr.php [changed mode: 0755->0644]
lib/profilerlib.php [changed mode: 0755->0644]
lib/resourcelib.php
lib/setuplib.php
lib/simpletest/testeventslib.php [changed mode: 0755->0644]
lib/simpletest/testmathslib.php [changed mode: 0755->0644]
lib/simpletest/testportfoliolib.php [changed mode: 0755->0644]
lib/simpletest/testweblib.php
lib/tcpdf/README.TXT [changed mode: 0755->0644]
lib/tcpdf/config/tcpdf_config.php [changed mode: 0755->0644]
lib/tcpdf/fonts/README.TXT [changed mode: 0755->0644]
lib/tcpdf/fonts/freemono.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freemonob.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freemonobi.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freemonoi.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freesans.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freesansb.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freesansbi.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freesansi.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freeserif.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freeserifb.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freeserifbi.php [changed mode: 0755->0644]
lib/tcpdf/fonts/freeserifi.php [changed mode: 0755->0644]
lib/tcpdf/tcpdf.php [changed mode: 0755->0644]
lib/thirdpartylibs.xml
lib/ufo.js [deleted file]
lib/validateurlsyntax.php [changed mode: 0755->0644]
lib/weblib.php
lib/zend/Zend/Amf/Adobe/Auth.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Adobe/DbInspector.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Adobe/Introspector.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Auth/Abstract.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Parse/Resource/MysqlResult.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Parse/Resource/Stream.php [changed mode: 0755->0644]
lib/zend/Zend/Amf/Value/Messaging/ArrayCollection.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Books.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Books/VolumeQuery.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Docs.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Docs/DocumentListEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Docs/DocumentListFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Docs/Query.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/DublinCore.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Entry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Distance.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Exposure.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/FStop.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Flash.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/FocalLength.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/ImageUniqueId.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Iso.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Make.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Model.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Tags.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Extension/Time.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Exif/Feed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo/Entry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo/Extension/GeoRssWhere.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo/Extension/GmlPoint.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo/Extension/GmlPos.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Geo/Feed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/Extension/Ccr.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/ProfileEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/ProfileFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/ProfileListEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/ProfileListFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Health/Query.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Entry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaCategory.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaContent.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaCopyright.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaCredit.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaDescription.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaGroup.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaHash.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaKeywords.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaPlayer.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaRating.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaRestriction.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaText.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaThumbnail.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Extension/MediaTitle.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Media/Feed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/AlbumEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/AlbumFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/AlbumQuery.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/CommentEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Access.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/AlbumId.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/BytesUsed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Checksum.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Client.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/CommentCount.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/CommentingEnabled.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Height.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Id.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Location.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/MaxPhotosPerAlbum.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Name.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Nickname.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/NumPhotos.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/NumPhotosRemaining.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/PhotoId.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Position.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/QuotaCurrent.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/QuotaLimit.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Rotation.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Size.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Thumbnail.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Timestamp.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/User.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Version.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Weight.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/Extension/Width.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/PhotoEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/PhotoFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/PhotoQuery.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/TagEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/UserEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/UserFeed.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/Photos/UserQuery.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/Control.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/CountHint.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/Link.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/MediaContent.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/MediaGroup.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/MediaRating.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/Private.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/Extension/Token.php [changed mode: 0755->0644]
lib/zend/Zend/Gdata/YouTube/MediaEntry.php [changed mode: 0755->0644]
lib/zend/Zend/Http/Client/Adapter/Stream.php [changed mode: 0755->0644]
lib/zend/Zend/Http/Response/Stream.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Amazon/Exception.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Amazon/S3.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Amazon/S3/Exception.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Amazon/S3/Stream.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Twitter.php [changed mode: 0755->0644]
lib/zend/Zend/Service/Twitter/Exception.php [changed mode: 0755->0644]
login/change_password.php
message/discussion.php
message/index.php
message/lib.php
message/output/email/version.php [changed mode: 0755->0644]
message/output/jabber/version.php [changed mode: 0755->0644]
message/output/popup/version.php [changed mode: 0755->0644]
message/search.html
message/search_advanced.html
mod/assignment/lib.php
mod/assignment/pix/icon.gif [changed mode: 0755->0644]
mod/chat/beep.wav [changed mode: 0755->0644]
mod/chat/chatd.php [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/bubbles.png [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/chat.css [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/config.php [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/horizontal.png [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/input.png [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/bubble/vertical.png [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/compact/chat.css [changed mode: 0755->0644]
mod/chat/gui_ajax/theme/compact/config.php [changed mode: 0755->0644]
mod/chat/pix/icon.gif [changed mode: 0755->0644]
mod/data/css.php [changed mode: 0755->0644]
mod/data/edit.php [changed mode: 0755->0644]
mod/data/field.php [changed mode: 0755->0644]
mod/data/field/checkbox/field.class.php [changed mode: 0755->0644]
mod/data/field/checkbox/mod.html [changed mode: 0755->0644]
mod/data/field/date/field.class.php [changed mode: 0755->0644]
mod/data/field/date/mod.html [changed mode: 0755->0644]
mod/data/field/file/field.class.php [changed mode: 0755->0644]
mod/data/field/file/mod.html [changed mode: 0755->0644]
mod/data/field/latlong/field.class.php [changed mode: 0755->0644]
mod/data/field/latlong/mod.html [changed mode: 0755->0644]
mod/data/field/menu/field.class.php [changed mode: 0755->0644]
mod/data/field/menu/mod.html [changed mode: 0755->0644]
mod/data/field/multimenu/field.class.php [changed mode: 0755->0644]
mod/data/field/multimenu/mod.html [changed mode: 0755->0644]
mod/data/field/number/field.class.php [changed mode: 0755->0644]
mod/data/field/number/mod.html [changed mode: 0755->0644]
mod/data/field/picture/field.class.php [changed mode: 0755->0644]
mod/data/field/picture/mod.html [changed mode: 0755->0644]
mod/data/field/radiobutton/field.class.php [changed mode: 0755->0644]
mod/data/field/radiobutton/mod.html [changed mode: 0755->0644]
mod/data/field/text/field.class.php [changed mode: 0755->0644]
mod/data/field/text/mod.html [changed mode: 0755->0644]
mod/data/field/textarea/field.class.php [changed mode: 0755->0644]
mod/data/field/textarea/mod.html [changed mode: 0755->0644]
mod/data/field/url/field.class.php [changed mode: 0755->0644]
mod/data/field/url/mod.html [changed mode: 0755->0644]
mod/data/import.php [changed mode: 0755->0644]
mod/data/index.php [changed mode: 0755->0644]
mod/data/lang/en/data.php [changed mode: 0755->0644]
mod/data/lib.php [changed mode: 0755->0644]
mod/data/pix/field/checkbox.gif [changed mode: 0755->0644]
mod/data/pix/field/date.gif [changed mode: 0755->0644]
mod/data/pix/field/file.gif [changed mode: 0755->0644]
mod/data/pix/field/latlong.gif [changed mode: 0755->0644]
mod/data/pix/field/menu.gif [changed mode: 0755->0644]
mod/data/pix/field/multimenu.gif [changed mode: 0755->0644]
mod/data/pix/field/number.gif [changed mode: 0755->0644]
mod/data/pix/field/picture.gif [changed mode: 0755->0644]
mod/data/pix/field/radiobutton.gif [changed mode: 0755->0644]
mod/data/pix/field/text.gif [changed mode: 0755->0644]
mod/data/pix/field/textarea.gif [changed mode: 0755->0644]
mod/data/pix/field/url.gif [changed mode: 0755->0644]
mod/data/pix/icon.gif [changed mode: 0755->0644]
mod/data/preset_form.php
mod/data/tabs.php [changed mode: 0755->0644]
mod/data/templates.php [changed mode: 0755->0644]
mod/data/view.php [changed mode: 0755->0644]
mod/feedback/analysis_to_excel.php
mod/forum/lang/en/forum.php
mod/forum/lib.php
mod/forum/pix/icon.gif [changed mode: 0755->0644]
mod/glossary/db/install.xml [changed mode: 0755->0644]
mod/glossary/formats/TEMPLATE/TEMPLATE_format.php [changed mode: 0755->0644]
mod/label/pix/icon.gif [changed mode: 0755->0644]
mod/lesson/locallib.php
mod/lesson/pix/icon.gif [changed mode: 0755->0644]
mod/lesson/styles.css
mod/quiz/attemptlib.php
mod/quiz/db/install.xml [changed mode: 0755->0644]
mod/quiz/lang/en/quiz.php
mod/quiz/lib.php
mod/quiz/locallib.php
mod/quiz/mod_form.php
mod/quiz/pix/icon.gif [changed mode: 0755->0644]
mod/quiz/report/responses/report.php
mod/quiz/review.php
mod/quiz/startattempt.php
mod/resource/db/upgrade.php
mod/resource/lib.php
mod/resource/locallib.php
mod/resource/styles.css
mod/resource/version.php
mod/scorm/aicc.php [changed mode: 0755->0644]
mod/scorm/datamodel.php [changed mode: 0755->0644]
mod/scorm/datamodels/sequencinglib.php [changed mode: 0755->0644]
mod/scorm/index.php [changed mode: 0755->0644]
mod/scorm/lib.php [changed mode: 0755->0644]
mod/scorm/loadSCO.php [changed mode: 0755->0644]
mod/scorm/locallib.php [changed mode: 0755->0644]
mod/scorm/pix/browsed.gif [changed mode: 0755->0644]
mod/scorm/pix/completed.gif [changed mode: 0755->0644]
mod/scorm/pix/failed.gif [changed mode: 0755->0644]
mod/scorm/pix/icon.gif [changed mode: 0755->0644]
mod/scorm/pix/incomplete.gif [changed mode: 0755->0644]
mod/scorm/pix/minus.gif [changed mode: 0755->0644]
mod/scorm/pix/notattempted.gif [changed mode: 0755->0644]
mod/scorm/pix/passed.gif [changed mode: 0755->0644]
mod/scorm/pix/plus.gif [changed mode: 0755->0644]
mod/scorm/pix/popdown.gif [changed mode: 0755->0644]
mod/scorm/pix/popup.gif [changed mode: 0755->0644]
mod/scorm/pix/spacer.gif [changed mode: 0755->0644]
mod/scorm/player.php [changed mode: 0755->0644]
mod/scorm/report.php [changed mode: 0755->0644]
mod/scorm/view.php [changed mode: 0755->0644]
mod/survey/pix/icon.gif [changed mode: 0755->0644]
mod/url/lang/en/url.php
mod/url/locallib.php
mod/url/styles.css [new file with mode: 0644]
mod/workshop/db/access.php
mod/workshop/eval/best/lib.php
mod/workshop/form/accumulative/db/upgradelib.php
mod/workshop/form/comments/db/upgradelib.php
mod/workshop/form/numerrors/db/upgradelib.php
mod/workshop/form/numerrors/lib.php
mod/workshop/form/rubric/db/upgradelib.php
mod/workshop/lang/en/workshop.php
mod/workshop/locallib.php
mod/workshop/pix/userplan/task-info.gif [changed mode: 0755->0644]
mod/workshop/styles.css
mod/workshop/submission.php
mod/workshop/version.php
mod/workshop/view.php
pix/a/l_breadcrumb.gif [changed mode: 0755->0644]
pix/adv.gif [changed mode: 0755->0644]
pix/b.gif [changed mode: 0755->0644]
pix/f/audio.gif [changed mode: 0755->0644]
pix/f/folder.gif [changed mode: 0755->0644]
pix/f/odt.gif [changed mode: 0755->0644]
pix/f/parent.gif [changed mode: 0755->0644]
pix/f/powerpoint.gif [changed mode: 0755->0644]
pix/f/video.gif [changed mode: 0755->0644]
pix/f/web.gif [changed mode: 0755->0644]
pix/f/xml.gif [changed mode: 0755->0644]
pix/f/zip.gif [changed mode: 0755->0644]
pix/g/f1.png [changed mode: 0755->0644]
pix/g/f2.png [changed mode: 0755->0644]
pix/help.gif [changed mode: 0755->0644]
pix/i/admin.gif [changed mode: 0755->0644]
pix/i/agg_sum.gif [changed mode: 0755->0644]
pix/i/all.gif [changed mode: 0755->0644]
pix/i/backup.gif [changed mode: 0755->0644]
pix/i/course.gif [changed mode: 0755->0644]
pix/i/db.gif [changed mode: 0755->0644]
pix/i/edit.gif [changed mode: 0755->0644]
pix/i/email.gif [changed mode: 0755->0644]
pix/i/feedback.gif [changed mode: 0755->0644]
pix/i/files.gif [changed mode: 0755->0644]
pix/i/grades.gif [changed mode: 0755->0644]
pix/i/group.gif [changed mode: 0755->0644]
pix/i/guest.gif [changed mode: 0755->0644]
pix/i/hide.gif [changed mode: 0755->0644]
pix/i/info.gif [changed mode: 0755->0644]
pix/i/key.gif [changed mode: 0755->0644]
pix/i/lock.gif [changed mode: 0755->0644]
pix/i/marked.gif [changed mode: 0755->0644]
pix/i/marker.gif [changed mode: 0755->0644]
pix/i/new.gif [changed mode: 0755->0644]
pix/i/news.gif [changed mode: 0755->0644]
pix/i/one.gif [changed mode: 0755->0644]
pix/i/reload.gif [changed mode: 0755->0644]
pix/i/report.gif [changed mode: 0755->0644]
pix/i/restore.gif [changed mode: 0755->0644]
pix/i/return.gif [changed mode: 0755->0644]
pix/i/roles.gif [changed mode: 0755->0644]
pix/i/scales.gif [changed mode: 0755->0644]
pix/i/search.gif [changed mode: 0755->0644]
pix/i/settings.gif [changed mode: 0755->0644]
pix/i/show.gif [changed mode: 0755->0644]
pix/i/stats.gif [changed mode: 0755->0644]
pix/i/switch.gif [changed mode: 0755->0644]
pix/i/unlock.gif [changed mode: 0755->0644]
pix/i/user.gif [changed mode: 0755->0644]
pix/i/users.gif [changed mode: 0755->0644]
pix/m/USD.gif [changed mode: 0755->0644]
pix/madewithmoodle.gif [changed mode: 0755->0644]
pix/moodlelogo-med-white.gif [changed mode: 0755->0644]
pix/moodlelogo-med.gif [changed mode: 0755->0644]
pix/moodlelogo.gif [changed mode: 0755->0644]
pix/movehere.gif [changed mode: 0755->0644]
pix/s/angry.gif [changed mode: 0755->0644]
pix/s/approve.gif [changed mode: 0755->0644]
pix/s/biggrin.gif [changed mode: 0755->0644]
pix/s/blackeye.gif [changed mode: 0755->0644]
pix/s/blush.gif [changed mode: 0755->0644]
pix/s/clown.gif [changed mode: 0755->0644]
pix/s/cool.gif [changed mode: 0755->0644]
pix/s/dead.gif [changed mode: 0755->0644]
pix/s/egg.gif [changed mode: 0755->0644]
pix/s/evil.gif [changed mode: 0755->0644]
pix/s/heart.gif [changed mode: 0755->0644]
pix/s/kiss.gif [changed mode: 0755->0644]
pix/s/martin.gif [changed mode: 0755->0644]
pix/s/mixed.gif [changed mode: 0755->0644]
pix/s/no.gif [changed mode: 0755->0644]
pix/s/sad.gif [changed mode: 0755->0644]
pix/s/shy.gif [changed mode: 0755->0644]
pix/s/sleepy.gif [changed mode: 0755->0644]
pix/s/smiley.gif [changed mode: 0755->0644]
pix/s/surprise.gif [changed mode: 0755->0644]
pix/s/thoughtful.gif [changed mode: 0755->0644]
pix/s/tongueout.gif [changed mode: 0755->0644]
pix/s/wideeyes.gif [changed mode: 0755->0644]
pix/s/wink.gif [changed mode: 0755->0644]
pix/s/yes.gif [changed mode: 0755->0644]
pix/spacer.gif [changed mode: 0755->0644]
pix/t/backup.gif [changed mode: 0755->0644]
pix/t/email.gif [changed mode: 0755->0644]
pix/t/emailno.gif [changed mode: 0755->0644]
pix/t/go.gif [changed mode: 0755->0644]
pix/t/groupn.gif [changed mode: 0755->0644]
pix/t/groups.gif [changed mode: 0755->0644]
pix/t/groupv.gif [changed mode: 0755->0644]
pix/t/left.gif [changed mode: 0755->0644]
pix/t/lock.gif [changed mode: 0755->0644]
pix/t/log.gif [changed mode: 0755->0644]
pix/t/message.gif [changed mode: 0755->0644]
pix/t/move.gif [changed mode: 0755->0644]
pix/t/preview.gif [changed mode: 0755->0644]
pix/t/restore.gif [changed mode: 0755->0644]
pix/t/right.gif [changed mode: 0755->0644]
pix/t/stop.gif [changed mode: 0755->0644]
pix/t/unlock.gif [changed mode: 0755->0644]
pix/t/user.gif [changed mode: 0755->0644]
pix/t/usernot.gif [changed mode: 0755->0644]
pix/u/f1.png [changed mode: 0755->0644]
pix/u/f2.png [changed mode: 0755->0644]
pix/webding.png [changed mode: 0755->0644]
portfolio/download/simpletest/testportfolioplugindownload.php [changed mode: 0755->0644]
portfolio/flickr/lib.php [changed mode: 0755->0644]
portfolio/flickr/version.php [changed mode: 0755->0644]
question/format/examview/format.php [changed mode: 0755->0644]
question/format/gift/format.php [changed mode: 0755->0644]
question/format/learnwise/format.php [changed mode: 0755->0644]
question/format/qti_two/templates/choice.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/choiceMultiple.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/composite.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/extendedText.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/extendedText_simpleEssay.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/imsmanifest.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/mmchoiceMultiple.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/notimplemented.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/numerical.tpl [changed mode: 0755->0644]
question/format/qti_two/templates/textEntry.tpl [changed mode: 0755->0644]
question/format/xhtml/format.php [changed mode: 0755->0644]
question/format/xml/format.php [changed mode: 0755->0644]
question/type/calculated/pix/icon.gif [changed mode: 0755->0644]
question/type/essay/questiontype.php
question/type/match/backup/moodle2/restore_qtype_match_plugin.class.php
question/type/multianswer/questiontype.php
question/type/numerical/display.html
question/type/numerical/questiontype.php
question/type/questiontype.php
question/type/random/questiontype.php
question/type/shortanswer/questiontype.php
repository/alfresco/lib.php [changed mode: 0755->0644]
repository/boxnet/lib.php [changed mode: 0755->0644]
repository/boxnet/version.php [changed mode: 0755->0644]
repository/coursefiles/db/access.php [changed mode: 0755->0644]
repository/coursefiles/lang/en/repository_coursefiles.php [changed mode: 0755->0644]
repository/coursefiles/lib.php [changed mode: 0755->0644]
repository/coursefiles/pix/icon.png [changed mode: 0755->0644]
repository/coursefiles/version.php [changed mode: 0755->0644]
repository/draftfiles_ajax.php [changed mode: 0755->0644]
repository/draftfiles_manager.php [changed mode: 0755->0644]
repository/dropbox/db/access.php [changed mode: 0755->0644]
repository/dropbox/lang/en/repository_dropbox.php [changed mode: 0755->0644]
repository/dropbox/version.php [changed mode: 0755->0644]
repository/filepicker.js
repository/filepicker.php [changed mode: 0755->0644]
repository/flickr/lib.php [changed mode: 0755->0644]
repository/flickr_public/image.php [changed mode: 0755->0644]
repository/local/lib.php [changed mode: 0755->0644]
repository/merlot/db/access.php [changed mode: 0755->0644]
repository/merlot/lib.php [changed mode: 0755->0644]
repository/merlot/pix/icon.png [changed mode: 0755->0644]
repository/merlot/version.php [changed mode: 0755->0644]
repository/recent/lib.php [changed mode: 0755->0644]
repository/repository_ajax.php [changed mode: 0755->0644]
repository/repository_callback.php [changed mode: 0755->0644]
repository/upload/lib.php [changed mode: 0755->0644]
repository/upload/pix/icon.png [changed mode: 0755->0644]
repository/url/pix/icon.png [changed mode: 0755->0644]
repository/user/db/install.php [changed mode: 0755->0644]
repository/user/lang/en/repository_user.php [changed mode: 0755->0644]
repository/user/lib.php [changed mode: 0755->0644]
repository/user/pix/icon.png [changed mode: 0755->0644]
repository/user/version.php [changed mode: 0755->0644]
search/Zend/Exception.php [changed mode: 0755->0644]
theme/anomaly/config.php
theme/anomaly/pix/tab/right_last.gif [changed mode: 0755->0644]
theme/anomaly/pix/tab/rtlbg.gif [changed mode: 0755->0644]
theme/anomaly/pix/tab/tabrow1.gif [changed mode: 0755->0644]
theme/arialist/config.php
theme/base/style/core.css
theme/base/style/grade.css
theme/binarius/config.php
theme/binarius/style/core.css
theme/boxxie/config.php
theme/boxxie/pix/tab/right_last.gif [changed mode: 0755->0644]
theme/boxxie/pix/tab/rtlbg.gif [changed mode: 0755->0644]
theme/boxxie/pix/tab/tabrow1.gif [changed mode: 0755->0644]
theme/boxxie/style/core.css
theme/brick/config.php
theme/canvas/config.php
theme/canvas/style/text.css
theme/formal_white/config.php
theme/formal_white/javascript/navigation.js [deleted file]
theme/formal_white/lang/en/theme_formal_white.php
theme/formal_white/layout/embedded.php [new file with mode: 0644]
theme/formal_white/layout/frontpage.php [new file with mode: 0644]
theme/formal_white/layout/general.php
theme/formal_white/layout/report.php [deleted file]
theme/formal_white/lib.php
theme/formal_white/pix/custommenubg.jpg [new file with mode: 0644]
theme/formal_white/pix/dock_removeall.png [deleted file]
theme/formal_white/pix/gradient-sb.jpg [new file with mode: 0644]
theme/formal_white/pix/hgradient.jpg [new file with mode: 0644]
theme/formal_white/pix/logo.jpg [deleted file]
theme/formal_white/pix/logo.png [new file with mode: 0644]
theme/formal_white/pix/logo_small.jpg [deleted file]
theme/formal_white/pix/logo_small.png [new file with mode: 0644]
theme/formal_white/pix/movedock.png [deleted file]
theme/formal_white/pix/roundcorner/body_l.jpg
theme/formal_white/pix/roundcorner/body_r.jpg
theme/formal_white/pix/roundcorner/footer.jpg
theme/formal_white/pix/roundcorner/footer_l.jpg
theme/formal_white/pix/roundcorner/footer_r.jpg
theme/formal_white/pix/roundcorner/header.jpg
theme/formal_white/pix/roundcorner/header_l.jpg
theme/formal_white/pix/roundcorner/header_r.jpg
theme/formal_white/pix/sprite.png [new file with mode: 0644]
theme/formal_white/settings.php
theme/formal_white/style/base.css [deleted file]
theme/formal_white/style/calendar.css [new file with mode: 0644]
theme/formal_white/style/core.css [new file with mode: 0644]
theme/formal_white/style/course.css [new file with mode: 0644]
theme/formal_white/style/dock.css [deleted file]
theme/formal_white/style/editor.css [deleted file]
theme/formal_white/style/formal_white.css [new file with mode: 0644]
theme/formal_white/style/formalwhite.css [deleted file]
theme/formal_white/style/frame.css [new file with mode: 0644]
theme/formal_white/style/fw_corners.css [deleted file]
theme/formal_white/style/general.css [deleted file]
theme/formal_white/style/menu.css [new file with mode: 0644]
theme/formal_white/style/pagelayout.css [new file with mode: 0644]
theme/formal_white/style/quiz.css [new file with mode: 0644]
theme/formal_white/style/settings.css [deleted file]
theme/formal_white/style/tabs.css [new file with mode: 0644]
theme/formfactor/config.php
theme/fusion/config.php
theme/fusion/pix/header-bg.jpg [changed mode: 0755->0644]
theme/fusion/pix/header-center.jpg [changed mode: 0755->0644]
theme/fusion/pix/main-bg.gif [changed mode: 0755->0644]
theme/fusion/pix/side-bg.png [changed mode: 0755->0644]
theme/fusion/pix/side-start.png [changed mode: 0755->0644]
theme/fusion/style/core.css
theme/leatherbound/config.php
theme/leatherbound/layout/frontpage.php
theme/leatherbound/layout/general.php
theme/leatherbound/layout/report.php
theme/leatherbound/style/core.css
theme/magazine/config.php
theme/magazine/layout/frontpage.php
theme/magazine/layout/general.php
theme/magazine/style/core.css
theme/nimble/config.php [new file with mode: 0644]
theme/nimble/lang/en/theme_nimble.php [new file with mode: 0644]
theme/nimble/layout/frontpage.php [new file with mode: 0644]
theme/nimble/layout/general.php [new file with mode: 0644]
theme/nimble/lib.php [new file with mode: 0644]
theme/nimble/pix/screenshot.png [new file with mode: 0644]
theme/nimble/settings.php [new file with mode: 0644]
theme/nimble/style/colors.css [new file with mode: 0644]
theme/nimble/style/core.css [new file with mode: 0644]
theme/nimble/style/menu.css [new file with mode: 0644]
theme/nimble/style/pagelayout.css [new file with mode: 0644]
theme/nonzero/config.php
theme/nonzero/layout/frontpage.php
theme/nonzero/layout/general.php
theme/nonzero/lib.php [changed mode: 0755->0644]
theme/nonzero/settings.php [changed mode: 0755->0644]
theme/nonzero/style/core.css
theme/overlay/config.php
theme/serenity/config.php
theme/serenity/style/core.css
theme/sky_high/config.php
theme/splash/style/orange.css
theme/standard/pix/tab/right_last.gif [changed mode: 0755->0644]
theme/standard/pix/tab/rtlbg.gif [changed mode: 0755->0644]
theme/standard/pix/tab/tabrow1.gif [changed mode: 0755->0644]
theme/standard/style/admin.css
theme/standard/style/core.css
theme/standard/style/grade.css
user/addnote.php
user/default/f1.jpg [changed mode: 0755->0644]
user/default/f2.jpg [changed mode: 0755->0644]
user/edit_form.php
user/editadvanced.php
user/emailupdate.php [changed mode: 0755->0644]
user/filters/date.php [changed mode: 0755->0644]
user/profile.php
user/view.php
version.php

index 7d20ef5..1edc0b1 100644 (file)
@@ -88,8 +88,8 @@ function bloglevelupgrade_entries($blogentries, $forum, $cm, $groupid=-1) {
         $discussion->course = $forum->course;
         $discussion->forum = $forum->id;
         $discussion->name = $blogentry->subject;
-        $discussion->intro = $blogentry->summary;
         $discussion->assessed = $forum->assessed;
+        $discussion->message = $blogentry->summary;
         $discussion->messageformat = $forum->introformat;
         $discussion->messagetrust = 0;
         $discussion->attachments = 0;
index 3378948..0acea3d 100644 (file)
@@ -70,6 +70,8 @@ Options:
                       problem encountered.
 --agree-license       Indicates agreement with software license,
                       required in non-interactive mode.
+--allow-unstable      Install even if the version is not marked as stable yet,
+                      required in non-interactive mode.
 -h, --help            Print out this help
 
 Example:
@@ -136,9 +138,6 @@ $CFG->early_install_lang   = true;
 $parts = explode('/', str_replace('\\', '/', dirname(dirname(__FILE__))));
 $CFG->admin                = array_pop($parts);
 
-require($CFG->dirroot.'/version.php');
-$CFG->target_release = $release;
-
 //point pear include path to moodles lib/pear so that includes and requires will search there for files before anywhere else
 //the problem is that we need specific version of quickforms and hacked excel files :-(
 ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
@@ -154,6 +153,9 @@ require_once($CFG->libdir.'/deprecatedlib.php');
 require_once($CFG->libdir.'/adminlib.php');
 require_once($CFG->libdir.'/componentlib.class.php');
 
+require($CFG->dirroot.'/version.php');
+$CFG->target_release = $release;
+
 //Database types
 $databases = array('mysqli' => moodle_database::get_driver_instance('mysqli', 'native'),
                    'pgsql'  => moodle_database::get_driver_instance('pgsql',  'native'),
@@ -193,6 +195,7 @@ list($options, $unrecognized) = cli_get_params(
         'adminpass'         => '',
         'non-interactive'   => false,
         'agree-license'     => false,
+        'allow-unstable'    => false,
         'help'              => false
     ),
     array(
@@ -402,6 +405,28 @@ $CFG->langotherroot      = $CFG->dataroot.'/lang';
 $CFG->langlocalroot      = $CFG->dataroot.'/lang';
 get_string_manager(true);
 
+// make sure we are installing stable release or require a confirmation
+if (isset($maturity)) {
+    if (($maturity < MATURITY_STABLE) and !$options['allow-unstable']) {
+        $maturitylevel = get_string('maturity'.$maturity, 'admin');
+
+        if ($interactive) {
+            cli_separator();
+            cli_heading(get_string('notice'));
+            echo get_string('maturitycorewarning', 'admin', $maturitylevel) . PHP_EOL;
+            echo get_string('morehelp') . ': ' . get_docs_url('admin/versions') . PHP_EOL;
+            echo get_string('continue') . PHP_LOL;
+            $prompt = get_string('cliyesnoprompt', 'admin');
+            $input = cli_input($prompt, '', array(get_string('clianswerno', 'admin'), get_string('cliansweryes', 'admin')));
+            if ($input == get_string('clianswerno', 'admin')) {
+                exit(1);
+            }
+        } else {
+            cli_error(get_string('maturitycorewarning', 'admin'));
+        }
+    }
+}
+
 // ask for db type - show only drivers available
 if ($interactive) {
     $options['dbtype'] = strtolower($options['dbtype']);
index 142f2d3..7e145f2 100644 (file)
@@ -40,8 +40,16 @@ require_once($CFG->libdir.'/environmentlib.php');
 
 
 // now get cli options
-list($options, $unrecognized) = cli_get_params(array('non-interactive'=>false, 'help'=>false),
-                                               array('h'=>'help'));
+list($options, $unrecognized) = cli_get_params(
+    array(
+        'non-interactive'   => false,
+        'allow-unstable'    => false,
+        'help'              => false
+    ),
+    array(
+        'h' => 'help'
+    )
+);
 
 $interactive = empty($options['non-interactive']);
 
@@ -59,6 +67,8 @@ Site defaults may be changed via local/defaults.php.
 
 Options:
 --non-interactive     No interactive questions or confirmations
+--allow-unstable      Upgrade even if the version is not marked as stable yet,
+                      required in non-interactive mode.
 -h, --help            Print out this help
 
 Example:
@@ -73,13 +83,14 @@ if (empty($CFG->version)) {
     cli_error(get_string('missingconfigversion', 'debug'));
 }
 
-require("$CFG->dirroot/version.php");       // defines $version and $release
+require("$CFG->dirroot/version.php");       // defines $version, $release and $maturity
 $CFG->target_release = $release;            // used during installation and upgrades
 
 if ($version < $CFG->version) {
     cli_error(get_string('downgradedcore', 'error'));
 }
 
+$oldversion = "$CFG->release ($CFG->version)";
 $newversion = "$release ($version)";
 
 // test environment first
@@ -93,6 +104,30 @@ if (!check_moodle_environment($version, $environment_results, false, ENV_SELECT_
     exit(1);
 }
 
+if ($interactive) {
+    $a = new stdClass();
+    $a->oldversion = $oldversion;
+    $a->newversion = $newversion;
+    echo cli_heading(get_string('databasechecking', '', $a)) . PHP_EOL;
+}
+
+// make sure we are upgrading to a stable release or display a warning
+if (isset($maturity)) {
+    if (($maturity < MATURITY_STABLE) and !$options['allow-unstable']) {
+        $maturitylevel = get_string('maturity'.$maturity, 'admin');
+
+        if ($interactive) {
+            cli_separator();
+            cli_heading(get_string('notice'));
+            echo get_string('maturitycorewarning', 'admin', $maturitylevel) . PHP_EOL;
+            echo get_string('morehelp') . ': ' . get_docs_url('admin/versions') . PHP_EOL;
+            cli_separator();
+        } else {
+            cli_error(get_string('maturitycorewarning', 'admin', $maturitylevel));
+        }
+    }
+}
+
 if ($interactive) {
     echo html_to_text(get_string('upgradesure', 'admin', $newversion))."\n";
     $prompt = get_string('cliyesnoprompt', 'admin');
old mode 100755 (executable)
new mode 100644 (file)
index 14b6f24..f40ad17 100644 (file)
@@ -86,7 +86,7 @@ if (!isset($CFG->version)) {
 
 $version = null;
 $release = null;
-require("$CFG->dirroot/version.php");       // defines $version and $release
+require("$CFG->dirroot/version.php");       // defines $version, $release and $maturity
 $CFG->target_release = $release;            // used during installation and upgrades
 
 if (!$version or !$release) {
@@ -130,14 +130,26 @@ if (!core_tables_exist()) {
     if (empty($confirmrelease)) {
         $strcurrentrelease = get_string('currentrelease');
         $PAGE->navbar->add($strcurrentrelease);
-        $PAGE->set_title($strinstallation.' - Moodle '.$CFG->target_release);
-        $PAGE->set_heading($strinstallation);
+        $PAGE->set_title($strinstallation);
+        $PAGE->set_heading($strinstallation . ' - Moodle ' . $CFG->target_release);
         $PAGE->set_cacheable(false);
         echo $OUTPUT->header();
         echo $OUTPUT->heading("Moodle $release");
+
+        if (isset($maturity)) {
+            // main version.php declares moodle code maturity
+            if ($maturity < MATURITY_STABLE) {
+                $maturitylevel = get_string('maturity'.$maturity, 'admin');
+                echo $OUTPUT->box(
+                    $OUTPUT->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
+                    $OUTPUT->container($OUTPUT->doc_link('admin/versions', get_string('morehelp'))),
+                    'generalbox maturitywarning');
+            }
+        }
+
         $releasenoteslink = get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/en/Release_Notes');
         $releasenoteslink = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $releasenoteslink); // extremely ugly validation hack
-        echo $OUTPUT->box($releasenoteslink, 'generalbox boxaligncenter boxwidthwide');
+        echo $OUTPUT->box($releasenoteslink, 'generalbox releasenoteslink');
 
         require_once($CFG->libdir.'/environmentlib.php');
         if (!check_moodle_environment($release, $environment_results, true, ENV_SELECT_RELEASE)) {
@@ -189,11 +201,20 @@ if ($version > $CFG->version) {  // upgrade
     $strdatabasechecking = get_string('databasechecking', '', $a);
 
     if (empty($confirmupgrade)) {
-        $PAGE->navbar->add($strdatabasechecking);
-        $PAGE->set_title($strdatabasechecking);
-        $PAGE->set_heading($stradministration);
+        $PAGE->set_title($stradministration);
+        $PAGE->set_heading($strdatabasechecking);
         $PAGE->set_cacheable(false);
         echo $OUTPUT->header();
+        if (isset($maturity)) {
+            // main version.php declares moodle code maturity
+            if ($maturity < MATURITY_STABLE) {
+                $maturitylevel = get_string('maturity'.$maturity, 'admin');
+                echo $OUTPUT->box(
+                    $OUTPUT->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
+                    $OUTPUT->container($OUTPUT->doc_link('admin/versions', get_string('morehelp'))),
+                    'generalbox maturitywarning');
+}
+        }
         $continueurl = new moodle_url('index.php', array('confirmupgrade' => 1));
         $cancelurl = new moodle_url('index.php');
         echo $OUTPUT->confirm(get_string('upgradesure', 'admin', $a->newversion), $continueurl, $cancelurl);
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index e77070b..8217876 100644 (file)
@@ -11,23 +11,32 @@ admin_externalpage_setup('replace');
 
 $search  = optional_param('search', '', PARAM_RAW);
 $replace = optional_param('replace', '', PARAM_RAW);
+$sure    = optional_param('sure', 0, PARAM_BOOL);
 
 ###################################################################
 echo $OUTPUT->header();
 
 echo $OUTPUT->heading('Search and replace text throughout the whole database');
 
+if ($DB->get_dbfamily() !== 'mysql' and $DB->get_dbfamily() !== 'postgres') {
+    //TODO: add $DB->text_replace() to DML drivers
+    echo $OUTPUT->notification('Sorry, this feature is implemented only for MySQL and PostgreSQL databases.');
+    echo $OUTPUT->footer();
+    die;
+}
 
-if (!data_submitted() or !$search or !$replace or !confirm_sesskey()) {   /// Print a form
+if (!data_submitted() or !$search or !$replace or !confirm_sesskey() or !$sure) {   /// Print a form
+    echo $OUTPUT->notification('This script is not supported, always make complete backup before proceeding!<br />This operation can not be reverted!');
 
     echo $OUTPUT->box_start();
     echo '<div class="mdl-align">';
-    echo '<form action="replace.php" method="post">';
+    echo '<form action="replace.php" method="post"><div>';
     echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
-    echo 'Search whole database for: <input type="text" name="search" /><br />';
-    echo 'Replace with this string: <input type="text" name="replace" /><br />';
-    echo '<input type="submit" value="Yes, do it now" /><br />';
-    echo '</form>';
+    echo '<div><label for="search">Search whole database for: </label><input id="search" type="text" name="search" size="40" /> (usually previous server URL)</div>';
+    echo '<div><label for="replace">Replace with this string: </label><input type="text" id="replace" name="replace" size="40" /> (usually new server URL)</div>';
+    echo '<div><label for="sure">I understand the risks of this operation: </label><input type="checkbox" id="sure" name="sure" value="1" /></div>';
+    echo '<div class="buttons"><input type="submit" class="singlebutton" value="Yes, do it now" /></div>';
+    echo '</div></form>';
     echo '</div>';
     echo $OUTPUT->box_end();
     echo $OUTPUT->footer();
@@ -35,23 +44,9 @@ if (!data_submitted() or !$search or !$replace or !confirm_sesskey()) {   /// Pr
 }
 
 echo $OUTPUT->box_start();
-
-if (!db_replace($search, $replace)) {
-    print_error('erroroccur', debug);
-}
-
+db_replace($search, $replace);
 echo $OUTPUT->box_end();
 
-/// Try to replace some well-known serialised contents (html blocks)
-echo $OUTPUT->notification('Replacing in html blocks...');
-$instances = $DB->get_recordset('block_instances', array('blockname' => 'html'));
-foreach ($instances as $instance) {
-    $blockobject = block_instance('html', $instance);
-    $blockobject->config->text = str_replace($search, $replace, $blockobject->config->text);
-    $blockobject->instance_config_commit();
-}
-$instances->close();
-
 /// Rebuild course cache which might be incorrect now
 echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess');
 rebuild_course_cache();
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index cd55ecf..e211340 100644 (file)
@@ -780,8 +780,8 @@ class define_role_table_advanced extends capability_table_with_risks {
         global $OUTPUT;
         // Extra fields at the top of the page.
         echo '<div class="topfields clearfix">';
-        $this->print_field('name', get_string('name'), $this->get_name_field('name'));
-        $this->print_field('shortname', get_string('shortname'), $this->get_shortname_field('shortname'));
+        $this->print_field('name', get_string('rolefullname', 'role'), $this->get_name_field('name'));
+        $this->print_field('shortname', get_string('roleshortname', 'role'), $this->get_shortname_field('shortname'));
         $this->print_field('edit-description', get_string('description'), $this->get_description_field('description'));
         $this->print_field('menuarchetype', get_string('archetype', 'role').'&nbsp;'.$OUTPUT->help_icon('archetype', 'role'), $this->get_archetype_field('archetype'));
         $this->print_field('', get_string('maybeassignedin', 'role'), $this->get_assignable_levels_control());
old mode 100755 (executable)
new mode 100644 (file)
index 0473b83..411abc8
     $table->head = array(
         get_string('role') . ' ' . $OUTPUT->help_icon('roles', 'role'),
         get_string('description'),
-        get_string('shortname'),
+        get_string('roleshortname', 'role'),
         get_string('edit')
     );
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 5ee0e8a..1861a5d
@@ -1,40 +1,46 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-/// Bulk user registration script from a comma separated file
-/// Returns list of users with their user ids
+/**
+ * Bulk user registration script from a comma separated file
+ *
+ * @package    core
+ * @subpackage admin
+ * @copyright  2004 onwards Martin Dougiamas (http://dougiamas.com)
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
 
 require('../config.php');
 require_once($CFG->libdir.'/adminlib.php');
 require_once($CFG->libdir.'/csvlib.class.php');
 require_once($CFG->dirroot.'/user/profile/lib.php');
 require_once($CFG->dirroot.'/group/lib.php');
+require_once('uploaduserlib.php');
 require_once('uploaduser_form.php');
 
 $iid         = optional_param('iid', '', PARAM_INT);
 $previewrows = optional_param('previewrows', 10, PARAM_INT);
-$readcount   = optional_param('readcount', 0, PARAM_INT);
-$uploadtype  = optional_param('uutype', 0, PARAM_INT);
-
-define('UU_ADDNEW', 0);
-define('UU_ADDINC', 1);
-define('UU_ADD_UPDATE', 2);
-define('UU_UPDATE', 3);
 
-$choices = array(UU_ADDNEW    => get_string('uuoptype_addnew', 'admin'),
-                 UU_ADDINC    => get_string('uuoptype_addinc', 'admin'),
-                 UU_ADD_UPDATE => get_string('uuoptype_addupdate', 'admin'),
-                 UU_UPDATE     => get_string('uuoptype_update', 'admin'));
-
-@set_time_limit(3600); // 1 hour should be enough
-raise_memory_limit(MEMORY_EXTRA);
+@set_time_limit(60*60); // 1 hour should be enough
+raise_memory_limit(MEMORY_HUGE);
 
 require_login();
 admin_externalpage_setup('uploadusers');
 require_capability('moodle/site:uploadusers', get_context_instance(CONTEXT_SYSTEM));
 
-$textlib = textlib_get_instance();
-$systemcontext = get_context_instance(CONTEXT_SYSTEM);
-
 $struserrenamed             = get_string('userrenamed', 'admin');
 $strusernotrenamedexists    = get_string('usernotrenamedexists', 'error');
 $strusernotrenamedmissing   = get_string('usernotrenamedmissing', 'error');
@@ -46,6 +52,8 @@ $strusernotupdated          = get_string('usernotupdatederror', 'error');
 $strusernotupdatednotexists = get_string('usernotupdatednotexists', 'error');
 $strusernotupdatedadmin     = get_string('usernotupdatedadmin', 'error');
 
+$struseruptodate            = get_string('useraccountuptodate', 'admin');
+
 $struseradded               = get_string('newuser');
 $strusernotadded            = get_string('usernotaddedregistered', 'error');
 $strusernotaddederror       = get_string('usernotaddederror', 'error');
@@ -57,7 +65,6 @@ $strusernotdeletedoff       = get_string('usernotdeletedoff', 'error');
 $strusernotdeletedadmin     = get_string('usernotdeletedadmin', 'error');
 
 $strcannotassignrole        = get_string('cannotassignrole', 'error');
-$strduplicateusername       = get_string('duplicateusername', 'error');
 
 $struserauthunsupported     = get_string('userauthunsupported', 'error');
 $stremailduplicate          = get_string('useremailduplicate', 'error');
@@ -65,20 +72,23 @@ $stremailduplicate          = get_string('useremailduplicate', 'error');
 $strinvalidpasswordpolicy   = get_string('invalidpasswordpolicy', 'error');
 $errorstr                   = get_string('error');
 
-$returnurl = $CFG->wwwroot.'/'.$CFG->admin.'/uploaduser.php';
-$bulknurl  = $CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk.php';
+$returnurl = new moodle_url('/admin/uploaduser.php');
+$bulknurl  = new moodle_url('/admin/user/user_bulk.php');
 
 $today = time();
 $today = make_timestamp(date('Y', $today), date('m', $today), date('d', $today), 0, 0, 0);
 
 // array of all valid fields for validation
 $STD_FIELDS = array('id', 'firstname', 'lastname', 'username', 'email',
-        'city', 'country', 'lang', 'auth', 'timezone', 'mailformat',
+        'city', 'country', 'lang', 'timezone', 'mailformat',
         'maildisplay', 'maildigest', 'htmleditor', 'ajax', 'autosubscribe',
-        'mnethostid', 'institution', 'department', 'idnumber', 'skype',
+        'institution', 'department', 'idnumber', 'skype',
         'msn', 'aim', 'yahoo', 'icq', 'phone1', 'phone2', 'address',
-        'url', 'description', 'descriptionformat', 'oldusername', 'deleted',
-        'password');
+        'url', 'description', 'descriptionformat', 'password',
+        'auth',        // watch out when changing auth type or using external auth plugins!
+        'oldusername', // use when renaming users - this is the original username
+        'deleted',     // 1 means delete user
+    );
 
 $PRF_FIELDS = array();
 
@@ -86,27 +96,28 @@ if ($prof_fields = $DB->get_records('user_info_field')) {
     foreach ($prof_fields as $prof_field) {
         $PRF_FIELDS[] = 'profile_field_'.$prof_field->shortname;
     }
-    unset($prof_fields);
 }
+unset($prof_fields);
 
 if (empty($iid)) {
-    $mform = new admin_uploaduser_form1();
+    $mform1 = new admin_uploaduser_form1();
 
-    if ($formdata = $mform->get_data()) {
+    if ($formdata = $mform1->get_data()) {
         $iid = csv_import_reader::get_new_iid('uploaduser');
         $cir = new csv_import_reader($iid, 'uploaduser');
 
-        $content = $mform->get_file_content('userfile');
-        $optype = $formdata->uutype;
-        $readcount = $cir->load_csv_content($content, $formdata->encoding, $formdata->delimiter_name, 'validate_user_upload_columns');
+        $content = $mform1->get_file_content('userfile');
+
+        $readcount = $cir->load_csv_content($content, $formdata->encoding, $formdata->delimiter_name);
         unset($content);
 
         if ($readcount === false) {
-            //TODO: need more detailed error info
             print_error('csvloaderror', '', $returnurl);
         } else if ($readcount == 0) {
             print_error('csvemptyfile', 'error', $returnurl);
         }
+        // test if columns ok
+        $filecolumns = uu_validate_user_upload_columns($cir, $STD_FIELDS, $PRF_FIELDS, $returnurl);
         // continue to form2
 
     } else {
@@ -114,61 +125,56 @@ if (empty($iid)) {
 
         echo $OUTPUT->heading_with_help(get_string('uploadusers', 'admin'), 'uploadusers', 'admin');
 
-        $mform->display();
+        $mform1->display();
         echo $OUTPUT->footer();
         die;
     }
 } else {
     $cir = new csv_import_reader($iid, 'uploaduser');
+    $filecolumns = uu_validate_user_upload_columns($cir, $STD_FIELDS, $PRF_FIELDS, $returnurl);
 }
 
-if (!$columns = $cir->get_columns()) {
-    print_error('cannotreadtmpfile', 'error', $returnurl);
-}
-$mform = new admin_uploaduser_form2(null, $columns);
-// get initial date from form1
-$mform->set_data(array('iid'=>$iid, 'previewrows'=>$previewrows, 'readcount'=>$readcount, 'uutypelabel'=>$choices[$uploadtype], 'uutype'=>$uploadtype));
+$mform2 = new admin_uploaduser_form2(null, array('columns'=>$filecolumns, 'data'=>array('iid'=>$iid, 'previewrows'=>$previewrows)));
 
 // If a file has been uploaded, then process it
-if ($formdata = $mform->is_cancelled()) {
+if ($formdata = $mform2->is_cancelled()) {
     $cir->cleanup(true);
     redirect($returnurl);
 
-} else if ($formdata = $mform->get_data()) {
+} else if ($formdata = $mform2->get_data()) {
     // Print the header
     echo $OUTPUT->header();
     echo $OUTPUT->heading(get_string('uploadusersresult', 'admin'));
 
     $optype = $formdata->uutype;
 
-    $createpasswords   = (!empty($formdata->uupasswordnew) and $optype != UU_UPDATE);
-    $updatepasswords   = (!empty($formdata->uupasswordold)  and $optype != UU_ADDNEW and $optype != UU_ADDINC);
-    $allowrenames      = (!empty($formdata->uuallowrenames) and $optype != UU_ADDNEW and $optype != UU_ADDINC);
-    $allowdeletes      = (!empty($formdata->uuallowdeletes) and $optype != UU_ADDNEW and $optype != UU_ADDINC);
     $updatetype        = isset($formdata->uuupdatetype) ? $formdata->uuupdatetype : 0;
+    $createpasswords   = (!empty($formdata->uupasswordnew) and $optype != UU_USER_UPDATE);
+    $updatepasswords   = (!empty($formdata->uupasswordold)  and $optype != UU_USER_ADDNEW and $optype != UU_USER_ADDINC and ($updatetype == UU_UPDATE_FILEOVERRIDE or $updatetype == UU_UPDATE_ALLOVERRIDE));
+    $allowrenames      = (!empty($formdata->uuallowrenames) and $optype != UU_USER_ADDNEW and $optype != UU_USER_ADDINC);
+    $allowdeletes      = (!empty($formdata->uuallowdeletes) and $optype != UU_USER_ADDNEW and $optype != UU_USER_ADDINC);
     $bulk              = $formdata->uubulk;
     $noemailduplicates = $formdata->uunoemailduplicates;
+    $standardusernames = $formdata->uustandardusernames;
+    $resetpasswords    = isset($formdata->uuforcepasswordchange) ? $formdata->uuforcepasswordchange : UU_PWRESET_NONE;
 
     // verification moved to two places: after upload and into form2
-    $usersnew     = 0;
-    $usersupdated = 0;
-    $userserrors  = 0;
-    $deletes      = 0;
-    $deleteerrors = 0;
-    $renames      = 0;
-    $renameerrors = 0;
-    $usersskipped = 0;
+    $usersnew      = 0;
+    $usersupdated  = 0;
+    $usersuptodate = 0; //not printed yet anywhere
+    $userserrors   = 0;
+    $deletes       = 0;
+    $deleteerrors  = 0;
+    $renames       = 0;
+    $renameerrors  = 0;
+    $usersskipped  = 0;
     $weakpasswords = 0;
 
     // caches
-    $ccache       = array(); // course cache - do not fetch all courses here, we  will not probably use them all anyway!
-    $rolecache    = uu_allowed_roles_cache(); // roles lookup cache
-    $manualcache  = array(); // cache of used manual enrol plugins in each course
-
-    $allowedauths   = uu_allowed_auths();
-    $allowedauths   = array_keys($allowedauths);
-    $availableauths = get_plugin_list('auth');
-    $availableauths = array_keys($availableauths);
+    $ccache         = array(); // course cache - do not fetch all courses here, we  will not probably use them all anyway!
+    $rolecache      = uu_allowed_roles_cache(); // roles lookup cache
+    $manualcache    = array(); // cache of used manual enrol plugins in each course
+    $supportedauths = uu_supported_auths(); // officially supported plugins that are enabled
 
     // we use only manual enrol plugin here, if it is disabled no enrol is done
     if (enrol_is_enabled('manual')) {
@@ -188,7 +194,7 @@ if ($formdata = $mform->is_cancelled()) {
 
     // init upload progress tracker
     $upt = new uu_progress_tracker();
-    $upt->init(); // start table
+    $upt->start(); // start table
 
     while ($line = $cir->next()) {
         $upt->flush();
@@ -196,37 +202,43 @@ if ($formdata = $mform->is_cancelled()) {
 
         $upt->track('line', $linenum);
 
-        $forcechangepassword = false;
-
         $user = new stdClass();
-        // by default, use the local mnet id (this may be changed in the file)
-        $user->mnethostid = $CFG->mnet_localhost_id;
+
         // add fields to user object
-        foreach ($line as $key => $value) {
-            if ($value !== '') {
-                $key = $columns[$key];
-                $user->$key = $value;
-                if (in_array($key, $upt->columns)) {
-                    $upt->track($key, $value);
+        foreach ($line as $keynum => $value) {
+            if (!isset($filecolumns[$keynum])) {
+                // this should not happen
+                continue;
+            }
+            $key = $filecolumns[$keynum];
+            if (strpos($key, 'profile_field_') === 0) {
+                //NOTE: bloody mega hack alert!!
+                if (isset($USER->$key) and is_array($USER->$key)) {
+                    // this must be some hacky field that is abusing arrays to store content and format
+                    $user->$key = array();
+                    $user->$key['text']   = $value;
+                    $user->$key['format'] = FORMAT_MOODLE;
+                } else {
+                    $user->$key = $value;
                 }
             } else {
-                $user->$columns[$key] = '';
+                $user->$key = $value;
             }
-        }
 
-        // get username, first/last name now - we need them in templates!!
-        if ($optype == UU_UPDATE) {
-            // when updating only username is required
-            if (!isset($user->username)) {
-                $upt->track('status', get_string('missingfield', 'error', 'username'), 'error');
-                $upt->track('username', $errorstr, 'error');
-                $userserrors++;
-                continue;
+            if (in_array($key, $upt->columns)) {
+                // default value in progress tracking table, can be changed later
+                $upt->track($key, s($value), 'normal');
             }
+        }
+        if (!isset($user->username)) {
+            // prevent warnings bellow
+            $user->username = '';
+        }
 
-        } else {
+        if ($optype == UU_USER_ADDNEW or $optype == UU_USER_ADDINC) {
+            // user creation is a special case - the username may be constructed from templates using firstname and lastname
+            // better never try this in mixed update types
             $error = false;
-            // when all other ops need firstname and lastname
             if (!isset($user->firstname) or $user->firstname === '') {
                 $upt->track('status', get_string('missingfield', 'error', 'firstname'), 'error');
                 $upt->track('firstname', $errorstr, 'error');
@@ -242,43 +254,50 @@ if ($formdata = $mform->is_cancelled()) {
                 continue;
             }
             // we require username too - we might use template for it though
-            if (!isset($user->username)) {
-                if (!isset($formdata->username) or $formdata->username === '') {
-                    $upt->track('status', get_string('missingfield', 'error', 'username'), 'error');
-                    $upt->track('username', $errorstr, 'error');
-                    $userserrors++;
-                    continue;
-                } else {
-                    $user->username = process_template($formdata->username, $user);
-                    $upt->track('username', $user->username);
-                }
+            if (empty($user->username) and !empty($formdata->username)) {
+                $user->username = uu_process_template($formdata->username, $user);
+                $upt->track('username', s($user->username));
             }
         }
 
         // normalize username
-        $user->username = clean_param($user->username, PARAM_USERNAME);
+        $originalusername = $user->username;
+        if ($standardusernames) {
+            $user->username = clean_param($user->username, PARAM_USERNAME);
+        }
 
+        // make sure we really have username
         if (empty($user->username)) {
             $upt->track('status', get_string('missingfield', 'error', 'username'), 'error');
             $upt->track('username', $errorstr, 'error');
             $userserrors++;
             continue;
+        } else if ($user->username === 'guest') {
+            $upt->track('status', get_string('guestnoeditprofileother', 'error'), 'error');
+            $userserrors++;
+            continue;
         }
 
-        if ($existinguser = $DB->get_record('user', array('username'=>$user->username, 'mnethostid'=>$user->mnethostid))) {
+        if ($existinguser = $DB->get_record('user', array('username'=>$user->username, 'mnethostid'=>$CFG->mnet_localhost_id))) {
             $upt->track('id', $existinguser->id, 'normal', false);
         }
 
         // find out in username incrementing required
-        if ($existinguser and $optype == UU_ADDINC) {
-            $oldusername = $user->username;
-            $user->username = increment_username($user->username, $user->mnethostid);
-            $upt->track('username', '', 'normal', false); // clear previous
-            $upt->track('username', $oldusername.'-->'.$user->username, 'info');
+        if ($existinguser and $optype == UU_USER_ADDINC) {
+            $user->username = uu_increment_username($user->username);
             $existinguser = false;
         }
 
+        // notify about nay username changes
+        if ($originalusername !== $user->username) {
+            $upt->track('username', '', 'normal', false); // clear previous
+            $upt->track('username', s($originalusername).'-->'.s($user->username), 'info');
+        } else {
+            $upt->track('username', s($user->username), 'normal', false);
+        }
+
         // add default values for remaining fields
+        $formdefaults = array();
         foreach ($STD_FIELDS as $field) {
             if (isset($user->$field)) {
                 continue;
@@ -286,7 +305,8 @@ if ($formdata = $mform->is_cancelled()) {
             // all validation moved to form2
             if (isset($formdata->$field)) {
                 // process templates
-                $user->$field = process_template($formdata->$field, $user);
+                $user->$field = uu_process_template($formdata->$field, $user);
+                $formdefaults[$field] = true;
             }
         }
         foreach ($PRF_FIELDS as $field) {
@@ -295,13 +315,8 @@ if ($formdata = $mform->is_cancelled()) {
             }
             if (isset($formdata->$field)) {
                 // process templates
-                if (is_array($formdata->$field)) {
-                    foreach ($formdata->$field as $k=>$v) {
-                        $user->$field[$k] = process_template($v, $user);
-                    }
-                } else {
-                    $user->$field = process_template($formdata->$field, $user);
-                }
+                $user->$field = uu_process_template($formdata->$field, $user);
+                $formdefaults[$field] = true;
             }
         }
 
@@ -336,7 +351,6 @@ if ($formdata = $mform->is_cancelled()) {
 
         // renaming requested?
         if (!empty($user->oldusername) ) {
-            $oldusername = $textlib->strtolower($user->oldusername);
             if (!$allowrenames) {
                 $usersskipped++;
                 $upt->track('status', $strusernotrenamedoff, 'warning');
@@ -349,7 +363,20 @@ if ($formdata = $mform->is_cancelled()) {
                 continue;
             }
 
-            if ($olduser = $DB->get_record('user', array('username'=>$oldusername, 'mnethostid'=>$user->mnethostid))) {
+            if ($user->username === 'guest') {
+                $upt->track('status', get_string('guestnoeditprofileother', 'error'), 'error');
+                $renameerrors++;
+                continue;
+            }
+
+            if ($standardusernames) {
+                $oldusername = clean_param($user->oldusername, PARAM_USERNAME);
+            } else {
+                $oldusername = $user->oldusername;
+            }
+
+            // no guessing when looking for old username, it must be exact match
+            if ($olduser = $DB->get_record('user', array('username'=>$oldusername, 'mnethostid'=>$CFG->mnet_localhost_id))) {
                 $upt->track('id', $olduser->id, 'normal', false);
                 if (is_siteadmin($olduser->id)) {
                     $upt->track('status', $strusernotrenamedadmin, 'error');
@@ -358,7 +385,7 @@ if ($formdata = $mform->is_cancelled()) {
                 }
                 $DB->set_field('user', 'username', $user->username, array('id'=>$olduser->id));
                 $upt->track('username', '', 'normal', false); // clear previous
-                $upt->track('username', $oldusername.'-->'.$user->username, 'info');
+                $upt->track('username', s($oldusername).'-->'.s($user->username), 'info');
                 $upt->track('status', $struserrenamed);
                 $renames++;
             } else {
@@ -373,7 +400,7 @@ if ($formdata = $mform->is_cancelled()) {
         // can we process with update or insert?
         $skip = false;
         switch ($optype) {
-            case UU_ADDNEW:
+            case UU_USER_ADDNEW:
                 if ($existinguser) {
                     $usersskipped++;
                     $upt->track('status', $strusernotadded, 'warning');
@@ -381,25 +408,29 @@ if ($formdata = $mform->is_cancelled()) {
                 }
                 break;
 
-            case UU_ADDINC:
+            case UU_USER_ADDINC:
                 if ($existinguser) {
                     //this should not happen!
                     $upt->track('status', $strusernotaddederror, 'error');
                     $userserrors++;
-                    continue;
+                    $skip = true;
                 }
                 break;
 
-            case UU_ADD_UPDATE:
+            case UU_USER_ADD_UPDATE:
                 break;
 
-            case UU_UPDATE:
+            case UU_USER_UPDATE:
                 if (!$existinguser) {
                     $usersskipped++;
                     $upt->track('status', $strusernotupdatednotexists, 'warning');
                     $skip = true;
                 }
                 break;
+
+            default:
+                // unknown type
+                $skip = true;
         }
 
         if ($skip) {
@@ -409,201 +440,180 @@ if ($formdata = $mform->is_cancelled()) {
         if ($existinguser) {
             $user->id = $existinguser->id;
 
+            $upt->track('username', html_writer::link(new moodle_url('/user/profile.php', array('id'=>$existinguser->id)), s($existinguser->username)), 'normal', false);
+
             if (is_siteadmin($user->id)) {
                 $upt->track('status', $strusernotupdatedadmin, 'error');
                 $userserrors++;
                 continue;
             }
 
-            if (!$updatetype) {
-                // no updates of existing data at all
-            } else {
-                $existinguser->timemodified = time();
-                if (empty($existinguser->timecreated)) {
-                    if (empty($existinguser->firstaccess)) {
-                        $existinguser->timecreated = time();
-                    } else {
-                        $existinguser->timecreated = $existinguser->firstaccess;
-                    }
-                }
+            $existinguser->timemodified = time();
+            // do NOT mess with timecreated or firstaccess here!
+
+            //load existing profile data
+            profile_load_data($existinguser);
 
-                //load existing profile data
-                profile_load_data($existinguser);
+            $upt->track('auth', $existinguser->auth, 'normal', false);
 
-                $allowed = array();
-                if ($updatetype == 1) {
-                    $allowed = $columns;
-                } else if ($updatetype == 2 or $updatetype == 3) {
-                    $allowed = array_merge($STD_FIELDS, $PRF_FIELDS);
+            $doupdate = false;
+
+            if ($updatetype != UU_UPDATE_NOCHANGES) {
+                if (!empty($user->auth) and $user->auth !== $existinguser->auth) {
+                    $upt->track('auth', s($existinguser->auth).'-->'.s($user->auth), 'info', false);
+                    $existinguser->auth = $user->auth;
+                    if (!isset($supportedauths[$user->auth])) {
+                        $upt->track('auth', $struserauthunsupported, 'warning');
+                    }
                 }
-                foreach ($allowed as $column) {
-                    $temppasswordhandler = '';
-                    if ($column == 'username') {
+                $allcolumns = array_merge($STD_FIELDS, $PRF_FIELDS);
+                foreach ($allcolumns as $column) {
+                    if ($column === 'username' or $column === 'password' or $column === 'auth') {
+                        // these can not be changed here
                         continue;
                     }
-                    if ((property_exists($existinguser, $column) and property_exists($user, $column)) or in_array($column, $PRF_FIELDS)) {
-                        if ($updatetype == 3 && $existinguser->$column !== '') {
-                            //missing == non-empty only
+                    if (!property_exists($user, $column) or !property_exists($existinguser, $column)) {
+                        // this should never happen
+                        continue;
+                    }
+                    if ($updatetype == UU_UPDATE_MISSING) {
+                        if (!is_null($existinguser->$column) and $existinguser->$column !== '') {
                             continue;
                         }
-                        if ($existinguser->$column !== $user->$column) {
-                            if ($column == 'email') {
-                                if ($DB->record_exists('user', array('email'=>$user->email))) {
-                                    if ($noemailduplicates) {
-                                        $upt->track('email', $stremailduplicate, 'error');
-                                        $upt->track('status', $strusernotupdated, 'error');
-                                        $userserrors++;
-                                        continue 2;
-                                    } else {
-                                        $upt->track('email', $stremailduplicate, 'warning');
-                                    }
-                                }
-                            }
-
-                            if ($column == 'password') {
-                                $temppasswordhandler = $existinguser->password;
-                            }
+                    } else if ($updatetype == UU_UPDATE_ALLOVERRIDE) {
+                        // we override everything
 
-                            if ($column == 'auth') {
-                                if (isset($user->auth) && empty($user->auth)) {
-                                    $user->auth = 'manual';
-                                }
-
-                                $existinguserauth = get_auth_plugin($existinguser->auth);
-                                $existingisinternalauth = $existinguserauth->is_internal();
-
-                                $userauth = get_auth_plugin($user->auth);
-                                $isinternalauth = $userauth->is_internal();
-
-                                if ($isinternalauth === $existingisinternalauth) {
-                                    if ($updatepasswords) {
-                                        if (empty($user->password)) {
-                                            $forcechangepassword = true;
-                                        }
-                                    }
-                                } else if ($isinternalauth) {
-                                    $existinguser->password = '';
-                                    $forcechangepassword = true;
+                    } else if ($updatetype == UU_UPDATE_FILEOVERRIDE) {
+                        if (!empty($formdefaults[$column])) {
+                            // do not override with form defaults
+                            continue;
+                        }
+                    }
+                    if ($existinguser->$column !== $user->$column) {
+                        if ($column === 'email') {
+                            if ($DB->record_exists('user', array('email'=>$user->email))) {
+                                if ($noemailduplicates) {
+                                    $upt->track('email', $stremailduplicate, 'error');
+                                    $upt->track('status', $strusernotupdated, 'error');
+                                    $userserrors++;
+                                    continue 2;
+                                } else {
+                                    $upt->track('email', $stremailduplicate, 'warning');
                                 }
                             }
-
-                            $upt->track($column, '', 'normal', false); // clear previous
-                            if ($column != 'password' && in_array($column, $upt->columns)) {
-                                $upt->track($column, $existinguser->$column.'-->'.$user->$column, 'info');
+                            if (!validate_email($user->email)) {
+                                $upt->track('email', get_string('invalidemail'), 'warning');
                             }
-                            $existinguser->$column = $user->$column;
+                        }
 
-                            if (!isset($user->auth) && !$updatepasswords) {
-                                $existinguser->password = $temppasswordhandler;
-                            }
+                        if (in_array($column, $upt->columns)) {
+                            $upt->track($column, s($existinguser->$column).'-->'.s($user->$column), 'info', false);
                         }
+                        $existinguser->$column = $user->$column;
+                        $doupdate = true;
                     }
                 }
+            }
 
-                // do not update record if new auth plugin does not exist!
-                if (!in_array($existinguser->auth, $availableauths)) {
-                    $upt->track('auth', get_string('userautherror', 'error', $existinguser->auth), 'error');
-                    $upt->track('status', $strusernotupdated, 'error');
-                    $userserrors++;
-                    continue;
-                } else if (!in_array($existinguser->auth, $allowedauths)) {
-                    $upt->track('auth', $struserauthunsupported, 'warning');
-                }
-
+            try {
                 $auth = get_auth_plugin($existinguser->auth);
-                $isinternalauth = $auth->is_internal();
+            } catch (Exception $e) {
+                $upt->track('auth', get_string('userautherror', 'error', s($existinguser->auth)), 'error');
+                $upt->track('status', $strusernotupdated, 'error');
+                $userserrors++;
+                continue;
+            }
+            $isinternalauth = $auth->is_internal();
 
-                if ($isinternalauth && $updatepasswords && !check_password_policy($user->password, $errmsg)) {
-                    $upt->track('password', get_string('internalauthpassworderror', 'error', $existinguser->password), 'error');
-                    $upt->track('status', $strusernotupdated, 'error');
-                    $userserrors++;
-                    continue;
+            // changing of passwords is a special case
+            // do not force password changes for external auth plugins!
+            $oldpw = $existinguser->password;
+            if (!$isinternalauth) {
+                $existinguser->password = 'not cached';
+                $upt->track('password', '-', 'normal', false);
+                // clean up prefs
+                unset_user_preference('create_password', $existinguser);
+                unset_user_preference('auth_forcepasswordchange', $existinguser);
+
+            } else if (!empty($user->password)) {
+                if ($updatepasswords) {
+                    $errmsg = null;
+                    $weak = !check_password_policy($user->password, $errmsg);
+                    if ($resetpasswords == UU_PWRESET_ALL or ($resetpasswords == UU_PWRESET_WEAK and $weak)) {
+                        if ($weak) {
+                            $weakpasswords++;
+                            $upt->track('password', $strinvalidpasswordpolicy, 'warning');
+                        }
+                        set_user_preference('auth_forcepasswordchange', 1, $existinguser);
+                    } else {
+                        unset_user_preference('auth_forcepasswordchange', $existinguser);
+                    }
+                    unset_user_preference('create_password', $existinguser); // no need to create password any more
+                    $existinguser->password = hash_internal_user_password($user->password);
+                    $upt->track('password', $user->password, 'normal', false);
                 } else {
-                    $forcechangepassword = true;
+                    // do not print password when not changed
+                    $upt->track('password', '', 'normal', false);
                 }
+            }
 
-                if (!$isinternalauth) {
-                    $existinguser->password = 'not cached';
-                    $upt->track('password', 'not cached');
-                    $forcechangepassword = false;
-                } else if ($updatepasswords){
-                    $existinguser->password = hash_internal_user_password($existinguser->password);
-                } else {
-                    $existinguser->password = $temppasswordhandler;
-                }
+            if ($doupdate or $existinguser->password !== $oldpw) {
+                // we want only users that were really updated
 
                 $DB->update_record('user', $existinguser);
 
-                //remove user preference
-
-                if (get_user_preferences('create_password', false, $existinguser)) {
-                    unset_user_preference('create_password', $existinguser);
-                }
-                if (get_user_preferences('auth_forcepasswordchange', false, $existinguser)) {
-                    unset_user_preference('auth_forcepasswordchange', $existinguser);
-                }
-
-                if ($isinternalauth && $updatepasswords) {
-                    if (empty($existinguser->password)) {
-                        set_user_preference('create_password', 1, $existinguser->id);
-                        set_user_preference('auth_forcepasswordchange', 1, $existinguser->id);
-                        $upt->track('password', get_string('new'));
-                    } else if ($forcechangepassword) {
-                        set_user_preference('auth_forcepasswordchange', 1, $existinguser->id);
-                    }
-                }
                 $upt->track('status', $struserupdated);
                 $usersupdated++;
                 // save custom profile fields data from csv file
                 profile_save_data($existinguser);
 
                 events_trigger('user_updated', $existinguser);
-            }
 
-            if ($bulk == 2 or $bulk == 3) {
-                if (!in_array($user->id, $SESSION->bulk_users)) {
-                    $SESSION->bulk_users[] = $user->id;
+                if ($bulk == UU_BULK_UPDATED or $bulk == UU_BULK_ALL) {
+                    if (!in_array($user->id, $SESSION->bulk_users)) {
+                        $SESSION->bulk_users[] = $user->id;
+                    }
+                }
+
+            } else {
+                // no user information changed
+                $upt->track('status', $struseruptodate);
+                $usersuptodate++;
+
+                if ($bulk == UU_BULK_ALL) {
+                    if (!in_array($user->id, $SESSION->bulk_users)) {
+                        $SESSION->bulk_users[] = $user->id;
+                    }
                 }
             }
 
         } else {
-            // save the user to the database
-            $user->confirmed = 1;
+            // save the new user to the database
+            $user->confirmed    = 1;
             $user->timemodified = time();
-            $user->timecreated = time();
+            $user->timecreated  = time();
+            $user->mnethostid   = $CFG->mnet_localhost_id; // we support ONLY local accounts here, sorry
 
-            if (isset($user->auth) && empty($user->auth)) {
+            if (empty($user->auth)) {
                 $user->auth = 'manual';
             }
-            $auth = get_auth_plugin($user->auth);
-            $isinternalauth = $auth->is_internal();
+            $upt->track('auth', $user->auth, 'normal', false);
 
-            if (!$createpasswords && $isinternalauth) {
-                if (empty($user->password)) {
-                    $upt->track('password', get_string('missingfield', 'error', 'password'), 'error');
-                    $upt->track('status', $strusernotaddederror, 'error');
-                    $userserrors++;
-                    continue;
-                } else if ($forcechangepassword) {
-                    $upt->track('password', $strinvalidpasswordpolicy);
-                    $upt->track('status', $strusernotaddederror, 'error');
-                    $userserrors++;
-                    continue;
-                }
+            // do not insert record if new auth plugin does not exist!
+            try {
+                $auth = get_auth_plugin($user->auth);
+            } catch (Exception $e) {
+                $upt->track('auth', get_string('userautherror', 'error', s($user->auth)), 'error');
+                $upt->track('status', $strusernotaddederror, 'error');
+                $userserrors++;
+                continue;
             }
-
-            // do not insert record if new auth plguin does not exist!
-            if (isset($user->auth)) {
-                if (!in_array($user->auth, $availableauths)) {
-                    $upt->track('auth', get_string('userautherror', 'error', $user->auth), 'error');
-                    $upt->track('status', $strusernotaddederror, 'error');
-                    $userserrors++;
-                    continue;
-                } else if (!in_array($user->auth, $allowedauths)) {
-                    $upt->track('auth', $struserauthunsupported, 'warning');
-                }
+            if (!isset($supportedauths[$user->auth])) {
+                $upt->track('auth', $struserauthunsupported, 'warning');
             }
 
+            $isinternalauth = $auth->is_internal();
+
             if ($DB->record_exists('user', array('email'=>$user->email))) {
                 if ($noemailduplicates) {
                     $upt->track('email', $stremailduplicate, 'error');
@@ -614,38 +624,66 @@ if ($formdata = $mform->is_cancelled()) {
                     $upt->track('email', $stremailduplicate, 'warning');
                 }
             }
-            if (!$isinternalauth) {
-                $user->password = 'not cached';
-                $upt->track('password', 'not cached');
-            } else {
-                $user->password = hash_internal_user_password($user->password);
+            if (!validate_email($user->email)) {
+                $upt->track('email', get_string('invalidemail'), 'warning');
             }
 
-            $user->id = $DB->insert_record('user', $user);
-            $info = ': ' . $user->username .' (ID = ' . $user->id . ')';
-            $upt->track('status', $struseradded);
-            $upt->track('id', $user->id, 'normal', false);
-            $usersnew++;
-            if ($createpasswords && $isinternalauth) {
-                if (empty($user->password) || $forcechangepassword) {
-                    // passwords will be created and sent out on cron
-                    set_user_preference('create_password', 1, $user->id);
-                    set_user_preference('auth_forcepasswordchange', 1, $user->id);
-                    $upt->track('password', get_string('new'));
+            $forcechangepassword = false;
+
+            if ($isinternalauth) {
+                if (empty($user->password)) {
+                    if ($createpasswords) {
+                        $user->password = 'to be generated';
+                        $upt->track('password', '', 'normal', false);
+                        $upt->track('password', get_string('uupasswordcron', 'admin'), 'warning', false);
+                    } else {
+                        $upt->track('password', '', 'normal', false);
+                        $upt->track('password', get_string('missingfield', 'error', 'password'), 'error');
+                        $upt->track('status', $strusernotaddederror, 'error');
+                        $userserrors++;
+                        continue;
+                    }
                 } else {
-                    set_user_preference('auth_forcepasswordchange', 1, $user->id);
+                    $errmsg = null;
+                    $weak = !check_password_policy($user->password, $errmsg);
+                    if ($resetpasswords == UU_PWRESET_ALL or ($resetpasswords == UU_PWRESET_WEAK and $weak)) {
+                        if ($weak) {
+                            $weakpasswords++;
+                            $upt->track('password', $strinvalidpasswordpolicy, 'warning');
+                        }
+                        $forcechangepassword = true;
+                    }
+                    $user->password = hash_internal_user_password($user->password);
                 }
+            } else {
+                $user->password = 'not cached';
+                $upt->track('password', '-', 'normal', false);
             }
 
+            // create user - insert_record ignores any extra properties
+            $user->id = $DB->insert_record('user', $user);
+            $upt->track('username', html_writer::link(new moodle_url('/user/profile.php', array('id'=>$user->id)), s($user->username)), 'normal', false);
+
             // save custom profile fields data
             profile_save_data($user);
 
+            if ($forcechangepassword) {
+                set_user_preference('auth_forcepasswordchange', 1, $user);
+            }
+            if ($user->password === 'to be generated') {
+                set_user_preference('create_password', 1, $user);
+            }
+
+            $upt->track('status', $struseradded);
+            $upt->track('id', $user->id, 'normal', false);
+            $usersnew++;
+
             // make sure user context exists
             get_context_instance(CONTEXT_USER, $user->id);
 
             events_trigger('user_created', $user);
 
-            if ($bulk == 1 or $bulk == 3) {
+            if ($bulk == UU_BULK_NEW or $bulk == UU_BULK_ALL) {
                 if (!in_array($user->id, $SESSION->bulk_users)) {
                     $SESSION->bulk_users[] = $user->id;
                 }
@@ -653,7 +691,8 @@ if ($formdata = $mform->is_cancelled()) {
         }
 
         // find course enrolments, groups, roles/types and enrol periods
-        foreach ($columns as $column) {
+        // this is again a special case, we always do this for any updated or created users
+        foreach ($filecolumns as $column) {
             if (!preg_match('/^course\d+$/', $column)) {
                 continue;
             }
@@ -665,7 +704,7 @@ if ($formdata = $mform->is_cancelled()) {
             $shortname = $user->{'course'.$i};
             if (!array_key_exists($shortname, $ccache)) {
                 if (!$course = $DB->get_record('course', array('shortname'=>$shortname), 'id, shortname')) {
-                    $upt->track('enrolments', get_string('unknowncourse', 'error', $shortname), 'error');
+                    $upt->track('enrolments', get_string('unknowncourse', 'error', s($shortname)), 'error');
                     continue;
                 }
                 $ccache[$shortname] = $course;
@@ -696,7 +735,7 @@ if ($formdata = $mform->is_cancelled()) {
                     if (array_key_exists($addrole, $rolecache)) {
                         $rid = $rolecache[$addrole]->id;
                     } else {
-                        $upt->track('enrolments', get_string('unknownrole', 'error', $addrole), 'error');
+                        $upt->track('enrolments', get_string('unknownrole', 'error', s($addrole)), 'error');
                         continue;
                     }
 
@@ -720,9 +759,9 @@ if ($formdata = $mform->is_cancelled()) {
                     // find duration
                     $timeend   = 0;
                     if (!empty($user->{'enrolperiod'.$i})) {
-                        $duration = (int)$user->{'enrolperiod'.$i} * 86400; // convert days to seconds
+                        $duration = (int)$user->{'enrolperiod'.$i} * 60*60*24; // convert days to seconds
                         if ($duration > 0) { // sanity check
-                            $timeend   = $today + $duration;
+                            $timeend = $today + $duration;
                         }
                     }
 
@@ -751,9 +790,9 @@ if ($formdata = $mform->is_cancelled()) {
                             $ccache[$shortname]->groups[$gid]->id   = $gid;
                             $ccache[$shortname]->groups[$gid]->name = $group->name;
                             if (!is_numeric($group->name)) { // only non-numeric names are supported!!!
-                            $ccache[$shortname]->groups[$group->name] = new stdClass();
-                            $ccache[$shortname]->groups[$group->name]->id   = $gid;
-                            $ccache[$shortname]->groups[$group->name]->name = $group->name;
+                                $ccache[$shortname]->groups[$group->name] = new stdClass();
+                                $ccache[$shortname]->groups[$group->name]->id   = $gid;
+                                $ccache[$shortname]->groups[$group->name]->name = $group->name;
                             }
                         }
                     }
@@ -768,7 +807,7 @@ if ($formdata = $mform->is_cancelled()) {
                     if ($ccache[$shortname]->groups[$addgroup]->id = groups_create_group($newgroupdata)){
                         $ccache[$shortname]->groups[$addgroup]->name = $newgroupdata->name;
                     } else {
-                        $upt->track('enrolments', get_string('unknowngroup', 'error', $addgroup), 'error');
+                        $upt->track('enrolments', get_string('unknowngroup', 'error', s($addgroup)), 'error');
                         continue;
                     }
                 }
@@ -777,18 +816,17 @@ if ($formdata = $mform->is_cancelled()) {
 
                 try {
                     if (groups_add_member($gid, $user->id)) {
-                        $upt->track('enrolments', get_string('addedtogroup', '', $gname));
+                        $upt->track('enrolments', get_string('addedtogroup', '', s($gname)));
                     }  else {
-                        $upt->track('enrolments', get_string('addedtogroupnot', '', $gname), 'error');
+                        $upt->track('enrolments', get_string('addedtogroupnot', '', s($gname)), 'error');
                     }
                 } catch (moodle_exception $e) {
-                    $upt->track('enrolments', get_string('addedtogroupnot', '', $gname), 'error');
+                    $upt->track('enrolments', get_string('addedtogroupnot', '', s($gname)), 'error');
                     continue;
                 }
             }
         }
     }
-    $upt->flush();
     $upt->close(); // close table
 
     $cir->close();
@@ -796,10 +834,10 @@ if ($formdata = $mform->is_cancelled()) {
 
     echo $OUTPUT->box_start('boxwidthnarrow boxaligncenter generalbox', 'uploadresults');
     echo '<p>';
-    if ($optype != UU_UPDATE) {
+    if ($optype != UU_USER_UPDATE) {
         echo get_string('userscreated', 'admin').': '.$usersnew.'<br />';
     }
-    if ($optype == UU_UPDATE or $optype == UU_ADD_UPDATE) {
+    if ($optype == UU_USER_UPDATE or $optype == UU_USER_ADD_UPDATE) {
         echo get_string('usersupdated', 'admin').': '.$usersupdated.'<br />';
     }
     if ($allowdeletes) {
@@ -829,123 +867,50 @@ if ($formdata = $mform->is_cancelled()) {
 // Print the header
 echo $OUTPUT->header();
 
-/// Print the form
-
 echo $OUTPUT->heading(get_string('uploaduserspreview', 'admin'));
 
+// NOTE: this is JUST csv processing preview, we must not prevent import from here if there is something in the file!!
+//       this was intended for validation of csv formatting and encoding, not filtering the data!!!!
+//       we definitely must not process the whole file!
+
+// preview table data
+$data = array();
 $cir->init();
-$availableauths = get_plugin_list('auth');
-$availableauths = array_keys($availableauths);
-$contents = array();
-while ($fields = $cir->next()) {
-    $errormsg = array();
+$linenum = 1; //column header is first line
+while ($linenum <= $previewrows and $fields = $cir->next()) {
+    $linenum++;
     $rowcols = array();
-    foreach($fields as $key =>$field) {
-        $rowcols[$columns[$key]] = $field;
+    $rowcols['line'] = $linenum;
+    foreach($fields as $key => $field) {
+        $rowcols[$filecolumns[$key]] = s($field);
     }
+    $rowcols['status'] = array();
 
-    $usernameexist = $DB->record_exists('user', array('username'=>$rowcols['username']));
-    $emailexist    = $DB->record_exists('user', array('email'=>$rowcols['email']));
-    $cleanusername = clean_param($rowcols['username'], PARAM_USERNAME);
-    $validusername = strcmp($rowcols['username'], $cleanusername);
-    $validemail = validate_email($rowcols['email']);
-
-    if ($validusername != 0 || !$validemail) {
-        if ($validusername != 0) {
-            $errormsg['username'] = get_string('invalidusernameupload');
+    if (isset($rowcols['username'])) {
+        $stdusername = clean_param($rowcols['username'], PARAM_USERNAME);
+        if ($rowcols['username'] !== $stdusername) {
+            $rowcols['status'][] = get_string('invalidusernameupload');
         }
-        if (!$validemail) {
-            $errormsg['email'] = get_string('invalidemail');
+        if ($userid = $DB->get_field('user', 'id', array('username'=>$stdusername, 'mnethostid'=>$CFG->mnet_localhost_id))) {
+            $rowcols['username'] = html_writer::link(new moodle_url('/user/profile.php', array('id'=>$userid)), $rowcols['username']);
         }
+    } else {
+        $rowcols['status'][] = get_string('missingusername');
     }
 
-    //check password column
-    if (array_key_exists('auth', $rowcols)) {
-        if (isset($rowcols['auth']) && empty($rowcols['auth'])) {
-                $rowcols['auth'] = 'manual';
-        }
-        $rowauth = get_auth_plugin($rowcols['auth']);
-        $rowisinternalauth = $rowauth->is_internal();
-        if (!$rowisinternalauth) {
-            if (array_key_exists('password', $rowcols) && !empty($rowcols['password'])) {
-                $errormsg['password'] = get_string('externalauthpassworderror', 'error');
-            }
-        }
-
-        if (!in_array($rowcols['auth'], $availableauths)) {
-            $errormsg['auth'] = get_string('userautherror', 'error');
-        }
-    }
-
-    if (empty($optype) ) {
-        $optype = $uploadtype;
-    }
-
-    switch($optype) {
-        case UU_ADDNEW:
-            if ($usernameexist || $emailexist ) {
-               $rowcols['action'] = 'skipped';
-            } else {
-                $rowcols['action'] = 'create';
-            }
-            break;
-
-        case UU_ADDINC:
-            if (!$usernameexist && !$emailexist) {
-                $rowcols['action'] = 'create';
-            } else if ($usernameexist && !$emailexist) {
-                $rowcols['action'] = 'addcountertousername';
-                $rowcols['username'] = increment_username($rowcols['username'], $CFG->mnet_localhost_id);
-            } else {
-                $rowcols['action'] = 'skipped';
-            }
-            break;
-
-        case UU_ADD_UPDATE:
-            $oldusernameexist = '';
-            if (isset($rowcols['oldusername'])) {
-                $oldusernameexist = $DB->record_exists('user', array('username'=>$rowcols['oldusername']));
-            }
-            if ($usernameexist || $emailexist || $oldusernameexist ) {
-                $rowcols['action'] = 'update';
-            } else {
-                $rowcols['action'] = 'create';
-            }
-            break;
-
-        case UU_UPDATE:
-             $oldusernameexist = '';
-            if (isset($rowcols['oldusername'])) {
-                $oldusernameexist = $DB->record_exists('user', array('username'=>$rowcols['oldusername']));
-            }
-
-            if ($usernameexist || $emailexist || !empty($oldusernameexist)) {
-                $rowcols['action'] = 'update';
-            } else {
-                $rowcols['action'] = "skipped";
-            }
-            break;
-    }
-
-    if (!empty($errormsg)){
-        $rowcols['error'] = array();
-        $rowcols['error'] = $errormsg;
+    if (!validate_email($rowcols['email'])) {
+        $rowcols['status'][] = get_string('invalidemail');
     }
-    if ($rowcols['action'] != 'skipped') {
-        $contents[] = $rowcols;
+    if ($DB->record_exists('user', array('email'=>$rowcols['email']))) {
+        $rowcols['status'][] = $stremailduplicate;
     }
+    $rowcols['status'] = implode('<br />', $rowcols['status']);
+    $data[] = $rowcols;
 }
-$cir->close();
-
-//get heading
-$headings = array();
-foreach ($contents as $content) {
-    foreach($content as $key => $value) {
-        if (!in_array($key, $headings)) {
-            $headings[] = $key;
-        }
-    }
+if ($fields = $cir->next()) {
+    $data[] = array_fill(0, count($fields) + 2, '...');
 }
+$cir->close();
 
 $table = new html_table();
 $table->id = "uupreview";
@@ -953,327 +918,19 @@ $table->attributes['class'] = 'generaltable';
 $table->tablealign = 'center';
 $table->summary = get_string('uploaduserspreview', 'admin');
 $table->head = array();
-$table->data = array();
+$table->data = $data;
 
-//print heading
-foreach ($headings as $heading) {
-    $table->head[] = s($heading);
+$table->head[] = get_string('uucsvline', 'admin');
+foreach ($filecolumns as $column) {
+    $table->head[] = $column;
 }
+$table->head[] = get_string('status');
 
-$haserror = false;
-$countcontent = 0;
-if (in_array('error', $headings)) {
-    //print error
-    $haserror = true;
-
-    foreach ($contents as $content) {
-        if (array_key_exists('error', $content)) {
-            $rows = new html_table_row();
-            foreach ($content as $key => $value) {
-                $cells = new html_table_cell();
-                $errclass = '';
-                if (array_key_exists($key, $content['error'])) {
-                    $errclass = 'uuerror';
-                }
-                if ($key == 'error') {
-                    $value = join('<br />', $content['error']);
-                }
-                if ($key == 'action') {
-                    $value = get_string($content[$key]);
-                }
-                $cells->text = $value;
-                $cells->attributes['class'] = $errclass;
-                $rows->cells[] = $cells;
-            }
-            $countcontent++;
-            $table->data[] = $rows;
-        }
-    }
-    $mform = new admin_uploaduser_form3();
-    $mform->set_data(array('uutype'=>$uploadtype));
-} else if (empty($contents)) {
-    $mform = new admin_uploaduser_form3();
-    $mform->set_data(array('uutype'=>$uploadtype));
-} else {
-    //print content
-    foreach ($contents as $content) {
-        $rows = new html_table_row();
-        if ($countcontent >= $previewrows) {
-            foreach ($content as $con) {
-                $cells = new html_table_cell();
-                $cells->text = '...';
-            }
-            $rows->cells[] = $cells;
-            $table->data[] = $rows;
-            break;
-        }
-        foreach ($headings as $heading) {
-            $cells = new html_table_cell();
-            if(array_key_exists($heading, $content)) {
-                if ($heading == 'action') {
-                    $content[$heading] = get_string($content[$heading]);
-                }
-                $cells->text = $content[$heading];
-            } else {
-                $cells->text = '';
-            }
-            $rows->cells[] = $cells;
-        }
-        $table->data[] = $rows;
-        $countcontent++;
-    }
-}
 echo html_writer::tag('div', html_writer::table($table), array('class'=>'flexible-wrap'));
 
-if ($haserror) {
-    echo $OUTPUT->container(get_string('useruploadtype', 'moodle', $choices[$uploadtype]), 'centerpara');
-    echo $OUTPUT->container(get_string('upload