some improvements (still unfinished)

This commit is contained in:
Uwe Steinmann 2020-02-18 09:45:59 +01:00
parent 0378295208
commit 7ed771dba8

View File

@ -48,6 +48,33 @@ if(strpos($dirname, realpath($settings->_dropFolderDir.'/'.$user->getLogin().'/'
UI::exitError(getMLText("admin_tools"),getMLText("invalid_dropfolder_folder"));
}
function getBaseData($colname, $coldata, $objdata) { /* {{{ */
$objdata[$colname] = $coldata;
return $objdata;
} /* }}} */
function getAttributeData($attrdef, $coldata, $objdata) { /* {{{ */
$objdata['attributes'][$attrdef->getID()] = $coldata;
return $objdata;
} /* }}} */
function getCategoryData($colname, $coldata, $objdata) { /* {{{ */
global $catids;
$kk = explode(',', $coldata);
foreach($kk as $k) {
if(isset($catids[$k]))
$objdata['category'][] = $catids[$k];
}
return $objdata;
} /* }}} */
function getUserData($colname, $coldata, $objdata) { /* {{{ */
global $userids;
if(isset($userids[$coldata]))
$objdata['owner'] = $userids[$coldata];
return $objdata;
} /* }}} */
$metadata = array();
if(!empty($_GET["dropfolderfileform2"])) {
$metadatafile = realpath($settings->_dropFolderDir.'/'.$user->getLogin()."/".$_GET["dropfolderfileform2"]);
@ -58,32 +85,69 @@ if(!empty($_GET["dropfolderfileform2"])) {
if($header = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
print_r($header);
foreach($header as $i=>$colname) {
if(in_array($colname, array('filename', 'category'))) {
$colmap[$colname] = $i;
$colname = trim($colname);
if(in_array($colname, array('category'))) {
$colmap[$i] = array("getCategoryData", $colname);
} elseif(in_array($colname, array('owner'))) {
$colmap[$i] = array("getUserData", $colname);
} elseif(in_array($colname, array('filename', 'category', 'name', 'comment'))) {
$colmap[$i] = array("getBaseData", $colname);
} elseif(substr($colname, 0, 5) == 'attr:') {
$kk = explode(':', $colname, 2);
if(($attrdef = $dms->getAttributeDefinitionByName($kk[1])) || ($attrdef = $dms->getAttributeDefinition((int) $kk[1]))) {
$colmap[$i] = array("getAttributeData", $attrdef);
}
}
}
}
echo "<pre>";print_r($colmap);echo "</pre>";
if(count($colmap) > 1) {
$nameprefix = dirname($dirname).'/';
$allcats = $dms->getDocumentCategories();
$catids = array();
foreach($allcats as $cat)
$catids[$cat->getName()] = $cat;
$allusers = $dms->getAllUsers();
$userids = array();
foreach($allusers as $muser)
$userids[$muser->getLogin()] = $muser;
while(!feof($fp)) {
if($data = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
$metadata[$nameprefix.$data[$colmap['filename']]] = array('category'=>array());
$mi = $nameprefix.$data[$colmap['filename']];
$metadata[$mi] = array('category'=>array());
$md = array();
foreach($data as $i=>$coldata) {
if(isset($colmap[$i])) {
$md = call_user_func($colmap[$i][0], $colmap[$i][1], $coldata, $md);
}
}
$metadata[$mi] = $md;
/*
if($data[$colmap['category']]) {
$kk = explode(',', $data[$colmap['category']]);
foreach($kk as $k) {
if(isset($catids[$k]))
$metadata[$nameprefix.$data[$colmap['filename']]]['category'][] = $catids[$k];
$metadata[$mi]['category'][] = $catids[$k];
}
}
if($data[$colmap['owner']]) {
if(isset($userids[trim($data[$colmap['owner']])]))
$metadata[$mi]['owner'] = $userids[trim($data[$colmap['owner']])];
}
if($data[$colmap['name']]) {
$metadata[$mi]['name'] = $data[$colmap['name']];
}
if($data[$colmap['comment']]) {
$metadata[$mi]['comment'] = $data[$colmap['comment']];
}
*/
}
}
}
}
}
echo "<pre>";print_r($metadata);echo "</pre>";
exit;
$setfiledate = false;
if(isset($_GET['setfiledate']) && $_GET["setfiledate"]) {