Moodle PHP Documentation 5.1
Moodle 5.1dev (Build: 20250620) (7d9030acd6e)
Todo List
Member __pad0__

MDL-84268 Final deprecation in Moodle 6.0.

Remove this method in Moodle 6.0 (MDL-83627).

Remove this method in Moodle 6.0 (MDL-83530).

Final deprecation in Moodle 6.0. See MDL-83171.

Final deprecation in Moodle 6.0. See MDL-82869.

MDL-83522 This class will be deleted in Moodle 6.0.

MDL-83522 This class will be deleted in Moodle 6.0.

Member __pad10__
Final deprecation on Moodle 6.0. See MDL-84734.
Member __pad1__
Final deprecation in Moodle 6.0. See MDL-83171.
Member __pad3__
MDL-82646 Final deprecation in Moodle 6.0.
Member __pad6__
Final deprecation on Moodle 6.0. See MDL-83366.
Member __pad7__
Final deprecation on Moodle 6.0. See MDL-83675.
Member _fix_course_cats ($children, &$sortorder, $parent, $depth, $path, &$fixcontexts)
Document the arguments of this function better
Member admin_setting_configmulticheckbox::output_html ($data, $query='')
Add vartype handling to ensure $data is an array
Member admin_setting_configmultiselect::output_html ($data, $query='')
Add vartype handling to ensure $data is an array
Member admin_setting_courselist_frontpage::output_html ($data, $query='')
Add vartype handling to make sure $data is an array
Member admin_setting_gradecat_combo::output_html ($data, $query='')
Add vartype handling to ensure $data is array
Member admin_setting_gradecat_combo::write_setting ($data)
Add vartype handling to ensure $data is array
Member admin_setting_ldap_rolemapping::output_html ($data, $query='')
Add vartype handling to ensure $data is an array
Class admin_settings_num_course_sections
Remove this class in Moodle 6.0 (MDL-85272).
Member admin_settings_num_course_sections::__pad0__
Final deprecation in Moodle 6.0 (MDL-84291)
Member ADODB_mssql_n::_appendN ($inboundData)
This function should raise an ADOdb error if one of the transformations fail
Member ASSIGN_ATTEMPT_REOPEN_METHOD_NONE
MDL-81977 This will be deleted in Moodle 4.8.
Class assign_course_index_summary
MDL-84429 Final deprecation in Moodle 6.0.
Member assign_course_index_summary::__pad0__
MDL-84429 Final deprecation in Moodle 6.0.
Member assign_course_index_summary::__pad1__
MDL-84429 Final deprecation in Moodle 6.0.
Member assign_feedback_plugin::get_grading_batch_operations ()
Final deprecation in Moodle 6.0. See MDL-82856.
Member assign_grading_table::__pad0__
Final deprecation in Moodle 6.0. See MDL-82336.
Member assign_grading_table::__pad1__
Final deprecation in Moodle 6.0. See MDL-82336.
Member auth_plugin_base::get_title ()
Document this function
Class base_setting_ui

extend as required for restore

