Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/plugin/mindmap/mindmap_plugin.class.php

92 lines
2.6 KiB

<?php
/* For licensing terms, see /license.txt */
/**
* Class MindmapPlugin
* This class defines the course plugin "MindMap", storing its data in the plugin_mindmap table.
*/
class MindmapPlugin extends Plugin
{
public $isCoursePlugin = true;
public $course_settings = [];
public $table = 'plugin_mindmap';
/**
* MindmapPlugin constructor.
*/
protected function __construct()
{
parent::__construct(
'1.1', 'Damien Renou - Batisseurs Numériques',
[
'tool_enable' => '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 to the main Chamilo directory
$p1 = api_get_path(SYS_PATH).'plugin/mindmap/img/mindmap64.png';
$p2 = api_get_path(SYS_PATH).'main/img/icons/64/mindmap.png';
copy($p1, $p2);
$p3 = api_get_path(SYS_PATH).'plugin/mindmap/img/mindmap64_na.png';
$p4 = api_get_path(SYS_PATH).'main/img/icons/64/mindmap_na.png';
copy($p3, $p4);
// Installing course settings
$this->install_course_fields_in_all_courses();
}
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');
}
// Deleting course settings and course home icons
$this->uninstall_course_fields_in_all_courses();
$p2 = api_get_path(SYS_PATH).'main/img/icons/64/mindmap.png';
if (file_exists($p2) && is_writable($p2)) {
unlink($p2);
}
$p4 = api_get_path(SYS_PATH).'main/img/icons/64/mindmap_na.png';
if (file_exists($p4) && is_writable($p4)) {
unlink($p4);
}
}
}