-
Notifications
You must be signed in to change notification settings - Fork 0
/
HeistPlugin.php
70 lines (61 loc) · 2.07 KB
/
HeistPlugin.php
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
<?php
class HeistPlugin extends Omeka_Plugin_AbstractPlugin
{
protected $_filters = array(
'api_resources',
);
protected $_hooks = array(
'install',
'uninstall',
'define_acl',
'upgrade',
);
public function hookInstall($args)
{
$db = get_db();
$sql = "
CREATE TABLE IF NOT EXISTS `$db->Heist` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`pairing_id` int(10) UNSIGNED,
`device_id` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
`omeka_id` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
`table_id` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
`item_ids` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
";
$db->query($sql);
}
public function hookUpgrade($args)
{
$oldVersion = $args['old_version'];
$newVersion = $args['new_version'];
$db = get_db();
if (version_compare($oldVersion, '1.1', '<')) {
$omekaSql = "ALTER TABLE `$db->Heist` ADD `omeka_id` TINYTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL;";
$db->query($omekaSql);
$tableSql = "ALTER TABLE `$db->Heist` ADD `table_id` TINYTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL";
$db->query($tableSql);
}
}
public function hookUninstall($args)
{
$db = get_db();
$db->query("DROP TABLE IF EXISTS `$db->Heist`");
}
public function hookDefineAcl($args)
{
$acl = $args['acl'];
$acl->addResource('Heists');
$acl->allow(null, 'Heists');
}
public function filterApiResources($apiResources)
{
$apiResources['heist'] = array(
'record_type' => 'Heist',
'actions' => array('index', 'get', 'post', 'put', 'delete'),
'index_params' => array('id', 'pairing_id', 'device_id', 'omeka_id', 'table_id'),
);
return $apiResources;
}
}