Merge pull request #16253 from AlexisLaurier/13.0

contract - uses of multidir_output for file path
This commit is contained in:
Laurent Destailleur 2021-02-11 19:00:20 +01:00 committed by GitHub
commit 4a2cd0d509
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 19 additions and 19 deletions

View File

@ -883,8 +883,8 @@ if (empty($reshook))
$action = 'editref'; $action = 'editref';
} else { } else {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$old_filedir = $conf->contrat->dir_output.'/'.dol_sanitizeFileName($old_ref); $old_filedir = $conf->contrat->multidir_output[$object->entity].'/'.dol_sanitizeFileName($old_ref);
$new_filedir = $conf->contrat->dir_output.'/'.dol_sanitizeFileName($object->ref); $new_filedir = $conf->contrat->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
$files = dol_dir_list($old_filedir); $files = dol_dir_list($old_filedir);
if (!empty($files)) if (!empty($files))
@ -929,7 +929,7 @@ if (empty($reshook))
// Actions to build doc // Actions to build doc
$upload_dir = $conf->contrat->dir_output; $upload_dir = $conf->contrat->multidir_output[$object->entity];
$permissiontoadd = $user->rights->contrat->creer; $permissiontoadd = $user->rights->contrat->creer;
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
@ -2131,13 +2131,13 @@ if ($action == 'create')
* Documents generes * Documents generes
*/ */
$filename = dol_sanitizeFileName($object->ref); $filename = dol_sanitizeFileName($object->ref);
$filedir = $conf->contrat->dir_output."/".dol_sanitizeFileName($object->ref); $filedir = $conf->contrat->multidir_output[$object->entity]."/".dol_sanitizeFileName($object->ref);
$urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id;
$genallowed = $user->rights->contrat->lire; $genallowed = $user->rights->contrat->lire;
$delallowed = $user->rights->contrat->creer; $delallowed = $user->rights->contrat->creer;
print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang); print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang, '', $object);
// Show links to link elements // Show links to link elements
@ -2162,7 +2162,7 @@ if ($action == 'create')
// Presend form // Presend form
$modelmail = 'contract'; $modelmail = 'contract';
$defaulttopic = 'SendContractRef'; $defaulttopic = 'SendContractRef';
$diroutput = $conf->contrat->dir_output; $diroutput = $conf->contrat->multidir_output[$object->entity];
$trackid = 'con'.$object->id; $trackid = 'con'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';

View File

@ -1296,7 +1296,7 @@ class Contrat extends CommonObject
$ref = dol_sanitizeFileName($this->ref); $ref = dol_sanitizeFileName($this->ref);
if ($conf->contrat->dir_output) if ($conf->contrat->dir_output)
{ {
$dir = $conf->contrat->dir_output."/".$ref; $dir = $conf->contrat->multidir_output[$this->entity]."/".$ref;
if (file_exists($dir)) if (file_exists($dir))
{ {
$res = @dol_delete_dir_recursive($dir); $res = @dol_delete_dir_recursive($dir);

View File

@ -74,7 +74,7 @@ if ($object->id > 0)
$object->fetch_thirdparty(); $object->fetch_thirdparty();
} }
$upload_dir = $conf->contrat->dir_output.'/'.dol_sanitizeFileName($object->ref); $upload_dir = $conf->contrat->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
$modulepart = 'contract'; $modulepart = 'contract';
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context

View File

@ -201,7 +201,7 @@ $socstatic = new Societe($db);
$contracttmp = new Contrat($db); $contracttmp = new Contrat($db);
$sql = 'SELECT'; $sql = 'SELECT';
$sql .= " c.rowid, c.ref, c.datec as date_creation, c.tms as date_update, c.date_contrat, c.statut, c.ref_customer, c.ref_supplier, c.note_private, c.note_public,"; $sql .= " c.rowid, c.ref, c.datec as date_creation, c.tms as date_update, c.date_contrat, c.statut, c.ref_customer, c.ref_supplier, c.note_private, c.note_public, c.entity";
$sql .= ' s.rowid as socid, s.nom as name, s.name_alias, s.email, s.town, s.zip, s.fk_pays as country_id, s.client, s.code_client, s.status as company_status, s.logo as company_logo,'; $sql .= ' s.rowid as socid, s.nom as name, s.name_alias, s.email, s.town, s.zip, s.fk_pays as country_id, s.client, s.code_client, s.status as company_status, s.logo as company_logo,';
$sql .= " typent.code as typent_code,"; $sql .= " typent.code as typent_code,";
$sql .= " state.code_departement as state_code, state.nom as state_name,"; $sql .= " state.code_departement as state_code, state.nom as state_name,";
@ -256,7 +256,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
$parameters = array(); $parameters = array();
$reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
$sql .= $hookmanager->resPrint; $sql .= $hookmanager->resPrint;
$sql .= " GROUP BY c.rowid, c.ref, c.datec, c.tms, c.date_contrat, c.statut, c.ref_customer, c.ref_supplier, c.note_private, c.note_public,"; $sql .= " GROUP BY c.rowid, c.ref, c.datec, c.tms, c.date_contrat, c.statut, c.ref_customer, c.ref_supplier, c.note_private, c.note_public, c.entity,";
$sql .= ' s.rowid, s.nom, s.name_alias, s.email, s.town, s.zip, s.fk_pays, s.client, s.code_client, s.status, s.logo,'; $sql .= ' s.rowid, s.nom, s.name_alias, s.email, s.town, s.zip, s.fk_pays, s.client, s.code_client, s.status, s.logo,';
$sql .= " typent.code,"; $sql .= " typent.code,";
$sql .= " state.code_departement, state.nom"; $sql .= " state.code_departement, state.nom";
@ -640,7 +640,7 @@ while ($i < min($num, $limit))
} }
$filename = dol_sanitizeFileName($obj->ref); $filename = dol_sanitizeFileName($obj->ref);
$filedir = $conf->contrat->dir_output.'/'.dol_sanitizeFileName($obj->ref); $filedir = $conf->contrat->multidir_output[$obj->entity].'/'.dol_sanitizeFileName($obj->ref);
$urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid; $urlsource = $_SERVER['PHP_SELF'].'?id='.$obj->rowid;
print $formfile->getDocumentsLink($contracttmp->element, $filename, $filedir); print $formfile->getDocumentsLink($contracttmp->element, $filename, $filedir);
print '</td>'; print '</td>';

