mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-14 21:51:32 +00:00
dump much more data
This commit is contained in:
parent
2bba022d94
commit
708c5da8e3
|
@ -2,8 +2,8 @@
|
|||
ini_set('include_path', '.:/usr/share/php:/usr/share/letodms');
|
||||
|
||||
require_once("inc/inc.ClassSettings.php");
|
||||
require_once("LetoDMS/Core.php");
|
||||
require_once("LetoDMS/Lucene.php");
|
||||
//require_once("LetoDMS/Core.php");
|
||||
require_once("LetoDMS_Core/Core.php");
|
||||
|
||||
function usage() { /* {{{ */
|
||||
echo "Usage:\n";
|
||||
|
@ -16,6 +16,7 @@ function usage() { /* {{{ */
|
|||
echo " -h, --help: print usage information and exit.\n";
|
||||
echo " -v, --version: print version and exit.\n";
|
||||
echo " --config: set alternative config file.\n";
|
||||
echo " --folder: set start folder.\n";
|
||||
} /* }}} */
|
||||
|
||||
function wrapWithCData($text) { /* {{{ */
|
||||
|
@ -27,7 +28,7 @@ function wrapWithCData($text) { /* {{{ */
|
|||
|
||||
$version = "0.0.1";
|
||||
$shortoptions = "hv";
|
||||
$longoptions = array('help', 'version', 'config:');
|
||||
$longoptions = array('help', 'version', 'config:', 'folder:');
|
||||
if(false === ($options = getopt($shortoptions, $longoptions))) {
|
||||
usage();
|
||||
exit(0);
|
||||
|
@ -52,9 +53,18 @@ if(isset($options['config'])) {
|
|||
$settings = new Settings();
|
||||
}
|
||||
|
||||
function tree($folder, $indent='') {
|
||||
if(isset($options['folder'])) {
|
||||
$folderid = intval($options['folder']);
|
||||
} else {
|
||||
$folderid = $settings->_rootFolderID;
|
||||
}
|
||||
|
||||
function tree($folder, $parent=null, $indent='') { /* {{{ */
|
||||
global $index, $dms;
|
||||
echo $indent."<folder id=\"".$folder->getId()."\">\n";
|
||||
echo $indent."<folder id=\"".$folder->getId()."\"";
|
||||
if($parent)
|
||||
echo " parent=\"".$parent->getID()."\"";
|
||||
echo ">\n";
|
||||
echo $indent." <attr name=\"name\">".wrapWithCData($folder->getName())."</attr>\n";
|
||||
echo $indent." <attr name=\"date\">".date('c', $folder->getDate())."</attr>\n";
|
||||
echo $indent." <attr name=\"defaultaccess\">".$folder->getDefaultAccess()."</attr>\n";
|
||||
|
@ -63,20 +73,48 @@ function tree($folder, $indent='') {
|
|||
if($folder->getComment())
|
||||
echo $indent." <attr name=\"comment\">".wrapWithCData($folder->getComment())."</attr>\n";
|
||||
echo $indent." <attr name=\"owner\">".$folder->getOwner()->getId()."</attr>\n";
|
||||
if($attributes = $folder->getAttributes()) {
|
||||
foreach($attributes as $attribute) {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
echo $indent." <attr type=\"user\" attrdef=\"".$attrdef->getID()."\">".$attribute->getValue()."</attr>\n";
|
||||
}
|
||||
}
|
||||
if($folder->inheritsAccess()) {
|
||||
echo $indent." <acls type=\"inherited\" />\n";
|
||||
} else {
|
||||
echo $indent." <acls>\n";
|
||||
$accesslist = $folder->getAccessList();
|
||||
foreach($accesslist['users'] as $acl) {
|
||||
echo $indent." <acl type=\"user\"";
|
||||
$user = $acl->getUser();
|
||||
echo " user=\"".$user->getID()."\"";
|
||||
echo " mode=\"".$acl->getMode()."\"";
|
||||
echo "/>\n";
|
||||
}
|
||||
foreach($accesslist['groups'] as $acl) {
|
||||
echo $indent." <acl type=\"group\"";
|
||||
$group = $acl->getGroup();
|
||||
echo $indent." group=\"".$group->getID()."\"";
|
||||
echo $indent." mode=\"".$acl->getMode()."\"";
|
||||
echo "/>\n";
|
||||
}
|
||||
echo $indent." </acls>\n";
|
||||
}
|
||||
echo $indent."</folder>\n";
|
||||
$subfolders = $folder->getSubFolders();
|
||||
if($subfolders) {
|
||||
echo $indent." <folders>\n";
|
||||
foreach($subfolders as $subfolder) {
|
||||
tree($subfolder, $indent.' ');
|
||||
tree($subfolder, $folder, $indent);
|
||||
}
|
||||
echo $indent." </folders>\n";
|
||||
}
|
||||
$documents = $folder->getDocuments();
|
||||
if($documents) {
|
||||
echo $indent." <documents>\n";
|
||||
foreach($documents as $document) {
|
||||
$owner = $document->getOwner();
|
||||
echo $indent." <document id=\"".$document->getId()."\">\n";
|
||||
echo $indent."<document id=\"".$document->getId()."\" folder=\"".$folder->getID()."\"";
|
||||
if($document->isLocked())
|
||||
echo " locked=\"true\"";
|
||||
echo ">\n";
|
||||
echo $indent." <attr name=\"name\">".wrapWithCData($document->getName())."</attr>\n";
|
||||
echo $indent." <attr name=\"date\">".date('c', $document->getDate())."</attr>\n";
|
||||
if($document->getExpires())
|
||||
|
@ -93,6 +131,12 @@ function tree($folder, $indent='') {
|
|||
}
|
||||
if($document->getComment())
|
||||
echo $indent." <attr name=\"comment\">".wrapWithCData($document->getComment())."</attr>\n";
|
||||
if($attributes = $document->getAttributes()) {
|
||||
foreach($attributes as $attribute) {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
echo $indent." <attr type=\"user\" attrdef=\"".$attrdef->getID()."\">".$attribute->getValue()."</attr>\n";
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if acl is not inherited */
|
||||
if(!$document->inheritsAccess()) {
|
||||
|
@ -144,6 +188,12 @@ function tree($folder, $indent='') {
|
|||
echo $indent." <attr name=\"comment\">".wrapWithCData($version->getComment())."</attr>\n";
|
||||
echo $indent." <attr name=\"owner\">".$owner->getId()."</attr>\n";
|
||||
echo $indent." <attr name=\"orgfilename\">".wrapWithCData($version->getOriginalFileName())."</attr>\n";
|
||||
if($attributes = $version->getAttributes()) {
|
||||
foreach($attributes as $attribute) {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
echo $indent." <attr type=\"user\" attrdef=\"".$attrdef->getID()."\">".$attribute->getValue()."</attr>\n";
|
||||
}
|
||||
}
|
||||
if($approvalStatus) {
|
||||
echo $indent." <approvals>\n";
|
||||
foreach($approvalStatus as $a) {
|
||||
|
@ -178,6 +228,8 @@ function tree($folder, $indent='') {
|
|||
echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $version->getPath())), 76, "\n");
|
||||
}
|
||||
echo $indent." </data>\n";
|
||||
} else {
|
||||
echo $indent." <!-- ".$dms->contentDir . $version->getPath()." not found -->\n";
|
||||
}
|
||||
echo $indent." </version>\n";
|
||||
}
|
||||
|
@ -237,12 +289,10 @@ function tree($folder, $indent='') {
|
|||
}
|
||||
}
|
||||
|
||||
echo $indent." </document>\n";
|
||||
echo $indent."</document>\n";
|
||||
}
|
||||
echo $indent." </documents>\n";
|
||||
}
|
||||
echo $indent."</folder>\n";
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
$db = new LetoDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase);
|
||||
$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\"");
|
||||
|
@ -266,9 +316,11 @@ if($users) {
|
|||
echo " <attr name=\"theme\">".$user->getTheme()."</attr>\n";
|
||||
echo " <attr name=\"role\">".$user->getRole()."</attr>\n";
|
||||
echo " <attr name=\"hidden\">".$user->isHidden()."</attr>\n";
|
||||
echo " <attr name=\"disabled\">".$user->isDisabled()."</attr>\n";
|
||||
echo " <attr name=\"pwdexpiration\">".$user->getPwdExpiration()."</attr>\n";
|
||||
if($image = $user->getImage()) {
|
||||
echo " <image id=\"".$image['id']."\">\n";
|
||||
echo " <attr name=\"mimetype\">".$image['mimetype']."</attr>\n";
|
||||
echo " <attr name=\"mimetype\">".$image['mimeType']."</attr>\n";
|
||||
echo " <data>".base64_encode($image['image'])."</data>\n";
|
||||
echo " </image>\n";
|
||||
}
|
||||
|
@ -330,8 +382,41 @@ if($categories) {
|
|||
echo "</documentcategories>\n";
|
||||
}
|
||||
|
||||
$folder = $dms->getFolder($settings->_rootFolderID);
|
||||
tree($folder);
|
||||
$attrdefs = $dms->getAllAttributeDefinitions();
|
||||
if($attrdefs) {
|
||||
echo "<attrіbutedefinitions>\n";
|
||||
foreach ($attrdefs as $attrdef) {
|
||||
echo " <attributedefinition id=\"".$attrdef->getID()."\" objtype=\"";
|
||||
switch($attrdef->getObjType()) {
|
||||
case LetoDMS_Core_AttributeDefinition::objtype_all:
|
||||
echo "all";
|
||||
break;
|
||||
case LetoDMS_Core_AttributeDefinition::objtype_folder:
|
||||
echo "folder";
|
||||
break;
|
||||
case LetoDMS_Core_AttributeDefinition::objtype_document:
|
||||
echo "document";
|
||||
break;
|
||||
case LetoDMS_Core_AttributeDefinition::objtype_documentcontent:
|
||||
echo "documentcontent";
|
||||
break;
|
||||
}
|
||||
echo "\">\n";
|
||||
echo " <attr name=\"name\">".$attrdef->getName()."</attr>\n";
|
||||
echo " <attr name=\"multiple\">".$attrdef->hasMultipleValues()."</attr>\n";
|
||||
echo " <attr name=\"valueset\">".$attrdef->getValueSet()."</attr>\n";
|
||||
echo " <attr name=\"type\">".$attrdef->getType()."</attr>\n";
|
||||
echo " <attr name=\"minvalues\">".$attrdef->getMinValues()."</attr>\n";
|
||||
echo " <attr name=\"maxvalues\">".$attrdef->getMaxValues()."</attr>\n";
|
||||
echo " </attributedefinition>\n";
|
||||
}
|
||||
echo "</attrіbutedefinitions>\n";
|
||||
}
|
||||
|
||||
$folder = $dms->getFolder($folderid);
|
||||
if($folder) {
|
||||
tree($folder);
|
||||
}
|
||||
|
||||
echo "</dms>\n";
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue
Block a user