From d0111dc24059d952b602b934edde4e62f741c66a Mon Sep 17 00:00:00 2001 From: ldestailleur Date: Sat, 31 May 2025 13:33:31 +0200 Subject: [PATCH] Debug v22 --- htdocs/core/lib/files.lib.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 46721f1ab89..2f0b3033a04 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -259,7 +259,7 @@ function dol_dir_list($utf8_path, $types = "all", $recursive = 0, $filter = "", * Scan a directory and return a list of files/directories. * Content for string is UTF8 and dir separator is "/". * - * @param string $path Starting path from which to search. Example: 'produit/MYPROD' or 'produit/%' + * @param string $path Starting path from which to search. Example: 'produit/MYPROD' or 'produit/%'. Must not end with "/". * @param string $filter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function * @param string[]|null $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview.*\.png)$','^\.')) * @param string $sortcriteria Sort criteria ("","fullname","name","date","size") @@ -374,11 +374,11 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir, $object = $object = new stdClass(); } - $filearrayindatabase = dol_dir_list_in_database(preg_replace('/[\\/]$/', '', $relativedir), '', null, 'name', SORT_ASC, 0, '', $object); + $filearrayindatabase = dol_dir_list_in_database(rtrim($relativedir, "/\\"), '', null, 'name', SORT_ASC, 0, '', $object); - // TODO Remove this when PRODUCT_USE_OLD_PATH_FOR_PHOTO will be removed global $modulepart; if ($modulepart == 'produit' && getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { + // TODO Remove this when PRODUCT_USE_OLD_PATH_FOR_PHOTO will be removed global $object; if (!empty($object->id)) { if (isModEnabled("product")) { @@ -388,15 +388,14 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir, $object = } $relativedirold = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $upload_dirold); - $relativedirold = preg_replace('/^[\\/]/', '', $relativedirold); + $relativedirold = ltrim($relativedirold, "/\\"); $filearrayindatabase = array_merge($filearrayindatabase, dol_dir_list_in_database($relativedirold, '', null, 'name', SORT_ASC)); } } elseif ($modulepart == 'ticket') { foreach ($filearray as $key => $val) { $rel_dir = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $filearray[$key]['path']); - $rel_dir = preg_replace('/[\\/]$/', '', $rel_dir); - $rel_dir = preg_replace('/^[\\/]/', '', $rel_dir); + $rel_dir = trim($rel_dir, "/\\"); if ($rel_dir != $relativedir) { $filearrayindatabase = array_merge($filearrayindatabase, dol_dir_list_in_database($rel_dir, '', null, 'name', SORT_ASC)); }