Class behat_admin_presets_deprecated
MDL-78077 This will be deleted in Moodle 6.0.
Member behat_block_site_main_menu_deprecated::activity_in_site_main_menu_block_should_be_available_but_hidden_from_course_page ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_site_main_menu_deprecated::activity_in_site_main_menu_block_should_be_hidden ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_site_main_menu_deprecated::activity_in_site_main_menu_block_should_have_editing_icon ($activityname, $iconname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_site_main_menu_deprecated::activity_in_site_main_menu_block_should_not_have_editing_icon ($activityname, $iconname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_site_main_menu_deprecated::get_site_menu_activity_element ($element, $selectortype, $activityname)
MDL-78077 This will be deleted in Moodle 6.0.
Member behat_block_site_main_menu_deprecated::get_site_menu_activity_node ($activityname)
MDL-78077 This will be deleted in Moodle 6.0.
Member behat_block_site_main_menu_deprecated::i_click_on_in_the_activity_in_site_main_menu_block ($element, $selectortype, $activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_site_main_menu_deprecated::i_open_actions_menu_in_site_main_menu_block ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::activity_in_social_activities_block_should_be_available_but_hidden_from_course_page ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::activity_in_social_activities_block_should_be_hidden ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::activity_in_social_activities_block_should_have_editing_icon ($activityname, $iconname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::activity_in_social_activities_block_should_not_have_editing_icon ($activityname, $iconname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::get_social_block_activity_element ($element, $selectortype, $activityname)
MDL-78077 This will be deleted in Moodle 6.0.
Member behat_block_social_activities_deprecated::get_social_block_activity_node ($activityname)
MDL-78077 This will be deleted in Moodle 6.0.
Member behat_block_social_activities_deprecated::i_click_on_in_the_activity_in_social_activities_block ($element, $selectortype, $activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_block_social_activities_deprecated::i_open_actions_menu_in_social_activities_block ($activityname)

MDL-78077 This will be deleted in Moodle 6.0.

Member behat_tool_lp_deprecated::the_following_lp_exist ($elementname, TableNode $data)

MDL-78077 This will be deleted in Moodle 6.0.

Member block_html_pluginfile ($course, $birecord_or_cm, $context, $filearea, $args, $forcedownload, array $options=array())
MDL-36050 improve capability check on stick blocks, so we can check user capability before sending images.
Member block_recent_activity::get_recent_enrolments ()
MDL-36993 this function always return empty array
Member blocks_remove_inappropriate ($course)
Write/Fix this function. Currently returns immediately
Member check_php_version ($version='5.2.4')
Check PHP version being required here is it too low?
Member core\hook\manager::is_deprecated_plugin_callback (string $plugincallback)
Remove in Moodle 4.8 (MDL-80327).
Member core\output\core_renderer::render_context_header (context_header $contextheader)
MDL-82163 This will be deleted in Moodle 6.0.
Member core\output\core_renderer::sr_text (string $contents)
Final deprecation in Moodle 6.0. See MDL-83671.
Member core\session\manager::__pad0__
Remove in MDL-81848
Member core\session\manager::__pad1__
Remove in MDL-81848
Member core\session\manager::__pad2__
Remove in MDL-81848
Member core\session\manager::__pad3__
Remove in MDL-81848
Member core_analytics\manager::add_builtin_models ()
Remove this method in Moodle 3.11 (MDL-65186).
Member core_cache\helper::invalidate_by_definition ($component, $area, array $identifiers=[], $keys=[])
Invalidating by definition should also add to the event cache so that sessions can be invalidated (when required).
Member core_cache\output\renderer::lock_summaries (array $locks)
Add some actions so that people can configure lock instances.
Member core_calendar\external\calendar_event_exporter::get_module_timestamp_max_limit (\DateTimeInterface $starttime, $max)
final deprecation. To be removed in Moodle 3.10
Member core_calendar\external\calendar_event_exporter::get_module_timestamp_min_limit (\DateTimeInterface $starttime, $min)
final deprecation. To be removed in Moodle 3.10
Member core_course_category::preload_course_contacts (&$courses)
MDL-38596 minimize number of queries to preload contacts for the list of courses
Member core_course_external::edit_module ($action, $id, $sectionreturn=null)
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_module_is_deprecated ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_module_parameters ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_module_returns ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_section ($action, $id, $sectionreturn)
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_section_is_deprecated ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_section_parameters ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::edit_section_returns ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::get_module ($id, $sectionreturn=null)
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::get_module_is_deprecated ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::get_module_parameters ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_course_external::get_module_returns ()
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\base::__pad0__
Remove this method in Moodle 6.0 (MDL-85272).
Member core_courseformat\base::__pad3__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\base::instance ($courseorid)
MDL-35727 use MUC for caching of instances, limit the number of cached instances
Member core_courseformat\hook_listener::before_course_viewed (before_course_viewed $hook)
MDL-83839 This method will be removed in Moodle 6.0.
Member core_courseformat\output\local\content\cm\controlmenu::__pad0__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\output\local\content\cm\delegatedcontrolmenu::__pad0__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\output\local\content\section\controlmenu::__pad0__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\output\local\content\section\controlmenu::__pad1__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\output\local\content\section\controlmenu::__pad2__
Remove this method in Moodle 6.0 (MDL-83530).
Member core_courseformat\stateactions::__pad1__
MDL-83851: final deprecation of this method in Moodle 6.0.
Member core_files_renderer::fm_js_template_listfilename ()
MDL-32736 remove onclick="return false;"
Member core_grades_renderer::__pad0__
Final deprecation in Moodle 6.0. See MDL-82116.
Member core_question\local\bank\condition::display_options ()
Final deprecation on Moodle 4.1 MDL-72572
Member core_question\local\bank\condition::display_options_adv ()
Final deprecation on Moodle 4.1 MDL-72572
Member core_question_bank_renderer::render_question_pagination ($displaydata)
MDL-84648 Final deprecation on Moodle 6.0
Member core_rtlcss::processDeclaration ($node)
Remove the dir-rtl flipping when dir-rtl is fully deprecated.
Member core_webservice::__pad0__

MDL-79909 This will be deleted in Moodle 6.0.

MDL-79909 This will be deleted in Moodle 6.0.

Member core_webservice_renderer::documentation_html ($functions, $printableformat, $activatedprotocol, $authparams, $parenturl='/webservice/wsdoc.php')
MDL-76078 - Incorrect inter-communication, core cannot have plugin dependencies like this.
Member core_webservice_renderer::rest_param_description_html ($paramdescription, $paramstring)
MDL-76078 - Incorrect inter-communication, core cannot have plugin dependencies like this.
Member core_webservice_renderer::xmlrpc_param_description_html ($paramdescription, $indentation="")
MDL-76078 - Incorrect inter-communication, core cannot have plugin dependencies like this.
Member course_format_ajax_support ($format)
MDL-83417 Remove this function in Moodle 6.0
Member create_user_record ($username, $password, $auth='manual')
Outline auth types and provide code example
Class dml_transaction_exception
MDL-20625 Use the info from $transaction for debugging purposes.
Member draw_rand_array ($array, $draws)
Finish documenting this function
Member Enclosure::embed ($options='', $native=false)
If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
Member enrol_self_plugin::email_welcome_message ($instance, $user)
MDL-81185 Final deprecation in Moodle 4.8.
Member environment_results::strToReport ($string, $class)
Document this function
Class File
Move to properly supporting RFC2616 (HTTP/1.1)
Member file_correct_filepath ($str)
review this function
Member file_encode_url ($urlbase, $path, $forcedownload=false, $https=false)
MDL-31071 deprecate this function $CFG
Member file_extension_icon ($filename, $unused=null)

MDL-31074 When an $OUTPUT->icon method is available this function should be altered to conform with that.

MDL-31074 Implement $size

Member file_get_drafarea_folders ($draftitemid, $filepath, &$data)
MDL-31073 use normal return value instead, this does not fit the rest of api here (skodak)
Member file_info::copy_to_pathname ($pathname)
MDL-31068 implement move() rename() unzip() zip()
Member file_info_context_user::get_area_user_backup ($itemid, $filepath, $filename)
MDL-31091 maybe we need new caability for access control
Member file_info_context_user::get_area_user_private ($itemid, $filepath, $filename)
MDL-31070 this method should respect $CFG->userquota
Member file_mimetype_icon ($mimetype, $unused=null)
MDL-31074 When an $OUTPUT->icon method is available this function should be altered to conform with that.
Member file_pluginfile ($relativepath, $forcedownload, $preview=null, $offline=false, $embed=false)
MDL-31088 file serving improments
Member file_postupdate_standard_filemanager ($data, $field, array $options, $context, $component, $filearea, $itemid)

MDL-31073 review this function

Class form_filemanager
do not use this abstraction (skodak)
Member forum_get_recent_mod_activity (&$activities, &$index, $timestart, $courseid, $cmid, $userid=0, $groupid=0)
Document this functions args
Member get_directory_list ($rootdir, $excludefiles='', $descend=true, $getdirs=false, $getfiles=true)
Finish documenting this function. Add examples of $excludefile usage.
Member get_max_upload_file_size ($sitebytes=0, $coursebytes=0, $modulebytes=0, $unused=false)
Finish documenting this function
Member HTMLPurifier_AttrDef_CSS_Composite::$defs
Make protected
Member HTMLPurifier_AttrDef_CSS_Multiple::$max
Make protected
Member HTMLPurifier_AttrDef_CSS_Multiple::$single
Make protected
Member HTMLPurifier_AttrDef_Enum::$valid_values
Make protected
Member HTMLPurifier_CSSDefinition::setupConfigStuff ($config)
Refactor duplicate elements into common class (probably using composition, not inheritance).
Member HTMLPurifier_DefinitionCache_Serializer::generateBaseDirectoryPath ($config)
Make protected
Member HTMLPurifier_DefinitionCache_Serializer::generateDirectoryPath ($config)
Make protected
Member HTMLPurifier_DefinitionCache_Serializer::generateFilePath ($config)
Make protected
Member HTMLPurifier_Filter_ExtractStyleBlocks::preFilter ($html, $config, $context)
Extend to indicate non-text/css style blocks
Member HTMLPurifier_Generator::escape ($string, $quote=null)
This really ought to be protected, but until we have a facility for properly generating HTML here w/o using tokens, it stays public.
Member HTMLPurifier_HTMLDefinition::parseTinyMCEAllowedList ($list)
Give this its own class, probably static interface
Member HTMLPurifier_HTMLModule_Tidy::setup ($config)
Wildcard matching and error reporting when an added or subtracted fix has no effect.
Member HTMLPurifier_Language::$_loaded
Make it private, fix usage in HTMLPurifier_LanguageTest
Member HTMLPurifier_Language::formatMessage ($key, $args=array())
Implement conditionals? Right now, some messages make reference to line numbers, but those aren't always available
Member HTMLPurifier_Lexer::extractBody ($html)
Consider making protected
Member HTMLPurifier_Lexer::normalize ($html, $config, $context)
Consider making protected
Member HTMLPurifier_Lexer_DOMLex::createStartNode ($node, &$tokens, $collect, $config)
data and tagName properties don't seem to exist in DOMNode?
Member HTMLPurifier_Printer_HTMLDefinition::listifyObjectList ($array)
Also add information about internal state
Member i_move_activity_to_section_yui ($activityname, $sectionnumber)
remove this module as part of MDL-83627.
Member is_in_popup ()
Use a central function to create the popup calls all over Moodle and In the moment only works with resources and probably questions.
Member Item::get_enclosure ($key=0, $prefer=null)
Add ability to prefer one type of content over another (in a media group).
Member Item::get_enclosures ()

Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).

If an element exists at a level, but its value is empty, we should fall back to the value from the parent (if it exists).

Class list_item
Final removal in Moodle 6.0 MDL-80804.
Member list_item::__construct ($item, $parent, $attributes='', $display=true)
Final removal in Moodle 6.0 MDL-80804.
Member list_item::create_children (&$records, &$children, $thisrecordid)
Final removal in Moodle 6.0 MDL-80804.
Member list_item::image_icon ($action, $url, $icon)
Final removal in Moodle 6.0 MDL-80804.
Member list_item::image_spacer ()
Final removal in Moodle 6.0 MDL-80804.
Member list_item::item_html ($extraargs=array())
Final removal in Moodle 6.0 MDL-80804.
Member list_item::set_icon_html ($first, $last, $lastitem)
Final removal in Moodle 6.0 MDL-80804.
Member list_item::set_parent ($parent)
Final removal in Moodle 6.0 MDL-80804.
Member list_item::to_html ($indent=0, $extraargs=array())
Final removal in Moodle 6.0 MDL-80804.
Member make_grades_menu ($gradingtype)
Finish documenting this function or better deprecated this completely!
Member make_unique_id_code ($extra='')
Finish documenting this function
Member mod_assign\output\renderer::__pad0__
MDL-84429 Final deprecation in Moodle 6.0.
Member mod_bigbluebuttonbn\meeting::create_meeting_data ()
moderatorPW and attendeePW will be removed from create after release of BBB v2.6.
Member mod_data_get_deprecated_icons ()
Final deprecation on Moodle 6.0 MDL-83465.
Member mod_feedback\output\renderer::create_template_form (int $id)
MDL-82164 This will be deleted in Moodle 6.0.
Member mod_forum_external::update_discussion_post ($postid, $subject='', $message='', $messageformat=FORMAT_HTML, $options=[])
support more options: timed posts, groups change and tags.
Member MOD_PURPOSE_INTERFACE
MDL-80701 Remove in Moodle 4.8
Member mod_quiz\quiz_attempt::process_finish ($timestamp, $processsubmitted, $timefinish=null, $studentisonline=false)
Final deprecation in Moodle 6.0 MDL-80956
Member mod_scorm\report::generate_master_checkbox ()
MDL-83748 Remove this method in Moodle 6.0.
Member mod_workshop_renderer::helper_grading_report_assessment ($assessment, $shownames, array $userinfo, $separator)
Highlight the nulls
Class moodle1_files_handler
migrate site_files
Member moodle1_gradebook_handler::on_gradebook_grade_item_grades_start ()
Member moodle1_handlers_factory::get_plugin_handlers ($type, moodle1_converter $converter)
ask mod's subplugins
Member moodle_database::__pad0__
Final deprecation in Moodle 6.0. See MDL-83171.
Member moodle_database::__pad1__
Final deprecation in Moodle 6.0. See MDL-83171.
Member moodle_database::get_record ($table, array $conditions, $fields=' *', $strictness=IGNORE_MISSING)
MDL-30407 MUST_EXIST option should not throw a dml_exception, it should throw a different exception as it's a requested check.
Member moodle_database::sql_fullname ($first='firstname', $last='lastname')
MDL-31233 This may not be needed here.
Class moodle_list
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::__construct ($type='ul', $attributes='', $editable=false, $pageurl=null, $page=0, $pageparamname='page', $itemsperpage=20)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::add_item ($item)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::display_page_numbers ()
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::find_item ($id, $suppresserror=false)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::get_child_ids ()
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::get_items_peers ($itemid)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::get_records ()
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::get_top_level_parent_id ($item)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::item_is_first_on_page ($itemid)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::item_is_last_on_page ($itemid)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::list_from_records ($paged=false, $offset=0)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::move_item_left ($id)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::move_item_right ($id)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::move_item_up_down ($direction, $id)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::process_actions ($left, $right, $moveup, $movedown)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::reorder_peers ($peers)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::set_parent ($parent)
Final removal in Moodle 6.0 MDL-80804.
Member moodle_list::to_html ($indent=0, $extraargs=array())
Final removal in Moodle 6.0 MDL-80804.
Class moodleform
MDL-19380 rethink the file scanning
Member moodleform::save_files ($destination)
MDL-31294 remove this api
Class MoodleQuickForm_editor

MDL-29421 element Freezing

MDL-29426 ajax format conversion

Member mssql_sql_generator::getDropDefaultSQL ($xmldb_table, $xmldb_field)
MDL-31147 Moodle 2.1 - Drop getDropDefaultSQL()
Member mysql_sql_generator::getDropDefaultSQL ($xmldb_table, $xmldb_field)
MDL-31147 Moodle 2.1 - Drop getDropDefaultSQL()
Member OPEN_BADGES_V1
Final deprecation in Moodle 6.0. See MDL-82332.
Member PhpXmlRpc::Helper::hasEncoding ($xmlChunk)
rename to hasEncodingDeclaration
Member PhpXmlRpc::Traits::getParser ()
feature-creep: allow passing in $options (but then, how to deal with changing options between invocations?)
Member PhpXmlRpc\Client::$method
: do all the ones below need to be public?
Member PhpXmlRpc\Client::createCURLHandle ($req, $method, $server, $port, $path, $opts)
allow this method to either throw or return a Response, so that we can pass back to caller more info on errors
Member PhpXmlRpc\Client::send ($req, $timeout=0, $method='')

allow throwing exceptions instead of returning responses in case of failed calls and/or Fault responses

refactor: we now support many options besides connection timeout and http version to use. Why only privilege those?

Member PhpXmlRpc\Client::sendPayloadSocket ($req, $server, $port, $timeout=0, $username='', $password='', $authType=1, $cert='', $certPass='', $caCert='', $caCertDir='', $proxyHost='', $proxyPort=0, $proxyUsername='', $proxyPassword='', $proxyAuthType=1, $method='http', $key='', $keyPass='', $sslVersion=0)

not implemented yet.

not implemented yet. See http://php.net/manual/en/migration56.openssl.php

Member PhpXmlRpc\Client::sendViaCURL ($req, $method, $server, $port, $path, $opts)
the $path arg atm is ignored. What to do if it is != $this->path?
Member PhpXmlRpc\Client::setCookie ($name, $value='', $path='', $domain='', $port=null)

check correctness of urlencoding cookie value (copied from php way of doing it, but php is generally sending response not requests. We do the opposite...)

strip invalid chars from cookie name? As per RFC 6265, we should follow RFC 2616, Section 2.2

drop/rename $port parameter. Cookies are not isolated by port!

feature-creep allow storing 'expires', 'secure', 'httponly' and 'samesite' cookie attributes (we could do as php, and allow $path to be an array of attributes...)

Member PhpXmlRpc\Encoder::decodeXml ($xmlVal, $options=array())

is this a good name/class for this method? It does something quite different from 'decode' after all (returning objects vs returns plain php values)... In fact, it belongs rather to a Parser class

feature creep – we should allow an option to return php native types instead of PhpXmlRpc objects instances

feature creep – allow source charset to be passed in as an option, in case the xml misses its declaration

feature creep – allow expected type (val/req/resp) to be passed in as an option

Member PhpXmlRpc\Helper\Charset::buildConversionTable ($tableName)

add support for cp1252 as well as latin-2 .. latin-10 Optimization creep: instead of building all those tables on load, keep them ready-made php files which are not even included until needed

should we add to the latin-1 table the characters from cp_1252 range, i.e. 128 to 159 ? Those will NOT be present in true ISO-8859-1, but will save the unwary windows user from sending junk (though no luck when receiving them...) Note also that, apparently, while 'ISO/IEC 8859-1' has no characters defined for bytes 128 to 159, IANA ISO-8859-1 does have well-defined 'C1' control codes for those - wikipedia's page on latin-1 says: "ISO-8859-1 is the IANA preferred name for this standard when supplemented with the C0 and C1 control codes from ISO/IEC 6429." Check what mbstring/iconv do by default with those?

Member PhpXmlRpc\Helper\Charset::encodeEntities ($data, $srcEncoding='', $destEncoding='')

do a bit of basic benchmarking: strtr vs. str_replace, str_replace vs htmlspecialchars, hand-coded conversion vs mbstring when that is enabled

make use of iconv when it is available and mbstring is not

support aliases for charset names, eg ASCII, LATIN1, ISO-88591 (see f.e. polyfill-iconv for a list), but then take those into account as well in other methods, ie. isValidCharset)

when converting to ASCII, allow to choose whether to escape the range 0-31,127 (non-print chars) or not

allow picking different strategies to deal w. invalid chars? eg. source in latin-1 and chars 128-159

add support for escaping using CDATA sections? (add cdata start and end tokens, replace only ']]>' with ']]]]>>')

Member PhpXmlRpc\Helper\Charset::instance ()
should we just make $xml_iso88591_Entities a static variable instead ?
Member PhpXmlRpc\Helper\Http::parseResponseHeaders (&$data, $headersProcessed=false, $debug=0)
if $debug is < 0, we could avoid populating 'raw_data' in the returned value - but that would be a weird API... (note that we still need to always have headers parsed for content charset)
Member PhpXmlRpc\Helper\Interop::$xmlrpcerr
review - should we use the range -32099 .. -32000 for some server erors?
Member PhpXmlRpc\Helper\XMLParser::guessEncoding ($httpHeader='', $xmlChunk='', $encodingPrefs=null)

as of 2023, the relevant RFC for XML Media Types is now 7303, and for HTTP it is 9110. Check if the order of precedence implemented here is still correct

explore usage of mb_http_input(): does it detect http headers + post data? if so, use it instead of hand-detection!!!

feature-creep make it possible to pass in options overriding usage of PhpXmlRpc static variables, to make the method independent of global state

Member PhpXmlRpc\Helper\XMLParser::parse ($data, $returnType=self::RETURN_XMLRPCVALS, $accept=3, $options=array())

refactor? we could 1. return the parsed data structure, and 2. move $returnType and $accept into options

feature-creep make it possible to pass in options overriding usage of PhpXmlRpc::$xmlrpc_XXX_format, so that parsing will be completely independent of global state. Note that it might incur a small perf hit...

Member PhpXmlRpc\PhpXmlRpc::$xmlpc_double_precision
rename :'-(
Member PhpXmlRpc\PhpXmlRpc::importGlobals ()
this function does not import back xmlrpc_valid_parents and xml_iso88591_Entities
Member PhpXmlRpc\Request::parseResponse ($data='', $headersProcessed=false, $returnType=XMLParser::RETURN_XMLRPCVALS)

parsing Responses is not really the responsibility of the Request class. Maybe of the Client...

what about only populating 'raw_data' in httpResponse when debug mode is > 0?

feature creep - allow parsing data gotten from a stream pointer instead of a string: read it piecewise, looking first for separation between headers and body, then for charset indicators, server debug info and </methodResponse>. That would require a notable increase in code complexity...

Member PhpXmlRpc\Request::parseResponseFile ($fp, $headersProcessed=false, $returnType='xmlrpcvals')

arsing Responses is not really the responsibility of the Request class. Maybe of the Client...

feature creep - add a flag to disable trying to parse the http headers

Member PhpXmlRpc\Response::__construct ($val, $fCode=0, $fString='', $valType='', $httpResponse=null)
add check that $val / $fCode / $fString is of correct type? We could at least log a warning for fishy cases... NB: as of now we do not do it, since it might be either an xml-rpc value or a plain php val, or a complete xml chunk, depending on usage of Client::send() inside which the constructor is called.
Member PhpXmlRpc\Server::$functions_parameters_type
create class constants for these
Member PhpXmlRpc\Server::add_to_map ($methodName, $function, $sig=null, $doc=false, $sigDoc=false, $parametersType=false, $exceptionHandling=false)

raise a warning if the user tries to register a 'system.' method

Member PhpXmlRpc\Server::addToMap ($methodName, $function, $sig=null, $doc=false, $sigDoc=false, $parametersType=false, $exceptionHandling=false)
raise a warning if the user tries to register a 'system.' method
Member PhpXmlRpc\Value::addArray ($values)

add some checking for $values to be an array of xml-rpc values?

rename to addToArray?

Member PhpXmlRpc\Value::addScalar ($val, $type='string')

arguably, as we have addArray to add elements to an Array value, and addStruct to add elements to a Struct value, we should not allow this method to add values to an Array. The 'scalar' in the method name refers to the expected state of the target object, not to the type of $val. Also, this works differently from addScalar/addStruct in that, when adding an element to an array, it wraps it into a new Value

rename?

Member PhpXmlRpc\Value::addStruct ($values)

add some checking for $values to be an array of xml-rpc values?

rename to addToStruct?

Member plugin_callback ($type, $name, $feature, $action, $params=null, $default=null, bool $migratedtohook=false)
Decide about to deprecate and drop plugin_callback() - MDL-30743
Member portfolio_caller_base::set_formats_from_button ($formats)
MDL-31298 - re-analyze set_formats_from_button comment
Member portfolio_format_leap2a_entry::validate ()
MDL-31303 - add category with a scheme 'selection_type'
Class portfolio_format_leap2a_writer

MDL-31287 - find a way to ensure that all referenced files are included

Member portfolio_format_leap2a_writer::__construct (stdclass $user)
MDL-31302 - add exporter and format
Member portfolio_format_richhtml::conflicts ($format)
MDL-31305 - revisit the conflict with file, since we zip here
Member portfolio_instances ($visibleonly=true, $useronly=true)
MDL-15768 - check capabilities here
Member postgres_sql_generator::getDropDefaultSQL ($xmldb_table, $xmldb_field)
MDL-31147 Moodle 2.1 - Drop getDropDefaultSQL()
Member prepare ($sql)
update this function to handle prepared statements correctly
Member print_grade_menu ($courseid, $name, $current, $includenograde=true, $return=false)

Finish documenting this function

Deprecate: this is only used in a few contrib modules

Member print_graded_users_selector ($course, $actionpage, $userid=0, $groupid=0, $includeall=true, $return=false)
Final deprecation on Moodle 6.0. See MDL-84680.
Member print_password_policy ()
this should be handled by a function/method in the language pack library once we have a support for it @uses $CFG
Member qbank_bulkmove\helper::__pad0__
MDL-82413 Final deprecation in Moodle 6.0.
Member qbank_bulkmove\output\renderer::render_bulk_move_form ($displaydata)
MDL-82413 Final deprecation in Moodle 6.0.
Member qbank_editquestion\editquestion_helper::create_new_question_button ($categoryid, $params, $canadd, $tooltip='', $disabled=false)
Final deprecation in Moodle 4.7
Member qbank_editquestion\output\renderer::render_create_new_question_button ($addquestiondata)
Final deprecation in Moodle 4.7
Member qbank_history\helper::question_history_url (int $entryid, string $returnrul, int $courseid, ?string $filter)
MDL-82413 Final deprecation in Moodle 6.0.
Member qbank_managecategories\question_category_list::__construct ($type='ul', $attributes='', $editable=false, $pageurl=null, $page=0, $pageparamname='page', $itemsperpage=DEFAULT_QUESTIONS_PER_PAGE, $context=null)
Final removal in Moodle 6.0 MDL-80804
Member qbank_managecategories\question_category_list::get_records ()
Final removal in Moodle 6.0 MDL-80804
Member qbank_managecategories\question_category_list::get_top_level_parent_id ($item)
Final removal in Moodle 6.0 MDL-80804
Member qbank_managecategories\question_category_list::process_actions ($left, $right, $moveup, $movedown)
Final removal in Moodle 6.0 MDL-80804
Class qbank_managecategories\question_category_object
Final removal in Moodle 6.0 MDL-80804
Member qbank_managecategories\question_category_object::if (! $currentcat)

Final removal in Moodle 6.0 MDL-80804

Final removal in Moodle 6.0 MDL-80804

Member report_log_renderable::get_actions ()
MDL-44528 Get list from log_store.
Member report_log_renderable::get_edulevel_options ()
MDL-44528 Get list from log_store.
Member repository::build_tree ($fileinfo, $search, $dynamicmode, &$list)
take $search into account, and respect a threshold for dynamic loading
Member repository::move_to_filepool ($thefile, $record)

MDL-28637

Member repository_recent::file_is_accessible ($source)
MDL-33805 remove this function when recent files are managed correctly
Member repository_type::get_contextvisibility ($context)
check if the context visibility has been overwritten by the plugin creator (need to create special functions to be overvwritten in repository class)
Member restore_dbops::get_backup_ids_cached ($restoreid, $itemname, $itemid)
MDL-25290 replace static backupids* with MUC code
Member restore_dbops::reset_backup_ids_cached ()
MDL-25290 static should be replaced with MUC code.
Member restore_dbops::set_backup_ids_cached ($restoreid, $itemname, $itemid, $extrarecord)
MDL-25290 replace static BACKUP_IDS_* with MUC code
Class Sanitize
Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
Member sql_generator::getDropDefaultSQL ($xmldb_table, $xmldb_field)
MDL-31147 Moodle 2.1 - Drop getDropDefaultSQL()
Member tool_brickfield\local\areas\core_question\answerbase::find_system_areas ()
MDL-82413 Final deprecation in Moodle 6.0.
Member tool_brickfield\local\areas\core_question\base::find_system_areas ()
MDL-82413 Final deprecation in Moodle 6.0.
Member toolbook_importhtml_parse_headings ($html)
implement this once the type 'typeonefile' is enabled
Member user_delete_user ($user)
Decide if this transaction is really needed (look for internal TODO:)
Member webservice::get_user_capabilities ($userid)
MDL-70187 Please delete this method completely in Moodle 4.3, thank you.
Member workshop::delete_assessment ($id)
Give grading strategy plugins a chance to clean up their data, too.
Member zip_archive::open ($archivepathname, $mode=file_archive::CREATE, $encoding=null)
MDL-31048 return error message
Member zip_packer::extract_to_pathname ($archivefile, $pathname, ?array $onlyfiles=null, ?file_progress $progress=null, $returnbool=false)
MDL-31048 localise messages
Member zip_packer::extract_to_storage ($archivefile, $contextid, $component, $filearea, $itemid, $pathbase, $userid=NULL, ?file_progress $progress=null)
MDL-31048 localise messages