'boolean', ] ); } /** * Create instance of a Mindmap plugin object. * * @return MindmapPlugin|null */ public static function create() { static $result = null; return $result ? $result : $result = new self(); } /** * Install the table structure. */ public function install() { $sql = "CREATE TABLE IF NOT EXISTS ".$this->table."( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(255) NOT NULL, description VARCHAR(512), mindmap_type VARCHAR(155), mindmap_data TEXT, user_id INT, is_public INT, is_shared INT, c_id INT, session_id INT, url_id INT, PRIMARY KEY (id));"; Database::query($sql); // Copy icons into the main/img/icons folder $iconName = 'mindmap'; $iconsList = [ '64/'.$iconName.'.png', '64/'.$iconName.'_na.png', '32/'.$iconName.'.png', '32/'.$iconName.'_na.png', '22/'.$iconName.'.png', '22/'.$iconName.'_na.png', ]; $sourceDir = api_get_path(SYS_PLUGIN_PATH).'mindmap/img/'; $destinationDir = api_get_path(SYS_CODE_PATH).'img/icons/'; foreach ($iconsList as $icon) { $src = $sourceDir.$icon; $dest = $destinationDir.$icon; copy($src, $dest); } // Installing course settings $this->install_course_fields_in_all_courses(true, 'mindmap.png'); } public function uninstall() { // Remove table $em = Database::getManager(); $sm = $em->getConnection()->getSchemaManager(); if ($sm->tablesExist('plugin_mindmap')) { Database::query('DROP TABLE IF EXISTS plugin_mindmap'); } // Remove icons from the main/img/icons folder $iconName = 'mindmap'; $iconsList = [ '64/'.$iconName.'.png', '64/'.$iconName.'_na.png', '32/'.$iconName.'.png', '32/'.$iconName.'_na.png', '22/'.$iconName.'.png', '22/'.$iconName.'_na.png', ]; $destinationDir = api_get_path(SYS_CODE_PATH).'img/icons/'; foreach ($iconsList as $icon) { $dest = $destinationDir.$icon; if (is_file($dest)) { @unlink($dest); } } // Deleting course settings and course home icons $this->uninstall_course_fields_in_all_courses(); } }