View File

@ -70,7 +70,7 @@ function contract_prepare_head(Contrat $object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
$upload_dir = $conf->contrat->dir_output."/".dol_sanitizeFileName($object->ref); $upload_dir = $conf->contrat->multidir_output[$object->entity]."/".dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'));
$nbLinks = Link::count($db, $object->element, $object->id); $nbLinks = Link::count($db, $object->element, $object->id);
$head[$h][0] = DOL_URL_ROOT.'/contrat/document.php?id='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/contrat/document.php?id='.$object->id;

View File

@ -2316,10 +2316,10 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
if ($fuser->rights->ficheinter->{$lire}) $accessallowed = 1; if ($fuser->rights->ficheinter->{$lire}) $accessallowed = 1;
$original_file = $conf->ficheinter->dir_output.'/'.$original_file; $original_file = $conf->ficheinter->dir_output.'/'.$original_file;
} // Wrapping pour les apercu conat } // Wrapping pour les apercu conat
elseif (($modulepart == 'apercucontract') && !empty($conf->contrat->dir_output)) elseif (($modulepart == 'apercucontract') && !empty($conf->contrat->multidir_output[$entity]))
{ {
if ($fuser->rights->contrat->{$lire}) $accessallowed = 1; if ($fuser->rights->contrat->{$lire}) $accessallowed = 1;
$original_file = $conf->contrat->dir_output.'/'.$original_file; $original_file = $conf->contrat->multidir_output[$entity].'/'.$original_file;
} // Wrapping pour les apercu supplier proposal } // Wrapping pour les apercu supplier proposal
elseif (($modulepart == 'apercusupplier_proposal' || $modulepart == 'apercusupplier_proposal') && !empty($conf->supplier_proposal->dir_output)) elseif (($modulepart == 'apercusupplier_proposal' || $modulepart == 'apercusupplier_proposal') && !empty($conf->supplier_proposal->dir_output))
{ {
@ -2709,13 +2709,13 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
} }
if (!empty($conf->stock->enabled)) $original_file = $conf->stock->multidir_output[$entity].'/movement/'.$original_file; if (!empty($conf->stock->enabled)) $original_file = $conf->stock->multidir_output[$entity].'/movement/'.$original_file;
} // Wrapping pour les contrats } // Wrapping pour les contrats
elseif ($modulepart == 'contract' && !empty($conf->contrat->dir_output)) elseif ($modulepart == 'contract' && !empty($conf->contrat->multidir_output[$entity]))
{ {
if ($fuser->rights->contrat->{$lire} || preg_match('/^specimen/i', $original_file)) if ($fuser->rights->contrat->{$lire} || preg_match('/^specimen/i', $original_file))
{ {
$accessallowed = 1; $accessallowed = 1;
} }
$original_file = $conf->contrat->dir_output.'/'.$original_file; $original_file = $conf->contrat->multidir_output[$entity].'/'.$original_file;
$sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."contrat WHERE ref='".$db->escape($refname)."' AND entity IN (".getEntity('contract').")"; $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."contrat WHERE ref='".$db->escape($refname)."' AND entity IN (".getEntity('contract').")";
} // Wrapping pour les dons } // Wrapping pour les dons
elseif ($modulepart == 'donation' && !empty($conf->don->dir_output)) elseif ($modulepart == 'donation' && !empty($conf->don->dir_output))

View File

@ -219,7 +219,7 @@ class doc_generic_contract_odt extends ModelePDFContract
// Load traductions files required by page // Load traductions files required by page
$outputlangs->loadLangs(array("main", "dict", "companies", "bills")); $outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
if ($conf->contrat->dir_output) if ($conf->contrat->multidir_output[$object->entity])
{ {
// If $object is id instead of object // If $object is id instead of object
if (!is_object($object)) if (!is_object($object))
@ -236,7 +236,7 @@ class doc_generic_contract_odt extends ModelePDFContract
$object->fetch_thirdparty(); $object->fetch_thirdparty();
$dir = $conf->contrat->dir_output; $dir = $conf->contrat->multidir_output[$object->entity];
$objectref = dol_sanitizeFileName($object->ref); $objectref = dol_sanitizeFileName($object->ref);
if (!preg_match('/specimen/i', $objectref)) $dir .= "/".$objectref; if (!preg_match('/specimen/i', $objectref)) $dir .= "/".$objectref;
$file = $dir."/".$objectref.".odt"; $file = $dir."/".$objectref.".odt";

View File

@ -195,7 +195,7 @@ class pdf_strato extends ModelePDFContract
$file = $dir."/SPECIMEN.pdf"; $file = $dir."/SPECIMEN.pdf";
} else { } else {
$objectref = dol_sanitizeFileName($object->ref); $objectref = dol_sanitizeFileName($object->ref);
$dir = $conf->contrat->dir_output."/".$objectref; $dir = $conf->contrat->multidir_output[$object->entity]."/".$objectref;
$file = $dir."/".$objectref.".pdf"; $file = $dir."/".$objectref.".pdf";
} }