forked from zikula-modules/Mediashare
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpnsourcesapi.php
124 lines (89 loc) · 3.3 KB
/
pnsourcesapi.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
// $Id$
//
// Mediashare by Jorn Lind-Nielsen (C)
//
function mediashare_sourcesapi_getSources($args)
{
$dom = ZLanguage::getModuleDomain('mediashare');
$pntable = pnDBGetTables();
$sourcesTable = $pntable['mediashare_sources'];
$sourcesColumn = $pntable['mediashare_sources_column'];
$where = "";
if ($args['active']) {
$where = "WHERE $sourcesColumn[active] = '" . DataUtil::formatForStore($args['active']) . "'";
}
$result = DBUtil::selectObjectArray('mediashare_sources', $where);
if ($result === false) {
return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('sourcesapi.getSources', 'Could not retrieve the sources.'), $dom));
}
return $result;
}
function mediashare_sourcesapi_scanSources()
{
// Check access
if (!SecurityUtil::checkPermission('mediashare::', '::', ACCESS_ADMIN)) {
return LogUtil::registerPermissionError();
}
$dom = ZLanguage::getModuleDomain('mediashare');
// Clear existing sources table
if (!DBUtil::truncateTable('mediashare_sources')) {
return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('sourcesapi.scanSources', __f("Could not clear the '%s' table.", 'sources', $dom)), $dom));
}
// Scan for sources APIs
$files = FileUtil::getFiles('modules/mediashare', false, true, 'php', 'f');
foreach ($files as $file)
{
if (preg_match('/^pnsource_([-a-zA-Z0-9_]+)api.php$/', $file, $matches)) {
$sourceName = $matches[1];
$sourceApi = "source_$sourceName";
// Force load - it is used during pninit
pnModAPILoad('mediashare', $sourceApi, true);
if (!($title = pnModAPIFunc('mediashare', $sourceApi, 'getTitle'))) {
return false;
}
if (!pnModAPIFunc('mediashare', 'sources', 'addSource', array('title' => $title, 'name' => $sourceName))) {
return false;
}
}
}
return true;
}
function mediashare_sourcesapi_addSource($args)
{
$dom = ZLanguage::getModuleDomain('mediashare');
$title = $args['title'];
$name = $args['name'];
$pntable = pnDBGetTables();
$sourcesColumn = $pntable['mediashare_sources_column'];
$source = array(
'name' => $name,
'title' => $title,
'formEncType' => ''
);
$result = DBUtil::insertObject($source, 'mediashare_sources', 'id');
if ($result === false) {
return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('sourcesapi.addSource', 'Could not add a source.'), $dom));
}
return true;
}
function mediashare_sourcesapi_OnOffsources($args)
{
$dom = ZLanguage::getModuleDomain('mediashare');
if ($args['id'] === false) {
return false;
}
$source = DBUtil::selectObjectByID('mediashare_sources', $args['id']);
if ($args['active'] === flase) {
$source['active'] = 0;
}else {
$source['active'] = $args['active'];
// todo turn off same mimeTypes
}
$result = DBUTil::updateObject($source, 'mediashare_sources');
if ($result === false) {
return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('mediahandlerapi.addHandler', 'Could not change source status.'), $dom));
}
//turn off same mimeTypes
return true;
}