Commit 99c608033770fa0a068710738ee61b06bce953c6

Authored by megan_w
1 parent 17890e60

KTS-3155

"Error when renaming folders that contain special characters"
Fixed. Mysql is case insensitive, added a check in the php before returning true.

Committed by: Megan Watson
Reviewed by: Conrad Vermeulen



git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@8270 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 10 additions and 2 deletions
lib/foldermanagement/Folder.inc
@@ -448,12 +448,20 @@ class Folder extends KTEntity { @@ -448,12 +448,20 @@ class Folder extends KTEntity {
448 * @return true if the folder exists, false otherwise and set $_SESSION["errorMessage"] 448 * @return true if the folder exists, false otherwise and set $_SESSION["errorMessage"]
449 */ 449 */
450 function folderExistsName($sName, $iParentID) { 450 function folderExistsName($sName, $iParentID) {
451 - $sQuery = "SELECT id FROM " . KTUtil::getTableName('folders') . " WHERE name = ? AND parent_id = ?";/*ok*/ 451 + $sQuery = "SELECT id, name FROM " . KTUtil::getTableName('folders') . " WHERE name = ? AND parent_id = ?";/*ok*/
452 $aParams = array($sName, $iParentID); 452 $aParams = array($sName, $iParentID);
453 $res = DBUtil::getResultArray(array($sQuery, $aParams)); 453 $res = DBUtil::getResultArray(array($sQuery, $aParams));
454 //var_dump($res); 454 //var_dump($res);
455 if (count($res) != 0) { 455 if (count($res) != 0) {
456 - return true; 456 +
  457 + // mysql is case-insensitive - check using php
  458 + foreach ($res as $folder){
  459 + $name = isset($folder['name']) ? $folder['name'] : '';
  460 + if($name == $sName){
  461 + return true;
  462 + }
  463 + }
  464 + return false;
457 } 465 }
458 return false; 466 return false;
459 } 467 }