function hvp_delete_instance($id) { global $DB; // Load content record. if (! $hvp = $DB->get_record('hvp', array('id' => "$id"))) { return false; } // Load CM. $cm = \get_coursemodule_from_instance('hvp', $id); // Delete content. $h5pstorage = \mod_hvp\framework::instance('storage'); $h5pstorage->deletePackage(array('id' => $hvp->id, 'slug' => $hvp->slug, 'coursemodule' => $cm->id)); // Delete xAPI statements. $DB->delete_records('hvp_xapi_results', array ( 'content_id' => $hvp->id )); // Get library details. $library = $DB->get_record_sql( "SELECT machine_name AS name, major_version, minor_version FROM {hvp_libraries} WHERE id = ?", array($hvp->main_library_id) ); // Only log event if we found library. if ($library) { // Log content delete. new \mod_hvp\event( 'content', 'delete', $hvp->id, $hvp->name, $library->name, $library->major_version . '.' . $library->minor_version ); } return true; }
时间: 2024-01-16 13:02:00 浏览: 26
可以看出这是一个 PHP 函数,用于删除 Moodle 中的 H5P 内容。它的主要步骤包括:首先利用传入的 id 加载 H5P 内容记录,如果不存在则返回 false;然后加载该 H5P 内容所在的课程模块;接着删除该 H5P 内容的存储包;再删除该 H5P 内容相关的 xAPI 语句;最后记录该 H5P 内容的删除事件,并返回 true。