diff --git a/apps/maarch_entreprise/indexing_searching/search_adv_result.php b/apps/maarch_entreprise/indexing_searching/search_adv_result.php index 1b949291ad175f08745c72914a7abd8fef32dd51..34febc2583cce5bd267ba08f83cd59cf3265657c 100755 --- a/apps/maarch_entreprise/indexing_searching/search_adv_result.php +++ b/apps/maarch_entreprise/indexing_searching/search_adv_result.php @@ -228,7 +228,7 @@ if (count($_REQUEST['meta']) > 0) { $arrayPDO = array_merge($arrayPDO, array(":contactType" => $_REQUEST['contact_type'])); } elseif ($tab_id_fields[$j] == 'project' && !empty($_REQUEST['project'])) { $json_txt .= " 'project' : ['".addslashes(trim($_REQUEST['project']))."'],"; - $project = $func->wash($_REQUEST['project'], "no", _MARKET, "no"); + $folder = $func->wash($_REQUEST['project'], "no", _MARKET, "no"); $where_request .= " res_id in ( "; @@ -237,26 +237,26 @@ from resources_folders left join folders on resources_folders.folder_id = folders.id where lower(translate(folders.label , 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ', 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) ilike - lower(translate(:label, 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ', + lower(translate(:label_folders, 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ', 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) and ( folders.id in ( select folders.id from folders left join users on folders.user_id = users.id - where users.user_id = :user_id + where users.user_id = :user_id_folders ) or folders.id in ( select entities_folders.folder_id from entities_folders left join entities on entities_folders.entity_id = entities.id left join users_entities on entities.entity_id = users_entities.entity_id - where users_entities.user_id = :user_id + where users_entities.user_id = :user_id_folders ) )"; $where_request .=" ) and "; - $arrayPDO = array_merge($arrayPDO, array(":label" => "%".$project."%", ":user_id" => $GLOBALS['userId'])); + $arrayPDO = array_merge($arrayPDO, array(":label_folders" => "%".$folder."%", ":user_id_folders" => $_SESSION['user']['UserId'])); } // GED NUM elseif ($tab_id_fields[$j] == 'numged' && !empty($_REQUEST['numged'])) { diff --git a/core/class/class_request.php b/core/class/class_request.php index c2cee26fd92b063b0523bdea809371ffdffcc3fe..5894c30fa3344da47ffb1942c784a58bea6d3bd2 100755 --- a/core/class/class_request.php +++ b/core/class/class_request.php @@ -120,34 +120,25 @@ class request extends dbquery //$where_string = " where ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." ) "; } else { - if (array_key_exists(':label', $parameters)) { - $whereFolders = "select res_id + $whereFolders = "select res_id from resources_folders - left join folders on resources_folders.folder_id = folders.id -where lower(translate(folders.label , 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ', - 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) ilike - lower(translate(:label, 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ', - 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) - and ( - folders.id in ( - select folders.id - from folders - left join users on folders.user_id = users.id - where users.user_id = :user_id - ) or folders.id in ( - select entities_folders.folder_id - from entities_folders - left join entities on entities_folders.entity_id = entities.id - left join users_entities on entities.entity_id = users_entities.entity_id - where users_entities.user_id = :user_id - ) + left join folders on resources_folders.folder_id = folders.id +where + folders.id in ( + select folders.id + from folders + left join users on folders.user_id = users.id + where users.user_id = :user_id_folders + ) or folders.id in ( + select entities_folders.folder_id + from entities_folders + left join entities on entities_folders.entity_id = entities.id + left join users_entities on entities.entity_id = users_entities.entity_id + where users_entities.user_id = :user_id_folders )"; - $where_string = ''.$where_string." and ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." or res_id in (".$whereFolders.")) "; - $parameters = array_merge($parameters, array(":label" => $parameters[':label'], ":user_id" => $parameters[':user_id'])); - } else { - $where_string = '' . $where_string . " and ( " . $_SESSION['user']['security'][$coll]['DOC']['where'] . " ) "; - } + $where_string = ''.$where_string." and ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." or res_id in (".$whereFolders.")) "; + $parameters = array_merge($parameters, array(":user_id_folders" => $_SESSION['user']['UserId'])); } break;