本文整理汇总了PHP中core_component::get_subplugins方法的典型用法代码示例。如果您正苦于以下问题:PHP core_component::get_subplugins方法的具体用法?PHP core_component::get_subplugins怎么用?PHP core_component::get_subplugins使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类core_component
的用法示例。
在下文中一共展示了core_component::get_subplugins方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: reorder_plugin_types
/**
* Reorders plugin types into a sequence to be displayed
*
* For technical reasons, plugin types returned by {@link core_component::get_plugin_types()} are
* in a certain order that does not need to fit the expected order for the display.
* Particularly, activity modules should be displayed first as they represent the
* real heart of Moodle. They should be followed by other plugin types that are
* used to build the courses (as that is what one expects from LMS). After that,
* other supportive plugin types follow.
*
* @param array $types associative array
* @return array same array with altered order of items
*/
protected function reorder_plugin_types(array $types)
{
$fix = array('mod' => $types['mod']);
foreach (core_component::get_plugin_list('mod') as $plugin => $fulldir) {
if (!($subtypes = core_component::get_subplugins('mod_' . $plugin))) {
continue;
}
foreach ($subtypes as $subtype => $ignored) {
$fix[$subtype] = $types[$subtype];
}
}
$fix['mod'] = $types['mod'];
$fix['block'] = $types['block'];
$fix['qtype'] = $types['qtype'];
$fix['qbehaviour'] = $types['qbehaviour'];
$fix['qformat'] = $types['qformat'];
$fix['filter'] = $types['filter'];
$fix['editor'] = $types['editor'];
foreach (core_component::get_plugin_list('editor') as $plugin => $fulldir) {
if (!($subtypes = core_component::get_subplugins('editor_' . $plugin))) {
continue;
}
foreach ($subtypes as $subtype => $ignored) {
$fix[$subtype] = $types[$subtype];
}
}
$fix['enrol'] = $types['enrol'];
$fix['auth'] = $types['auth'];
$fix['tool'] = $types['tool'];
foreach (core_component::get_plugin_list('tool') as $plugin => $fulldir) {
if (!($subtypes = core_component::get_subplugins('tool_' . $plugin))) {
continue;
}
foreach ($subtypes as $subtype => $ignored) {
$fix[$subtype] = $types[$subtype];
}
}
foreach ($types as $type => $path) {
if (!isset($fix[$type])) {
$fix[$type] = $path;
}
}
return $fix;
}
示例2: test_get_subplugins
public function test_get_subplugins()
{
global $CFG;
// Any plugin with more subtypes is ok here.
$this->assertFileExists("{$CFG->dirroot}/mod/assign/db/subplugins.php");
$subplugins = core_component::get_subplugins('mod_assign');
$this->assertSame(array('assignsubmission', 'assignfeedback'), array_keys($subplugins));
$subs = core_component::get_plugin_list('assignsubmission');
$feeds = core_component::get_plugin_list('assignfeedback');
$this->assertSame(array_keys($subs), $subplugins['assignsubmission']);
$this->assertSame(array_keys($feeds), $subplugins['assignfeedback']);
// Any plugin without subtypes is ok here.
$this->assertFileExists("{$CFG->dirroot}/mod/choice");
$this->assertFileNotExists("{$CFG->dirroot}/mod/choice/db/subplugins.php");
$this->assertNull(core_component::get_subplugins('mod_choice'));
$this->assertNull(core_component::get_subplugins('xxxx_yyyy'));
}