protected function add_plugin_structure($plugintype, $element) {

        global $CFG;

        // Check the requested plugintype is a valid one
        if (!array_key_exists($plugintype, core_component::get_plugin_types($plugintype))) {
             throw new restore_step_exception('incorrect_plugin_type', $plugintype);
        }

        // Get all the restore path elements, looking across all the plugin dirs
        $pluginsdirs = core_component::get_plugin_list($plugintype);
        foreach ($pluginsdirs as $name => $pluginsdir) {
            // We need to add also backup plugin classes on restore, they may contain
            // some stuff used both in backup & restore
            $backupclassname = 'backup_' . $plugintype . '_' . $name . '_plugin';
            $backupfile = $pluginsdir . '/backup/moodle2/' . $backupclassname . '.class.php';
            if (file_exists($backupfile)) {
                require_once($backupfile);
            }
            // Now add restore plugin classes and prepare stuff
            $restoreclassname = 'restore_' . $plugintype . '_' . $name . '_plugin';
            $restorefile = $pluginsdir . '/backup/moodle2/' . $restoreclassname . '.class.php';
            if (file_exists($restorefile)) {
                require_once($restorefile);
                $restoreplugin = new $restoreclassname($plugintype, $name, $this);
                // Add plugin paths to the step
                $this->prepare_pathelements($restoreplugin->define_plugin_structure($element));
            }
        }
    }
protected function add_plugin_structure($plugintype, $element) {

        global $CFG;

        // Check the requested plugintype is a valid one
        if (!array_key_exists($plugintype, core_component::get_plugin_types($plugintype))) {
             throw new restore_step_exception('incorrect_plugin_type', $plugintype);
        }

        // Get all the restore path elements, looking across all the plugin dirs
        $pluginsdirs = core_component::get_plugin_list($plugintype);
        foreach ($pluginsdirs as $name => $pluginsdir) {
            // We need to add also backup plugin classes on restore, they may contain
            // some stuff used both in backup & restore
            $backupclassname = 'backup_' . $plugintype . '_' . $name . '_plugin';
            $backupfile = $pluginsdir . '/backup/moodle2/' . $backupclassname . '.class.php';
            if (file_exists($backupfile)) {
                require_once($backupfile);
            }
            // Now add restore plugin classes and prepare stuff
            $restoreclassname = 'restore_' . $plugintype . '_' . $name . '_plugin';
            $restorefile = $pluginsdir . '/backup/moodle2/' . $restoreclassname . '.class.php';
            if (file_exists($restorefile)) {
                require_once($restorefile);
                $restoreplugin = new $restoreclassname($plugintype, $name, $this);
                // Add plugin paths to the step
                $this->prepare_pathelements($restoreplugin->define_plugin_structure($element));
            }
        }
    }
protected function add_plugin_structure ( $ plugintype , $ element ) { global $ CFG ; // Check the requested plugintype is a valid one if ( ! array_key_exists ( $ plugintype , core_component :: get_plugin_types ( $ plugintype ) ) ) { throw new restore_step_exception ( 'incorrect_plugin_type' , $ plugintype ) ; } // Get all the restore path elements, looking across all the plugin dirs $ pluginsdirs = core_component :: get_plugin_list ( $ plugintype ) ; foreach ( $ pluginsdirs as $ name => $ pluginsdir ) { // We need to add also backup plugin classes on restore, they may contain // some stuff used both in backup & restore $ backupclassname = 'backup_' . $ plugintype . '_' . $ name . '_plugin' ; $ backupfile = $ pluginsdir . '/backup/moodle2/' . $ backupclassname . '.class.php' ; if ( file_exists ( $ backupfile ) ) { require_once ( $ backupfile ) ; } // Now add restore plugin classes and prepare stuff $ restoreclassname = 'restore_' . $ plugintype . '_' . $ name . '_plugin' ; $ restorefile = $ pluginsdir . '/backup/moodle2/' . $ restoreclassname . '.class.php' ; if ( file_exists ( $ restorefile ) ) { require_once ( $ restorefile ) ; $ restoreplugin = new $ restoreclassname ( $ plugintype , $ name , $ this ) ; // Add plugin paths to the step $ this -> prepare_pathelements ( $ restoreplugin -> define_plugin_structure ( $ element ) ) ; } } }
Add plugin structure to any element in the structure restore tree

@param string $plugintype type of plugin as defined by core_component::get_plugin_types()
@param restore_path_element $element element in the structure restore tree that
we are going to add plugin information to
Add plugin structure to any element in the structure restore tree