storagemanager.inc.php
4.04 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
<?php
/**
* 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("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("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("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("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("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("Not implemented");
}
function renameFolder($oFolder, $sNewName) {
return PEAR::raiseError("Not implemented");
}
/**
* Perform any storage changes necessary to account for a copied
* document object.
*/
function copy ($oSrcDocument, &$oNewDocument) {
return PEAR::raiseError("Not implemented");
}
/**
* Performs any storage changes necessary to account for the
* document being marked as deleted.
*/
function delete (&$oDocument) {
return PEAR::raiseError("Not implemented");
}
/**
* Remove the documents (already marked as deleted) from the
* storage.
*/
function expunge (&$oDocument) {
return PEAR::raiseError("Not implemented");
}
/**
* Performs any storage changes necessary to account for the
* document (previously marked as deleted) being restored.
*/
function restore (&$oDocument) {
return PEAR::raiseError("Not implemented");
}
function getPath(&$oDocument) {
return PEAR::raiseError("Not implemented");
}
function setPath(&$oDocument) {
return PEAR::raiseError("Not implemented");
}
function generatePath(&$oDocument) {
return PEAR::raiseError("Not implemented");
}
function createFolder($sFolderPath) {
return PEAR::raiseError("Not implemented");
}
function renameDocument(&$oDocument, $oOldContentVersion, $sNewFilename) {
return PEAR::raiseError("Not implemented");
}
}
class KTStorageManagerUtil {
function &getSingleton() {
$oConfig =& KTConfig::getSingleton();
$sDefaultManager = 'KTOnDiskPathStorageManager';
$klass = $oConfig->get('storage/manager', $sDefaultManager);
if (!class_exists($klass)) {
$klass = $sDefaultManager;
}
if (!KTUtil::arrayGet($GLOBALS, 'KTStorageManager')) {
$GLOBALS['KTStorageManager'] =& new $klass;
}
return $GLOBALS['KTStorageManager'];
}
}
?>