@@ -102,18 +102,27 @@ public static function get_step_interactionlib($subpluginname) {
102
102
* @return null|base|libbase
103
103
*/
104
104
private static function get_lib ($ subpluginname , $ subplugintype , $ libsubtype = '' ) {
105
+ // Plugins defined in subplugins.json file.
105
106
$ triggerlist = \core_component::get_plugin_list ('lifecycle ' . $ subplugintype );
106
- if (!array_key_exists ($ subpluginname , $ triggerlist )) {
107
- return null ;
108
- }
109
- $ filename = $ triggerlist [$ subpluginname ].'/ ' .$ libsubtype .'lib.php ' ;
110
- if (file_exists ($ filename )) {
111
- require_once ($ filename );
112
- $ extendedclass = "tool_lifecycle \\$ subplugintype \\$ libsubtype$ subpluginname " ;
113
- if (class_exists ($ extendedclass )) {
114
- return new $ extendedclass ();
107
+ if (array_key_exists ($ subpluginname , $ triggerlist )) {
108
+ $ filename = $ triggerlist [$ subpluginname ].'/ ' .$ libsubtype .'lib.php ' ;
109
+ if (file_exists ($ filename )) {
110
+ require_once ($ filename );
111
+ $ extendedclass = "tool_lifecycle \\$ subplugintype \\$ libsubtype$ subpluginname " ;
112
+ if (class_exists ($ extendedclass )) {
113
+ return new $ extendedclass ();
114
+ }
115
115
}
116
116
}
117
+
118
+ // Plugins defined under "lifecycle" name space.
119
+ // The base class has already been checked by get_trigger_types or get_steps_types.
120
+ $ classname = !$ libsubtype ? $ subplugintype : $ libsubtype ;
121
+ $ classname = "$ subpluginname \\lifecycle \\$ classname " ;
122
+ if (class_exists ($ classname )) {
123
+ return new $ classname ();
124
+ }
125
+
117
126
return null ;
118
127
}
119
128
}
0 commit comments