- Patch #9650 by Adrian: this change introduces a module_load function, which maintains a list of modules that have already been loaded in a static array, and will not load another module of the same name, or if the file does not exist. Modules can be stored anywhere, as there is now a set of functions called module_get_filename, and module_set_filename .. which allow system_listing and module_list to specify the locations of the files. A new function module_load_all() replaces the hardcoded includes in module_init, and loads all modules which have been enabled, using module_load. module_listing no longer includes files itself, instead it just keeps the listing (and sets the filenames). This patch is a requirement for the multisite configuration patch, as overriding modules are currently being loaded due to the only protection of loading them is include_once.