mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
MDL-82427 core_filters: Support autoloading of filters
This commit is contained in:
parent
fe3b13d51a
commit
534c3e1821
6
.upgradenotes/MDL-82427-2024070901230429.yml
Normal file
6
.upgradenotes/MDL-82427-2024070901230429.yml
Normal file
@ -0,0 +1,6 @@
|
||||
issueNumber: MDL-82427
|
||||
notes:
|
||||
core_filters:
|
||||
- message: >-
|
||||
Added support for autoloading of filters from `\filter_filtername\filter`. The existing class names are still supported.
|
||||
type: improved
|
@ -127,6 +127,11 @@ class filter_manager {
|
||||
protected function make_filter_object($filtername, $context, $localconfig) {
|
||||
global $CFG;
|
||||
|
||||
$filterclass = "\\filter_{$filtername}\\text_filter";
|
||||
if (class_exists($filterclass)) {
|
||||
return new $filterclass($context, $localconfig);
|
||||
}
|
||||
|
||||
$path = $CFG->dirroot .'/filter/'. $filtername .'/filter.php';
|
||||
if (!is_readable($path)) {
|
||||
return null;
|
||||
|
@ -70,7 +70,7 @@ function filter_get_name($filter) {
|
||||
function filter_get_all_installed() {
|
||||
$filternames = array();
|
||||
foreach (core_component::get_plugin_list('filter') as $filter => $fulldir) {
|
||||
if (is_readable("$fulldir/filter.php")) {
|
||||
if (class_exists("\\filter_{$filter}\\text_filter") || is_readable("$fulldir/filter.php")) {
|
||||
$filternames[$filter] = filter_get_name($filter);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user