/* * Initial setup of H5P tables */ # Keep track of h5p content entities > Pending in Tiki: Add FileId CREATE TABLE IF NOT EXISTS tiki_h5p_contents ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, file_id INT UNSIGNED NOT NULL, # reference to the file gallery object in tiki_files table created_at TIMESTAMP NULL, updated_at TIMESTAMP NULL, user_id INT UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL, library_id INT UNSIGNED NOT NULL, parameters LONGTEXT NOT NULL, filtered LONGTEXT NOT NULL, slug VARCHAR(127) NOT NULL, embed_type VARCHAR(127) NOT NULL, disable INT UNSIGNED NOT NULL DEFAULT 0, content_type VARCHAR(127) NULL, author VARCHAR(127) NULL, license VARCHAR(7) NULL, keywords TEXT NULL, description TEXT NULL, PRIMARY KEY (id), UNIQUE KEY `fileId` (`file_id`) ) ENGINE = MyISAM; # Keep track of content dependencies CREATE TABLE IF NOT EXISTS tiki_h5p_contents_libraries ( content_id INT UNSIGNED NOT NULL, library_id INT UNSIGNED NOT NULL, dependency_type VARCHAR(31) NOT NULL, weight SMALLINT UNSIGNED NOT NULL DEFAULT 0, drop_css TINYINT UNSIGNED NOT NULL, PRIMARY KEY (content_id, library_id, dependency_type) ) ENGINE = MyISAM; # Keep track of h5p libraries CREATE TABLE IF NOT EXISTS tiki_h5p_libraries ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, created_at TIMESTAMP NULL, updated_at TIMESTAMP NULL, name VARCHAR(127) NOT NULL, title VARCHAR(255) NOT NULL, major_version INT UNSIGNED NOT NULL, minor_version INT UNSIGNED NOT NULL, patch_version INT UNSIGNED NOT NULL, runnable INT UNSIGNED NOT NULL, restricted INT UNSIGNED NOT NULL DEFAULT 0, fullscreen INT UNSIGNED NOT NULL, embed_types VARCHAR(255) NOT NULL, preloaded_js TEXT NULL, preloaded_css TEXT NULL, drop_library_css TEXT NULL, semantics TEXT NOT NULL, tutorial_url VARCHAR(1023) NOT NULL, PRIMARY KEY (id), KEY name_version (name, major_version, minor_version, patch_version), KEY runnable (runnable) ) ENGINE = MyISAM; # Keep track of h5p library dependencies CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_libraries ( library_id INT UNSIGNED NOT NULL, required_library_id INT UNSIGNED NOT NULL, dependency_type VARCHAR(31) NOT NULL, PRIMARY KEY (library_id, required_library_id) ) ENGINE = MyISAM; # Keep track of h5p library translations CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_languages ( library_id INT UNSIGNED NOT NULL, language_code VARCHAR(31) NOT NULL, translation TEXT NOT NULL, PRIMARY KEY (library_id, language_code) ) ENGINE = MyISAM; # Keep track of temporary files uploaded in editor before saving content CREATE TABLE IF NOT EXISTS tiki_h5p_tmpfiles ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, path VARCHAR(255) NOT NULL, created_at INT UNSIGNED NOT NULL, PRIMARY KEY (id), KEY created_at (created_at), KEY path (path) ) ENGINE = MyISAM; # Keep track of results (contents >-< users) -> Reusing Action log in Tiki? CREATE TABLE IF NOT EXISTS tiki_h5p_results ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, content_id INT UNSIGNED NOT NULL, user_id INT UNSIGNED NOT NULL, score INT UNSIGNED NOT NULL, max_score INT UNSIGNED NOT NULL, opened INT UNSIGNED NOT NULL, finished INT UNSIGNED NOT NULL, time INT UNSIGNED NOT NULL, PRIMARY KEY (id), KEY content_user (content_id, user_id) ) ENGINE = MyISAM; # Cache table for h5p libraries so we can reuse the existing h5p code for caching CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_cachedassets ( library_id INT UNSIGNED NOT NULL, hash VARCHAR(64) NOT NULL, PRIMARY KEY (library_id, hash) ) ENGINE = MyISAM;