MDL-55390 search: base class was in core_search\area
This commit is contained in:
@@ -203,7 +203,7 @@ class manager {
|
||||
}
|
||||
|
||||
$classname = static::get_area_classname($areaid);
|
||||
if (class_exists($classname)) {
|
||||
if (class_exists($classname) && static::is_search_area($classname)) {
|
||||
return new $classname();
|
||||
}
|
||||
|
||||
@@ -727,14 +727,13 @@ class manager {
|
||||
/**
|
||||
* Checks whether a classname is of an actual search area.
|
||||
*
|
||||
* @param string $searchareaname
|
||||
* @param string $classname
|
||||
* @return bool
|
||||
*/
|
||||
protected static function is_search_area($searchareaname) {
|
||||
if (is_subclass_of($searchareaname, 'core_search\base')) {
|
||||
return (new \ReflectionClass($searchareaname))->isInstantiable();
|
||||
protected static function is_search_area($classname) {
|
||||
if (is_subclass_of($classname, 'core_search\area\base')) {
|
||||
return (new \ReflectionClass($classname))->isInstantiable();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+10
@@ -97,4 +97,14 @@ class testable_core_search extends \core_search\manager {
|
||||
self::get_search_areas_list(false);
|
||||
self::get_search_areas_list(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes visibility.
|
||||
*
|
||||
* @param string $classname
|
||||
* @return bool
|
||||
*/
|
||||
public static function is_search_area($classname) {
|
||||
return parent::is_search_area($classname);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,4 +252,19 @@ class search_manager_testcase extends advanced_testcase {
|
||||
$this->assertEquals($allcontexts, $contexts[$this->forumpostareaid]);
|
||||
$this->assertEquals(array($course1ctx->id => $course1ctx->id), $contexts[$this->mycoursesareaid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* test_is_search_area
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_is_search_area() {
|
||||
|
||||
$this->assertFalse(testable_core_search::is_search_area('\asd\asd'));
|
||||
$this->assertFalse(testable_core_search::is_search_area('\mod_forum\search\posta'));
|
||||
$this->assertFalse(testable_core_search::is_search_area('\core_search\area\base_mod'));
|
||||
$this->assertTrue(testable_core_search::is_search_area('\mod_forum\search\post'));
|
||||
$this->assertTrue(testable_core_search::is_search_area('\\mod_forum\\search\\post'));
|
||||
$this->assertTrue(testable_core_search::is_search_area('mod_forum\\search\\post'));
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$version = 2016052301.04; // 20160523 = branching date YYYYMMDD - do not modify!
|
||||
$version = 2016052301.05; // 20160523 = branching date YYYYMMDD - do not modify!
|
||||
// RR = release increments - 00 in DEV branches.
|
||||
// .XX = incremental changes.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user