From 765f8b4e1be1112abdf13be62a5e82c8164a2bf3 Mon Sep 17 00:00:00 2001 From: Cristian Fasanando Date: Mon, 2 Feb 2009 17:25:28 +0100 Subject: [PATCH] =?UTF-8?q?[svn=20r18152]=20Logic=20changes=20-=20Fixed=20?= =?UTF-8?q?bug=20when=20you=20edit=20a=20folder=20with=20letter=20"=C3=B1"?= =?UTF-8?q?=20or=20a=20tilde=20-=20see=20FS#3565?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/work/work.lib.php | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/main/work/work.lib.php b/main/work/work.lib.php index 7e27d280a5..7e1dfc5cf8 100644 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -1,4 +1,4 @@ -, Ghent University - ability for course admins to specify wether uploaded documents are visible or invisible by default. * @author Roan Embrechts, code refactoring and virtual course support * @author Frederic Vauthier, directories management -* @version $Id: work.lib.php 18097 2009-01-30 23:07:49Z cvargas1 $ +* @version $Id: work.lib.php 18152 2009-02-02 16:25:28Z cfasanando $ */ /** * Displays action links (for admins, authorized groups members and authorized students) @@ -346,7 +346,7 @@ function display_student_publications_list($work_dir,$sub_course_dir,$currentCou $column_order[]=6; - $table_data = array(); + $table_data = array(); $dirs_list = get_subdirs_list($work_dir); $my_sub_dir = str_replace('work/','',$sub_course_dir); @@ -500,10 +500,11 @@ function display_student_publications_list($work_dir,$sub_course_dir,$currentCou $values = $form_folder -> exportValues(); - $values = $values['my_group']; - update_dir_name($mydir,$values['dir_name']); - $mydir = $my_sub_dir.$values['dir_name']; - $dir = $values['dir_name']; + $values = $values['my_group']; + $dir_name = replace_accents($values['dir_name']); + update_dir_name($mydir,$dir_name); + $mydir = $my_sub_dir.$dir_name; + $dir = $dir_name; $display_edit_form=false; } } @@ -688,6 +689,7 @@ function get_subdirs_list($basedir='',$recurse=0){ $dirs_list = array(); $dh = opendir($basedir); while($entry = readdir($dh)) { + $entry = replace_accents($entry); if(is_dir($basedir.$entry) && $entry!='..' && $entry!='.') { $dirs_list[] = $entry; if($recurse==1) { @@ -910,9 +912,6 @@ function update_work_url($id,$new_path) $row = Database::fetch_array($res); $filename = basename($row['url']); $new_url = $new_path.$filename; - - - $sql2 = "UPDATE $table SET url = '$new_url' WHERE id=$id"; $res2 = api_sql_query($sql2); return $res2; @@ -939,6 +938,8 @@ function update_dir_name($path, $new_name) $path_to_dir .= '/'; } + $new_name=replace_accents($new_name); + my_rename($base_work_dir.'/'.$path,$new_name); $table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); @@ -950,11 +951,8 @@ function update_dir_name($path, $new_name) while($work = Database :: fetch_array($rs)) { $new_dir=$work['url']; - $name_with_directory=substr($new_dir,$work_len,strlen($new_dir)); - $pre_directory=$path_to_dir.$new_name.replace_dangerous_char($name_with_directory); - $new_directory=replace_accents($pre_directory); - - $sql = 'UPDATE '.$table.' SET url="work/'.$new_directory.'" WHERE id= '.$work['id']; + $name_with_directory=substr($new_dir,$work_len,strlen($new_dir)); + $sql = 'UPDATE '.$table.' SET url="work/'.$path_to_dir.$new_name.$name_with_directory.'" WHERE id= '.$work['id']; api_sql_query($sql, __FILE__, __LINE__); } @@ -964,11 +962,8 @@ function update_dir_name($path, $new_name) $work_len=strlen('/'.$path); while($work = Database :: fetch_array($rs)) { $new_dir=$work['url']; - $name_with_directory=substr($new_dir,$work_len,strlen($new_dir)); - $pre_directory=$path_to_dir.$new_name.replace_dangerous_char($name_with_directory); - $new_directory=replace_accents($pre_directory); - - $sql = 'UPDATE '.$table.' SET url="/'.$new_directory.'" WHERE id= '.$work['id']; + $name_with_directory=substr($new_dir,$work_len,strlen($new_dir)); + $sql = 'UPDATE '.$table.' SET url="/'.$path_to_dir.$new_name.$name_with_directory.'" WHERE id= '.$work['id']; api_sql_query($sql, __FILE__, __LINE__); } }