19 include_once (
"FDL/Class.DocFam.php");
20 include_once (
"FDL/Class.DocSearch.php");
21 include_once (
"FDL/Class.Dir.php");
22 include_once (
"FDL/Class.QueryDir.php");
23 include_once (
"FDL/Lib.Attr.php");
24 include_once (
"FDL/Class.DocAttrLDAP.php");
26 define(
"ALTSEPCHAR",
' --- ');
27 define(
"SEPCHAR",
';');
33 if (intval(ini_get(
"max_execution_time")) < 300) ini_set(
"max_execution_time", 300);
45 $fdoc = fopen($cvsfile,
"r");
49 if (!
$fdoc)
$action->exitError(_(
"no import file specified"));
51 while (!feof(
$fdoc)) {
52 $buffer = rtrim(fgets(
$fdoc, 16384));
53 $data = explode($comma, $buffer);
56 if (!
isUTF8($data)) $data = array_map(
"utf8_encode", $data);
59 if ($num < 1)
continue;
74 $tcr[$nline][
"title"] = substr($data[0], 0, 10);
75 $data[0] = trim($data[0]);
86 if (!
$doc->isAffected()) {
91 if (isset($data[3]) && ($data[3] > 0))
$doc->id = $data[3];
92 if (is_numeric($data[1]))
$doc->fromid = $data[1];
94 if (isset($data[5]))
$doc->name = $data[5];
97 $tcr[$nline][
"msg"] = sprintf(_(
"create %s family %s") , $data[2], $data[5]);
98 $tcr[$nline][
"action"] =
"added";
100 $tcr[$nline][
"action"] =
"updated";
101 $tcr[$nline][
"msg"] = sprintf(_(
"update %s family %s") , $data[2], $data[5]);
103 if ($data[1] && ($data[1] !=
'-')) {
104 if (is_numeric($data[1]))
$doc->fromid = $data[1];
107 if ($data[2] && ($data[2] !=
'-'))
$doc->title = $data[2];
108 if ($data[4] && ($data[4] !=
'-'))
$doc->classname = $data[4];
109 if ($data[5] && ($data[5] !=
'-'))
$doc->name = $data[5];
110 $tcr[$nline][
"err"].=
$err;
112 $tcr[$nline][
"msg"].= sprintf(_(
"reinit all attributes"));
115 $oattr->docid = intval(
$doc->id);
116 if ($oattr->docid > 0) {
117 $err = $oattr->exec_query(
"delete from docattr where docid=" . $oattr->docid);
119 $tcr[$nline][
"err"].=
$err;
125 if ($data[1] ==
"attributes") {
126 $tcr[$nline][
"msg"].= sprintf(_(
"reinit all attributes"));
129 $oattr->docid = intval(
$doc->id);
130 if ($oattr->docid > 0) {
131 $err = $oattr->exec_query(
"delete from docattr where docid=" . $oattr->docid);
134 $err =
"reset argument must be 'attributes'";
137 $tcr[$nline][
"err"].=
$err;
143 $msg = sprintf(_(
"modify %s family") ,
$doc->title);
144 $tcr[$nline][
"msg"] = $msg;
150 if (($num > 3) && ($data[3] !=
""))
$doc->doctype =
"S";
154 if (
$doc->doctype ==
"C") {
157 if (isset($tFamIdName)) $tFamIdName[
$doc->name] =
$doc->id;
161 if ((!
$analyze) && ($famicon !=
""))
$doc->changeIcon($famicon);
162 $tcr[$nline][
"msg"].=
$doc->postImport();
163 $doc->AddComment(_(
"Update by importation"));
172 if (is_numeric($data[1])) $fromid = $data[1];
175 if (isset($tkeys[$fromid])) $tk = $tkeys[$fromid];
181 if ($tcr[$nline][
"err"] ==
"") $nbdoc++;
188 $tcr[$nline][
"id"] = $data[1];
190 if (!
$doc->isAffected()) {
196 $tcr[$nline][
"msg"] = sprintf(_(
"update %s search") , $data[3]);
197 $tcr[$nline][
"action"] =
"updated";
204 $tcr[$nline][
"msg"] = sprintf(_(
"add %s search") , $data[3]);
205 $tcr[$nline][
"action"] =
"added";
206 $tcr[$nline][
"err"].=
$err;
208 if ((
$err !=
"") && (
$doc->id > 0)) {
213 $doc->title = $data[3];
215 $tcr[$nline][
"err"].=
$err;
217 if (($data[4] !=
"")) {
218 $err =
$doc->AddStaticQuery($data[4]);
219 $tcr[$nline][
"err"].=
$err;
224 if (
$dir->isAlive() && method_exists(
$dir,
"AddFile"))
$dir->AddFile(
$doc->id);
232 $doc->doctype = $data[1];
233 $tcr[$nline][
"msg"] = sprintf(_(
"set doctype to '%s'") , $data[1]);
238 $doc->genversion = $data[1];
239 $tcr[$nline][
"msg"] = sprintf(_(
"generate version '%s'") , $data[1]);
244 $doc->maxrev = intval($data[1]);
245 $tcr[$nline][
"msg"] = sprintf(_(
"max revision '%d'") , $data[1]);
250 if (
$doc->icon ==
"") {
252 $tcr[$nline][
"msg"] = sprintf(_(
"set icon to '%s'") , $data[1]);
254 $tcr[$nline][
"err"] = sprintf(_(
"icon already set. No update allowed"));
262 if (
$idoc->isAlive()) $tcr[$nline][
"msg"] = sprintf(_(
"document %s : set icon to '%s'") ,
$idoc->title, $data[2]);
263 else $tcr[$nline][
"err"] = sprintf(_(
"no change icon : document %s not found") , $data[1]);
269 if ($data[1] ==
"auto") {
270 if (
$doc->dfldid ==
"") {
273 include_once (
"FDL/freedom_util.php");
275 $tcr[$nline][
"msg"].= sprintf(_(
"create default folder (id [%d])\n") ,
$fldid);
279 $tcr[$nline][
"err"] = sprintf(_(
"default folder already set. Auto ignored"));
281 } elseif (is_numeric($data[1]))
$fldid = $data[1];
284 $tcr[$nline][
"msg"].= sprintf(_(
"set default folder to '%s'") , $data[1]);
289 if (is_numeric($data[1])) $cfldid = $data[1];
291 $doc->cfldid = $cfldid;
292 $tcr[$nline][
"msg"] = sprintf(_(
"set primary folder to '%s'") , $data[1]);
297 if (is_numeric($data[1])) $wid = $data[1];
300 $tcr[$nline][
"msg"] = sprintf(_(
"set default workflow to '%s'") , $data[1]);
305 if (is_numeric($data[1])) $cvid = $data[1];
308 $tcr[$nline][
"msg"] = sprintf(_(
"set view control to '%s'") , $data[1]);
313 $doc->schar = $data[1];
314 $tcr[$nline][
"msg"] = sprintf(_(
"set special characteristics to '%s'") , $data[1]);
321 if (($s1 ==
"+") || ($s1 ==
"*")) {
322 if ($s1 ==
"*")
$method = $data[1];
323 else $method = substr($data[1], 1);
325 if (
$doc->methods ==
"") {
328 $doc->methods.=
"\n$method";
330 $tmeth = explode(
"\n",
$doc->methods);
331 $tmeth = array_unique($tmeth);
332 $doc->methods = implode(
"\n", $tmeth);
334 }
else $doc->methods = $data[1];
336 $tcr[$nline][
"msg"] = sprintf(_(
"change methods to '%s'") ,
$doc->methods);
343 $tcr[$nline][
"msg"] = sprintf(_(
"change special use to '%s'") ,
$doc->usefor);
348 $doc->usefor = $data[1];
349 $tcr[$nline][
"msg"] = sprintf(_(
"change special use to '%s'") ,
$doc->usefor);
354 $doc->AddATag($data[1]);
355 $tcr[$nline][
"msg"] = sprintf(_(
"change application tag to '%s'") ,
$doc->atags);
360 if (is_numeric($data[1])) $pid = $data[1];
362 $doc->cprofid = $pid;
363 $tcr[$nline][
"msg"] = sprintf(_(
"change default creation profile id to '%s'") , $data[1]);
368 if (is_numeric($data[1])) $pid = $data[1];
370 $doc->setProfil($pid);
371 $tcr[$nline][
"msg"] = sprintf(_(
"change profile id to '%s'") , $data[1]);
375 $defv = str_replace(array(
382 $doc->setDefValue($data[1], $defv);
383 $force = (str_replace(
" ",
"", trim(strtolower($data[3]))) ==
"force=yes");
384 if (
$force || (!
$doc->getParamValue($data[1]))) {
385 $doc->setParam($data[1], $defv);
386 $tcr[$nline][
"msg"] =
"reset default parameter";
389 $tcr[$nline][
"msg"].= sprintf(_(
"add default value %s %s") , $data[1], $data[2]);
397 if ($fi->isAffected()) {
398 $fa = $fi->getAttribute($data[1]);
408 $oattri->docid =
$doc->id;
409 $tcr[$nline][
"msg"] = sprintf(_(
"copy attribute %s from %s") , $data[1], $data[3]);
411 if ($oattr->isAffected()) {
412 $err = $oattri->modify();
414 $oattri->id = strtolower($data[1]);
415 $err = $oattri->add();
417 $tcr[$nline][
"err"] =
$err;
420 if ((
$err ==
"") && (strtolower(get_class($fa)) ==
"fieldsetattribute")) {
423 foreach ($fi->attributes->attr as $k => $v) {
424 if (strtolower(get_class($v)) ==
"normalattribute") {
426 if (($v->fieldSet->id == $frameid) || ($v->fieldSet->fieldSet->id == $frameid)) {
427 $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"copy attribute %s from %s") , $v->id, $data[3]);
436 $oattri->docid =
$doc->id;
438 if ($oattr->isAffected()) {
439 $err = $oattri->modify();
441 $oattri->id = $v->id;
442 $err = $oattri->add();
444 $tcr[$nline][
"err"].=
$err;
459 $tcr[$nline][
"err"] =
"Error in line $nline: $num cols < 9";
464 $tcr[$nline][
"err"] =
"Error in line $nline: $num cols < 3";
467 foreach ($data as $kd => $vd) {
468 $data[$kd] = str_replace(
ALTSEPCHAR, $comma, $vd);
471 if (trim($data[1]) ==
'') {
472 $tcr[$nline][
"err"].= sprintf(_(
"attr key is empty"));
474 $modattr = ($data[0] ==
"MODATTR");
475 if ($data[0] ==
"MODATTR") $data[1] =
':' . $data[1];
476 $tcr[$nline][
"msg"].= sprintf(_(
"update %s attribute") , $data[1]);
483 if ($data[0] ==
"PARAM") $oattr->usefor =
'Q';
484 elseif ($data[0] ==
"OPTION") $oattr->usefor =
'O';
485 $oattr->docid =
$doc->id;
486 $oattr->id = trim(strtolower($data[1]));
488 $oattr->frameid = trim(strtolower($data[2]));
489 $oattr->labeltext = $data[3];
491 $oattr->title = ($data[4] ==
"Y") ?
"Y" :
"N";
493 $oattr->abstract = ($data[5] ==
"Y") ?
"Y" :
"N";
494 if ($modattr) $oattr->abstract = $data[5];
496 $oattr->type = trim($data[6]);
498 $oattr->ordered = $data[7];
499 $oattr->visibility = $data[8];
500 $oattr->needed = ($data[9] ==
"Y") ?
"Y" :
"N";
502 $oattr->title = $data[4];
503 $oattr->needed = $data[9];
505 $oattr->link = $data[10];
506 $oattr->phpfile = $data[11];
507 if (isset($data[13])) $oattr->elink = $data[13];
508 else $oattr->elink =
'';
509 if (isset($data[14])) $oattr->phpconstraint = $data[14];
510 else $oattr->phpconstraint =
'';
511 if (isset($data[15])) $oattr->options = $data[15];
512 else $oattr->options =
'';
513 if (((($data[11] !=
"") && ($data[11] !=
"-")) || (($data[6] !=
"enum") && ($data[6] !=
"enumlist"))) || ($oattr->phpfunc ==
"") || (strpos($oattr->options,
"system=yes") !==
false)) $oattr->phpfunc = $data[12];
514 if ($oattr->isAffected())
$err = $oattr->Modify();
515 else $err = $oattr->Add();
517 $tcr[$nline][
"err"].=
$err;
522 if (is_numeric($data[1])) $orfromid = $data[1];
525 $tcolorder[$orfromid] =
getOrder($data);
526 $tcr[$nline][
"msg"] = sprintf(_(
"new column order %s") , implode(
" - ", $tcolorder[$orfromid]));
531 if (is_numeric($data[1])) $orfromid = $data[1];
534 $tkeys[$orfromid] =
getOrder($data);
535 if (($tkeys[$orfromid][0] ==
"") || (count($tkeys[$orfromid]) == 0)) {
536 $tcr[$nline][
"err"] = sprintf(_(
"error in import keys : %s") , implode(
" - ", $tkeys[$orfromid]));
537 unset($tkeys[$orfromid]);
538 $tcr[$nline][
"action"] =
"ignored";
540 $tcr[$nline][
"msg"] = sprintf(_(
"new import keys : %s") , implode(
" - ", $tkeys[$orfromid]));
545 if (ctype_digit(trim($data[1]))) $pid = trim($data[1]);
548 if (!($pid > 0)) $tcr[$nline][
"err"] = sprintf(_(
"profil id unkonow %s") , $data[1]);
552 if ($pdoc->isAlive()) {
553 $tcr[$nline][
"msg"] = sprintf(_(
"change profil %s") , $data[1]);
554 $tcr[$nline][
"action"] =
"modprofil";
560 $pdoc->setProfil($fpid);
561 $err = $pdoc->modify(
false, array(
566 if ($pdoc->profid != $pid) {
567 $pdoc->setProfil($pid);
568 $pdoc->SetControl(
false);
569 $pdoc->disableEditControl();
570 $tcr[$nline][
"err"] = $pdoc->modify();
572 $optprof = strtoupper(trim($data[3]));
573 if ($optprof ==
"RESET") {
574 $pdoc->removeControl();
575 $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"reset profil %s") , $pid);
577 $tacls = array_slice($data, 2);
578 foreach ($tacls as $acl) {
579 if (preg_match(
"/([^=]+)=(.*)/", $acl, $reg)) {
580 $tuid = explode(
",", $reg[2]);
581 $aclname = trim($reg[1]);
582 if (substr($aclname, 0, 1) ==
"-") {
584 $aclname = substr($aclname, 1);
585 }
else $negative =
false;
587 if ($optprof ==
"DELETE") {
588 foreach ($tuid as
$uid) {
589 $perr.= $pdoc->delControl(trim($uid) , $aclname, $negative);
590 $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"delete %s for %s") , $aclname, $uid);
593 foreach ($tuid as
$uid) {
594 $perr.= $pdoc->addControl(trim($uid) , $aclname, $negative);
595 $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"add %s for %s") , $aclname, $uid);
598 $tcr[$nline][
"err"] = $perr;
602 $pdoc->recomputeProfiledDocument();
605 $tcr[$nline][
"err"] = sprintf(_(
"profil id unknow %s") , $data[1]);
612 if (ctype_digit(trim($data[1]))) $wid = trim($data[1]);
618 $idapp =
$action->parent->GetIdFromName($data[2]);
620 $tcr[$nline][
"err"] = sprintf(_(
"%s application not exists") , $data[2]);
622 $tcr[$nline][
"msg"] =
"user #$wid";
627 $q->AddQuery(
"id_application=$idapp");
628 $la =
$q->Query(0, 0,
"TABLE");
630 $tcr[$nline][
"err"] = sprintf(_(
"%s application has no aclss") , $data[2]);
633 foreach (
$la as $k => $v) {
634 $tacl[$v[
"name"]] = $v[
"id"];
639 $p->id_application = $idapp;
640 foreach ($data as $v) {
644 $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"try add acl %s") , $v);
645 $tcr[$nline][
"action"] =
"added";
648 if (substr($v, 0, 1) ==
'-') {
651 }
else $aclneg =
false;
652 if (isset($tacl[$v])) {
653 $p->id_acl = $tacl[$v];
654 if ($aclneg) $p->id_acl = - $p->id_acl;
655 $p->deletePermission($p->id_user, $p->id_application, $p->id_acl);
657 if (
$err) $tcr[$nline][
"err"].=
"\n$err";
659 if ($aclneg) $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"add negative acl %s") , $v);
660 else $tcr[$nline][
"msg"].=
"\n" . sprintf(_(
"add acl %s") , $v);
663 $tcr[$nline][
"err"].=
"\n" . sprintf(_(
"unknow acl %s") , $v);
672 if (is_numeric($data[1])) $fid = $data[1];
674 $aid = (trim($data[2]));
682 if (substr($data[2], 0, 2) ==
"::") $oa->ldapname = $data[2];
683 else $oa->ldapname = strtolower(trim($data[2]));
685 $oa->ldapclass = trim($data[4]);
687 $oa->ldapmap = $data[3];
689 $oa->ldapname = $aid;
691 if ($oa->isAffected()) {
693 $tcr[$nline][
"msg"] = sprintf(_(
"LDAP Attribute modified to %s %s") , $oa->ldapname, $oa->ldapmap);
694 $tcr[$nline][
"action"] =
"updated";
698 $tcr[$nline][
"msg"] = sprintf(_(
"LDAP Attribute added to %s %s") , $oa->ldapname, $oa->ldapmap);
699 $tcr[$nline][
"action"] =
"added";
701 $tcr[$nline][
"err"].=
$err;
732 ) , $prevalues = array() , $torder = array())
744 "values" => array() ,
751 if (is_numeric($data[1])) $fromid = $data[1];
754 $tcr[
"action"] =
"ignored";
755 $tcr[
"err"] = sprintf(_(
"Not a family [%s]") , $data[1]);
762 $docc->fromid = $fromid;
763 $tcr[
"familyid"] = $docc->fromid;
764 $tcr[
"familyname"] = $docc->getTitle($docc->fromid);
766 $docc->id = $data[2];
767 $docc->initid = $data[2];
768 } elseif (trim($data[2]) !=
"") {
769 if (!is_numeric(trim($data[2]))) {
770 $docc->name = trim($data[2]);
779 $doc = new_doc($docc->dbaccess, $docc->id,
true);
780 if (!
$doc->isAffected())
$doc = $docc;
785 if ((intval(
$doc->id) == 0) || (!
$doc->isAffected())) {
787 $tcr[
"action"] =
"added";
789 if (
$doc->fromid != $fromid) {
791 $tcr[
"action"] =
"ignored";
792 $tcr[
"id"] =
$doc->id;
793 $tcr[
"err"] = _(
'not same family');
796 if (
$doc->doctype ==
'Z') {
798 $tcr[
"msg"].= _(
"restore document") .
"\n";
801 if (
$doc->locked == - 1) {
803 $tcr[
"action"] =
"ignored";
804 $tcr[
"id"] =
$doc->id;
805 $tcr[
"err"] = _(
'fixed document');
809 $tcr[
"action"] =
"updated";
810 $tcr[
"id"] =
$doc->id;
811 $msg.=
$err . sprintf(_(
"update id [%d] ") ,
$doc->id);
815 global $nline, $gerr;
816 $tcr[
"action"] =
"ignored";
817 $gerr =
"\nline $nline:" .
$err;
822 if (count($torder) == 0) {
824 $torder = array_keys(
$lattr);
829 foreach ($torder as $attrid) {
830 if (isset(
$lattr[$attrid])) {
832 if (isset($data[$iattr]) && ($data[$iattr] !=
"")) {
833 $dv = str_replace(array(
840 if (!
isUTF8($dv)) $dv = utf8_encode($dv);
841 if (($attr->type ==
"file") || ($attr->type ==
"image")) {
843 $tcr[
"foldername"] =
$ldir;
844 $tcr[
"filename"] = $dv;
847 if ($attr->inArray()) {
848 $tabsfiles =
$doc->_val2array($dv);
850 foreach ($tabsfiles as $fi) {
853 } elseif (preg_match(
'/^http:/', $fi, $reg)) {
856 $absfile =
"$ldir/$fi";
859 $tcr[
"err"].=
"$err: $fi\n";
867 $doc->setValue($attr->id, $tvfids);
871 $doc->setValue($attr->id, $dv);
872 $tcr[
"values"][$attr->getLabel() ] = $dv;
873 } elseif (preg_match(
'/^http:/', $dv, $reg)) {
877 $absfile =
"$ldir/$dv";
882 $doc->setValue($attr->id, $vfid);
888 if ($dv ==
$doc->getValue($attr->id)) $tcr[
"values"][$attr->getLabel() ] = (
"/no change/");
889 else $tcr[
"values"][$attr->getLabel() ] = dv;
892 $doc->setValue($attr->id, $dv);
893 if (
$doc->getOldValue($attr->id) !==
false) $tcr[
"values"][$attr->getLabel() ] = $dv;
894 else $tcr[
"values"][$attr->getLabel() ] = (
"/no change/");
902 if ((
$doc->id > 0) || ($policy !=
"update")) {
909 $tcr[
"action"] =
"ignored";
914 if ((
$doc->id ==
"") && (
$doc->name ==
"")) {
917 $tcr[
"action"] =
"added"; #
N_(
"added")
920 if (
$doc->id ==
"") {
922 foreach ($prevalues as $k => $v) {
923 $doc->setValue($k, $v);
927 $tcr[
"action"] =
"ignored";
928 $tcr[
"err"] = sprintf(_(
"pre-import:%s") ,
$err);
935 $tcr[
"id"] =
$doc->id;
936 $msg.=
$err . sprintf(_(
"add %s id [%d] ") ,
$doc->title,
$doc->id);
937 $tcr[
"msg"] = sprintf(_(
"add %s id [%d] ") ,
$doc->title,
$doc->id);
939 $tcr[
"action"] =
"ignored";
942 $doc->RefreshTitle();
943 $tcr[
"msg"] = sprintf(_(
"%s to be add") ,
$doc->title);
948 $doc->RefreshTitle();
949 $lsdoc =
$doc->GetDocWithSameTitle($tkey[0], $tkey[1]);
951 if (count($lsdoc) == 0) {
952 $tcr[
"action"] =
"added";
954 if (
$doc->id ==
"") {
956 foreach ($prevalues as $k => $v) {
957 if (
$doc->getValue($k) ==
"")
$doc->setValue($k, $v);
961 $tcr[
"action"] =
"ignored";
962 $tcr[
"err"] = sprintf(_(
"pre-import:%s") ,
$err);
969 $tcr[
"id"] =
$doc->id;
970 $tcr[
"action"] =
"added";
971 $tcr[
"msg"] = sprintf(_(
"add id [%d] ") ,
$doc->id);
973 $tcr[
"action"] =
"ignored";
976 $tcr[
"msg"] = sprintf(_(
"%s to be add") ,
$doc->title);
978 } elseif (count($lsdoc) == 1) {
980 $tcr[
"action"] =
"updated"; #
N_(
"updated")
982 $err = $lsdoc[0]->preImport();
984 $tcr[
"action"] =
"ignored";
985 $tcr[
"err"] = sprintf(_(
"pre-import:%s") ,
$err);
989 $lsdoc[0]->transfertValuesFrom(
$doc);
991 $tcr[
"id"] =
$doc->id;
993 if (($data[2] !=
"") && (!is_numeric(trim($data[2]))) && (
$doc->name ==
"")) {
994 $doc->name = $data[2];
996 $tcr[
"msg"] = sprintf(_(
"update %s [%d] ") ,
$doc->title,
$doc->id);
998 $tcr[
"msg"] = sprintf(_(
"to be update %s [%d] ") ,
$doc->title,
$doc->id);
1002 $tcr[
"action"] =
"ignored"; #
N_(
"ignored")
1003 $tcr[
"err"] = sprintf(_(
"too many similar document %s <B>ignored</B> ") ,
$doc->title);
1004 $msg.=
$err . $tcr[
"err"];
1011 $doc->RefreshTitle();
1012 $lsdoc =
$doc->GetDocWithSameTitle($tkey[0], $tkey[1]);
1013 if (count($lsdoc) == 0) {
1014 $tcr[
"action"] =
"added";
1016 if (
$doc->id ==
"") {
1018 foreach ($prevalues as $k => $v) {
1019 if (
$doc->getValue($k) ==
"")
$doc->setValue($k, $v);
1023 $tcr[
"id"] =
$doc->id;
1024 $msg.=
$err . sprintf(_(
"add id [%d] ") ,
$doc->id);
1026 $tcr[
"msg"] = sprintf(_(
"%s to be add") ,
$doc->title);
1030 $tcr[
"action"] =
"ignored";
1031 $tcr[
"err"] = sprintf(_(
"similar document %s found. keep similar") ,
$doc->title);
1032 $msg.=
$err . $tcr[
"err"];
1040 if (!
$doc->isAffected()) {
1041 $tcr[
"action"] =
"added";
1044 foreach ($prevalues as $k => $v) {
1045 if (
$doc->getValue($k) ==
"")
$doc->setValue($k, $v);
1049 $tcr[
"action"] =
"ignored";
1050 $tcr[
"err"] = sprintf(_(
"pre-import:%s") ,
$err);
1055 $tcr[
"id"] =
$doc->id;
1056 $msg.=
$err . sprintf(_(
"add %s id [%d] ") ,
$doc->title,
$doc->id);
1057 $tcr[
"msg"] = sprintf(_(
"add %s id [%d] ") ,
$doc->title,
$doc->id);
1059 $doc->RefreshTitle();
1060 $tcr[
"id"] =
$doc->id;
1061 $tcr[
"msg"] = sprintf(_(
"%s to be add") ,
$doc->title);
1066 $tcr[
"title"] =
$doc->title;
1068 if (
$doc->isAffected()) {
1069 $tcr[
"specmsg"] =
$doc->Refresh();
1074 $doc->AddComment(sprintf(_(
"updated by import")));
1075 $msg.=
$doc->postImport();
1083 if ((
$err ==
"") && ($data[3] !=
"-")) {
1085 if (is_numeric($data[3])) $ndirid = $data[3];
1090 if (
$dir->isAffected()) {
1091 $tcr[
"folderid"] =
$dir->id;
1092 $tcr[
"foldername"] = dirname(
$ldir) .
"/" .
$dir->title;
1094 if (
$dir->isAlive() && method_exists(
$dir,
"AddFile")) {
1095 $tcr[
"err"].=
$dir->AddFile(
$doc->id);
1098 $tcr[
"msg"].=
$err .
" " . sprintf(_(
"and add in %s folder ") ,
$dir->title);
1100 }
else if ($ndirid == 0) {
1104 if (
$dir->isAlive() && method_exists(
$dir,
"AddFile")) {
1105 $tcr[
"folderid"] =
$dir->id;
1106 $tcr[
"foldername"] = dirname(
$ldir) .
"/" .
$dir->title;
1108 if (
$dir->isAlive() && method_exists(
$dir,
"AddFile")) {
1109 $tcr[
"err"].=
$dir->AddFile(
$doc->id);
1112 $tcr[
"msg"].=
$err .
" " . sprintf(_(
"and add in %s folder ") ,
$dir->title);
1125 $tmsg = $action->lay->GetBlockData(
"MSG");
1129 $action->lay->SetBlockData(
"MSG", $tmsg);
1137 return array_map(
"trim", array_slice($orderdata, 4));
1142 global $importedFiles;
1146 if (isset($importedFiles[
$path])) {
1147 $vid = $importedFiles[
$path];
1151 $absfile2 = str_replace(
'"',
'\\"', $path);
1153 $mime = trim(shell_exec(sprintf(
"file -ib %s", escapeshellarg($absfile2))));
1156 $err =
$vf->Store($path,
false, $vid);
1163 $base = basename($path);
1164 $importedFiles[
$path] =
"$mime|$vid|$base";
1165 $vid =
"$mime|$vid|$base";
1173 if (preg_match(
'/\.ods$/',
$filename))
return true;
1174 $sys = trim(shell_exec(sprintf(
"file -bi %s", escapeshellarg(
$filename))));
1175 if ($sys ==
"application/x-zip")
return true;
1176 if ($sys ==
"application/vnd.oasis.opendocument.spreadsheet")
return true;
1191 if (
$err ===
false)
return false;