Browse Source

[svn r21814] logic changes-improvements in course copy - (partial FS#4379)

Isaac Flores 15 years ago
parent
commit
6540bcb855
2 changed files with 20 additions and 11 deletions
  1. 3 4
      main/admin/course_list.php
  2. 17 7
      main/coursecopy/classes/CourseRestorer.class.php

+ 3 - 4
main/admin/course_list.php

@@ -1,4 +1,4 @@
-<?php // $Id: course_list.php 20441 2009-05-10 07:39:15Z ivantcholakov $
+<?php // $Id: course_list.php 21814 2009-07-06 16:37:11Z iflorespaz $
 /* For licensing terms, see /dokeos_license.txt */
 /**
  * This script shows a list of courses and allows searching for courses codes
@@ -72,7 +72,7 @@ function get_course_data($from, $number_of_items, $column, $direction)
 	$users_table = Database :: get_main_table(TABLE_MAIN_USER);
 	$course_users_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
 	
-	$sql = "SELECT code AS col0, visual_code AS col1, title AS col2, course_language AS col3, category_code AS col4, subscribe AS col5, unsubscribe AS col6, code AS col7, tutor_name as col8, code AS col9, visibility AS col10 FROM $course_table";
+	$sql = "SELECT code AS col0, visual_code AS col1, title AS col2, course_language AS col3, category_code AS col4, subscribe AS col5, unsubscribe AS col6, code AS col7, tutor_name as col8, code AS col9, visibility AS col10,directory as col11 FROM $course_table";
 	
 	global $_configuration;
     if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
@@ -109,9 +109,8 @@ function get_course_data($from, $number_of_items, $column, $direction)
 	while ($course = Database::fetch_row($res))
 	{
 		//place colour icons in front of courses
-
 		//$course[1] = get_course_visibility_icon($course[10]).'<a href="../course_home/course_home.php?cidReq='.$course[0].'">'.$course[1].'</a>'; // This is not the preferable way to go to the homepage.
-		$course[1] = get_course_visibility_icon($course[10]).'<a href="'.api_get_path(WEB_COURSE_PATH).$course[0].'/index.php">'.$course[1].'</a>';
+		$course[1] = get_course_visibility_icon($course[10]).'<a href="'.api_get_path(WEB_COURSE_PATH).$course[11].'/index.php">'.$course[1].'</a>';
 
 		$course[5] = $course[5] == SUBSCRIBE_ALLOWED ? get_lang('Yes') : get_lang('No');
 		$course[6] = $course[6] == UNSUBSCRIBE_ALLOWED ? get_lang('Yes') : get_lang('No');

+ 17 - 7
main/coursecopy/classes/CourseRestorer.class.php

@@ -1,4 +1,4 @@
-<?php // $Id: CourseRestorer.class.php 21776 2009-07-03 23:05:34Z iflorespaz $
+<?php // $Id: CourseRestorer.class.php 21814 2009-07-06 16:37:11Z iflorespaz $
 /*
 ==============================================================================
 	Dokeos - elearning and course management software
@@ -82,6 +82,7 @@ class CourseRestorer
 	 */
 	function restore($destination_course_code = '')
 	{
+		
 		if ($destination_course_code == '') {
 			$course_info = api_get_course_info();
 			$this->course->destination_db = $course_info['dbName'];
@@ -578,15 +579,19 @@ class CourseRestorer
 			$resources = $this->course->resources;
 			foreach ($resources[RESOURCE_COURSEDESCRIPTION] as $id => $cd)
 			{
-			
 				if (isset($_POST['destination_course'])) {
 					$course_destination=Security::remove_XSS($_POST['destination_course']);
+					$course_destination=api_get_course_info($course_destination);
+					$course_destination=$course_destination['path'];
 				} else {
 					$course_destination=$this->course->destination_path;
 				}
-				$search='../courses/'.api_get_course_id().'/document';
+				
+				$course_info=api_get_course_info(api_get_course_id());
+				$search='../courses/'.$course_info['path'].'/document';
 				$replace_search_by='../courses/'.$course_destination.'/document';
 				$description_content=str_replace($search,$replace_search_by,$cd->content);
+
 				$sql = "INSERT INTO ".$table." SET title = '".Database::escape_string($cd->title)."', content = '".Database::escape_string($description_content)."'";
 				api_sql_query($sql, __FILE__, __LINE__);
 				$this->course->resources[RESOURCE_COURSEDESCRIPTION][$id]->destination_id = Database::get_last_insert_id();
@@ -1107,9 +1112,10 @@ class CourseRestorer
 		'parent_id,qualificator_id,session_id FROM '.$my_tbl_db_origin.' WHERE filetype="folder" ';
 		//var_dump($query_sql_ini_sp);
 		$destination='../../courses/'.$this->course->destination_path.'/work/';
-		$origin='../../courses/'.api_get_course_id().'/work/';
+		$course_info=api_get_course_info(api_get_course_id());
+		$origin='../../courses/'.$course_info['path'].'/work/';
 
-		self::api_create_all_directory($origin,$destination,false);
+		self::allow_create_all_directory($origin,$destination,false);
 		
 		//query in item property
 		
@@ -1141,8 +1147,12 @@ class CourseRestorer
 	
 /**
  * copy all directory and sub directory
+ * @param string The path origin
+ * @param string The path destination
+ * @param boolean Option Overwrite
+ * @return void()
  */
-	function api_create_all_directory($source, $dest, $overwrite = false){		
+	function allow_create_all_directory($source, $dest, $overwrite = false){		
    		if(!is_dir($dest)) {
     		mkdir($dest);
     	}
@@ -1159,7 +1169,7 @@ class CourseRestorer
 	                } elseif(is_dir($path)) {
 	                    if (!is_dir($dest . '/' . $file))
 	                    mkdir($dest . '/' . $file);
-	                   self:: api_create_all_directory($path, $dest . '/' . $file, $overwrite);
+	                   self:: allow_create_all_directory($path, $dest . '/' . $file, $overwrite);
 	                }
 	            }
 	        }