storagemanager.inc.php
5.32 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
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<?php
/**
* $Id$
*
* The contents of this file are subject to the KnowledgeTree Public
* License Version 1.1.2 ("License"); You may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.knowledgetree.com/KPL
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
* See the License for the specific language governing rights and
* limitations under the License.
*
* All copies of the Covered Code must include on each user interface screen:
* (i) the "Powered by KnowledgeTree" logo and
* (ii) the KnowledgeTree copyright notice
* in the same form as they appear in the distribution. See the License for
* requirements.
*
* The Original Code is: KnowledgeTree Open Source
*
* The Initial Developer of the Original Code is The Jam Warehouse Software
* (Pty) Ltd, trading as KnowledgeTree.
* Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
* (C) 2007 The Jam Warehouse Software (Pty) Ltd;
* All Rights Reserved.
* Contributor( s): ______________________________________
*
* -------------------------------------------------------------------------
*
* Manages the storage and storage location of a file.
*
* The Document Manager may only use setDiskPath on the oDocument
* object, and should not update the document object.
*/
class KTStorageManager {
/**
* Puts the given file into storage, and saves the storage details
* into the document.
*/
function upload (&$oDocument, $sTmpFilePath) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Gets the latest verison of a document's contents from storage and
* writes it to the standard content with HTTP headers as an
* attachment.
*/
function download (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Gets a specific version of a document's contents from storage and
* writes it to the standard content with HTTP headers.
*/
function downloadVersion (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Gets the latest verison of a document's contents from storage and
* writes it to the standard content with HTTP headers for inline
* view.
*/
function inlineView (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Performs any storage changes necessary to account for a changed
* repository path.
*
* The info arrays must contain the following information:
* "names" => an array of the names of the folders in the path
* from the root of the repository
* ("Root Folder", "foo", "bar", "baz")
* "ids" => an array of the ids of the folders in the path from
* the root of the repository
* (1, 3, 9, 27)
*/
function move (&$oDocument, $aOldInfo, $aNewInfo) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Perform any storage changes necessary to account for moving one
* tree in the repository to a different location.
*/
function moveFolder ($oFolder, $oDestFolder) {
return PEAR::raiseError(_kt("Not implemented"));
}
function renameFolder($oFolder, $sNewName) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Perform any storage changes necessary to account for a copied
* document object.
*/
function copy ($oSrcDocument, &$oNewDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Performs any storage changes necessary to account for the
* document being marked as deleted.
*/
function delete (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Remove the documents (already marked as deleted) from the
* storage.
*/
function expunge (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
/**
* Performs any storage changes necessary to account for the
* document (previously marked as deleted) being restored.
*/
function restore (&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
function getPath(&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
function setPath(&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
function generatePath(&$oDocument) {
return PEAR::raiseError(_kt("Not implemented"));
}
function createFolder($sFolderPath) {
return PEAR::raiseError(_kt("Not implemented"));
}
function renameDocument(&$oDocument, $oOldContentVersion, $sNewFilename) {
return PEAR::raiseError(_kt("Not implemented"));
}
}
class KTStorageManagerUtil {
function &getSingleton() {
$oConfig =& KTConfig::getSingleton();
$sDefaultManager = 'KTOnDiskHashedStorageManager';
$klass = $oConfig->get('storage/manager', $sDefaultManager);
if (!class_exists($klass)) {
$klass = $sDefaultManager;
}
if (!KTUtil::arrayGet($GLOBALS, 'KTStorageManager')) {
$GLOBALS['KTStorageManager'] =& new $klass;
}
return $GLOBALS['KTStorageManager'];
}
}
?>