mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-07-15 08:58:10 +00:00
file containing meta data can be specified
This commit is contained in:
parent
1de9ed37d5
commit
3d5812c86d
|
@ -48,6 +48,43 @@ if(strpos($dirname, realpath($settings->_dropFolderDir.'/'.$user->getLogin().'/'
|
||||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_dropfolder_folder"));
|
UI::exitError(getMLText("admin_tools"),getMLText("invalid_dropfolder_folder"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$metadata = array();
|
||||||
|
if(!empty($_GET["dropfolderfileform2"])) {
|
||||||
|
$metadatafile = realpath($settings->_dropFolderDir.'/'.$user->getLogin()."/".$_GET["dropfolderfileform2"]);
|
||||||
|
$csvdelim = ';';
|
||||||
|
$csvencl = '"';
|
||||||
|
if($fp = fopen($metadatafile, 'r')) {
|
||||||
|
$colmap = array();
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(count($colmap) > 1) {
|
||||||
|
$nameprefix = dirname($dirname).'/';
|
||||||
|
$allcats = $dms->getDocumentCategories();
|
||||||
|
$catids = array();
|
||||||
|
foreach($allcats as $cat)
|
||||||
|
$catids[$cat->getName()] = $cat;
|
||||||
|
while(!feof($fp)) {
|
||||||
|
if($data = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
|
||||||
|
$metadata[$nameprefix.$data[$colmap['filename']]] = array('category'=>array());
|
||||||
|
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];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$setfiledate = false;
|
$setfiledate = false;
|
||||||
if(isset($_GET['setfiledate']) && $_GET["setfiledate"]) {
|
if(isset($_GET['setfiledate']) && $_GET["setfiledate"]) {
|
||||||
$setfiledate = true;
|
$setfiledate = true;
|
||||||
|
@ -58,7 +95,7 @@ if(isset($_GET['setfolderdate']) && $_GET["setfolderdate"]) {
|
||||||
$setfolderdate = true;
|
$setfolderdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function import_folder($dirname, $folder, $setfiledate, $setfolderdate) { /* {{{ */
|
function import_folder($dirname, $folder, $setfiledate, $setfolderdate, $metadata) { /* {{{ */
|
||||||
global $user, $doccount, $foldercount;
|
global $user, $doccount, $foldercount;
|
||||||
|
|
||||||
$d = dir($dirname);
|
$d = dir($dirname);
|
||||||
|
@ -87,7 +124,7 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate) { /* {{{
|
||||||
|
|
||||||
// echo $mimetype." - ".$filetype." - ".$path."\n";
|
// echo $mimetype." - ".$filetype." - ".$path."\n";
|
||||||
if($res = $folder->addDocument($name, $comment, $expires, $user, $keywords,
|
if($res = $folder->addDocument($name, $comment, $expires, $user, $keywords,
|
||||||
$categories, $filetmp, $name,
|
$metadata[$path]['category'], $filetmp, $name,
|
||||||
$filetype, $mimetype, $sequence, $reviewers,
|
$filetype, $mimetype, $sequence, $reviewers,
|
||||||
$approvers, $reqversion, $version_comment)) {
|
$approvers, $reqversion, $version_comment)) {
|
||||||
$doccount++;
|
$doccount++;
|
||||||
|
@ -108,7 +145,7 @@ function import_folder($dirname, $folder, $setfiledate, $setfolderdate) { /* {{{
|
||||||
if($setfolderdate) {
|
if($setfolderdate) {
|
||||||
$newfolder->setDate(filemtime($path));
|
$newfolder->setDate(filemtime($path));
|
||||||
}
|
}
|
||||||
if(!import_folder($path, $newfolder, $setfiledate, $setfolderdate))
|
if(!import_folder($path, $newfolder, $setfiledate, $setfolderdate, $metadata))
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -125,7 +162,7 @@ if($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1
|
||||||
if($setfolderdate) {
|
if($setfolderdate) {
|
||||||
$newfolder->setDate(filemtime($dirname));
|
$newfolder->setDate(filemtime($dirname));
|
||||||
}
|
}
|
||||||
if(!import_folder($dirname, $newfolder, $setfiledate, $setfolderdate))
|
if(!import_folder($dirname, $newfolder, $setfiledate, $setfolderdate, $metadata))
|
||||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
||||||
else {
|
else {
|
||||||
if(isset($_GET['remove']) && $_GET["remove"]) {
|
if(isset($_GET['remove']) && $_GET["remove"]) {
|
||||||
|
|
|
@ -59,6 +59,10 @@ class SeedDMS_View_ImportFS extends SeedDMS_Bootstrap_Style {
|
||||||
getMLText("dropfolder_folder"),
|
getMLText("dropfolder_folder"),
|
||||||
$this->getDropFolderChooserHtml("form1", "", 1)
|
$this->getDropFolderChooserHtml("form1", "", 1)
|
||||||
);
|
);
|
||||||
|
$this->formField(
|
||||||
|
getMLText("dropfolder_metadata"),
|
||||||
|
$this->getDropFolderChooserHtml("form2", "", 0)
|
||||||
|
);
|
||||||
$this->formField(
|
$this->formField(
|
||||||
getMLText("removeFolderFromDropFolder"),
|
getMLText("removeFolderFromDropFolder"),
|
||||||
array(
|
array(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user