/** * Returns embedded artefacts in view description and * additional artefacts required for view export from artefact plugins */ protected function get_view_extra_artefacts() { $extra = View::get_embedded_artefacts(array_keys($this->views)); $plugins = plugins_installed('artefact'); foreach ($plugins as &$plugin) { safe_require('artefact', $plugin->name); $classname = generate_class_name('artefact', $plugin->name); if (is_callable($classname . '::view_export_extra_artefacts')) { if ($artefacts = call_static_method($classname, 'view_export_extra_artefacts', array_keys($this->views))) { $extra = array_unique(array_merge($extra, $artefacts)); } } } return $extra; }