-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.php
More file actions
82 lines (67 loc) · 3.1 KB
/
setup.php
File metadata and controls
82 lines (67 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
function install() {
global $pdo;
echo("[INFO] Plugin installation...");
### MySQL database setup ###
try {
$db_query = $pdo->prepare('CREATE TABLE PLUGIN_GAMIFICATION_BADGES
(
`BADGE_ID` int(11) NOT NULL,
`badge_name` int(11) NOT NULL,
`badge_path` text NOT NULL
);');
$db_query->execute();
$db_query = $pdo->prepare('CREATE TABLE PLUGIN_GAMIFICATION_ACHIEVEMENTS
(
`ID` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`badge_id` int(11) NOT NULL
);');
$db_query->execute();
$db_query = $pdo->prepare('ALTER TABLE `PLUGIN_GAMIFICATION_BADGES`
ADD PRIMARY KEY (`BADGE_ID`);');
$db_query->execute();
$db_query = $pdo->prepare('ALTER TABLE `PLUGIN_GAMIFICATION_ACHIEVEMENTS`
ADD PRIMARY KEY (`ID`);');
$db_query->execute();
$db_query = $pdo->prepare('ALTER TABLE `PLUGIN_GAMIFICATION_BADGES`
MODIFY `BADGE_ID` int(11) NOT NULL AUTO_INCREMENT;');
$db_query->execute();
$db_query = $pdo->prepare('ALTER TABLE `PLUGIN_GAMIFICATION_ACHIEVEMENTS`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;');
$db_query->execute();
$db_query = $pdo->prepare('ALTER TABLE `PLUGIN_GAMIFICATION_ACHIEVEMENTS`
ADD CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `USERS` (`USER_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `badge_id` FOREIGN KEY (`badge_id`) REFERENCES `PLUGIN_GAMIFICATION_BADGES` (`BADGE_ID`) ON DELETE CASCADE ON UPDATE CASCADE;');
$db_query->execute();
} catch (Exception $e) {
print($e);
return False;
}
### Add plugin's status to proper table ###
$db_query = $pdo->prepare('INSERT INTO PLUGINS (plugin_name, value_category, value) VALUES ("ESITGamificationPlugin", "installed", "true")');
$db_query->execute();
### Setup of badges' imgs public directory ###
copy_directory(__DIR__."/badges", __DIR__."/../../../public/img/plugins/gamification/badges");
### Installation finished ###
return True;
}
function uninstall() {
global $pdo;
try {
$db_query = $pdo->prepare('DROP TABLE `PLUGIN_GAMIFICATION_ACHIEVEMENTS`;');
$db_query->execute();
$db_query = $pdo->prepare('DROP TABLE `PLUGIN_GAMIFICATION_BADGES`;');
$db_query->execute();
$db_query = $pdo->prepare('DELETE FROM PLUGINS WHERE plugin_name="ESITGamificationPlugin"');
$db_query->execute();
$db_query = $pdo->prepare('DELETE FROM MISC WHERE misc_name LIKE "community_plugin_ESITGamificationPlugin"');
$db_query->execute();
delete_directory(__DIR__."/../../../public/img/plugins/gamification/badges");
} catch (Exception $e) {
print($e);
return False;
}
return True;
}
?>