dump much more data

This commit is contained in:
steinm 2012-12-13 21:35:07 +00:00
parent 2bba022d94
commit 708c5da8e3

View File

@ -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";
?>