[svn r16076] Really fix the character set encoding problem in learning path building. Left learning path as UTF-8 by default since fixing the bug didn't need a change there. UTF-8 is left by default as a "best practice" considering learning paths might be later exported as SCORM.

skala
Yannick Warnier 16 years ago
parent 1d6cfe8d9d
commit ae5a0741f8
  1. 139
      main/newscorm/learnpath.class.php

@ -561,8 +561,6 @@ class learnpath {
//if($this->debug>0){error_log('New LP - In learnpath::add_lp()',0);} //if($this->debug>0){error_log('New LP - In learnpath::add_lp()',0);}
//TODO //TODO
$tbl_lp = Database::get_course_table('lp'); $tbl_lp = Database::get_course_table('lp');
//get the global charset
global $charset;
//check course code exists //check course code exists
//check lp_name doesn't exist, otherwise append something //check lp_name doesn't exist, otherwise append something
$i = 0; $i = 0;
@ -610,7 +608,7 @@ class learnpath {
"default_encoding,display_order,content_maker," . "default_encoding,display_order,content_maker," .
"content_local,js_lib) " . "content_local,js_lib) " .
"VALUES ($type,'$name','$description','','embedded'," . "VALUES ($type,'$name','$description','','embedded'," .
"'$charset','$dsp','Dokeos'," . "'UTF-8','$dsp','Dokeos'," .
"'local','')"; "'local','')";
//if($this->debug>2){error_log('New LP - Inserting new lp '.$sql_insert,0);} //if($this->debug>2){error_log('New LP - Inserting new lp '.$sql_insert,0);}
$res_insert = api_sql_query($sql_insert, __FILE__, __LINE__); $res_insert = api_sql_query($sql_insert, __FILE__, __LINE__);
@ -3534,7 +3532,7 @@ class learnpath {
} }
/** /**
* Sets the image of a LP (local/remote) (and save) * Sets the image of an LP (and save)
* @param string Optional string giving the new image of this learnpath * @param string Optional string giving the new image of this learnpath
* @return bool returns true if theme name is not empty * @return bool returns true if theme name is not empty
*/ */
@ -3551,7 +3549,7 @@ class learnpath {
/** /**
* Sets the author of a LP (local/remote) (and save) * Sets the author of a LP (and save)
* @param string Optional string giving the new author of this learnpath * @param string Optional string giving the new author of this learnpath
* @return bool returns true if author's name is not empty * @return bool returns true if author's name is not empty
*/ */
@ -4362,9 +4360,10 @@ class learnpath {
} }
/** /**
* Enter description here... * Edit a document based on $_POST and $_GET parameters 'dir' and 'path'
* *
* @param array $_course * @param array $_course array
* @return void
*/ */
function edit_document($_course) function edit_document($_course)
{ {
@ -4689,12 +4688,12 @@ class learnpath {
} }
/** /**
* Enter description here... * Return HTML form to add/edit a quiz
* *
* @param unknown_type $action * @param string Action (add/edit)
* @param unknown_type $id * @param integer Item ID if already exists
* @param unknown_type $extra_info * @param mixed Extra information (quiz ID if integer)
* @return unknown * @return string HTML form
*/ */
function display_quiz_form($action = 'add', $id = 0, $extra_info = '') function display_quiz_form($action = 'add', $id = 0, $extra_info = '')
{ {
@ -5231,12 +5230,12 @@ class learnpath {
/** /**
* Enter description here... * Return the form to display the forum edit/add option
* *
* @param unknown_type $action * @param string Action (add/edit)
* @param unknown_type $id * @param integer ID of the lp_item if already exists
* @param unknown_type $extra_info * @param mixed Forum ID or title
* @return unknown * @return string HTML form
*/ */
function display_forum_form($action = 'add', $id = 0, $extra_info = '') function display_forum_form($action = 'add', $id = 0, $extra_info = '')
{ {
@ -5485,9 +5484,16 @@ class learnpath {
return $return; return $return;
} }
function display_thread_form($action = 'add', $id = 0, $extra_info = '') /**
{ * Return HTML form to add/edit forum threads
global $charset; * @param string Action (add/edit)
* @param integer Item ID if already exists in learning path
* @param mixed Extra information (thread ID if integer)
* @return string HTML form
*/
function display_thread_form($action = 'add', $id = 0, $extra_info = '')
{
global $charset;
echo ' echo '
<style> <style>
@ -5745,14 +5751,14 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
/** /**
* Enter description here... * Return the HTML form to display an item (generally a section/module item)
* *
* @param unknown_type $item_type * @param string Item type (module/dokeos_module)
* @param unknown_type $title * @param string Title (optional, only when creating)
* @param unknown_type $action * @param string Action ('add'/'edit')
* @param unknown_type $id * @param integer lp_item ID
* @param unknown_type $extra_info * @param mixed Extra info
* @return unknown * @return string HTML form
*/ */
function display_item_form($item_type, $title = '', $action = 'add', $id = 0, $extra_info = 'new') function display_item_form($item_type, $title = '', $action = 'add', $id = 0, $extra_info = 'new')
{ {
@ -5937,12 +5943,12 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
/** /**
* Enter description here... * Returns the form to update or create a document
* *
* @param unknown_type $action * @param string Action (add/edit)
* @param unknown_type $id * @param integer ID of the lp_item (if already exists)
* @param unknown_type $extra_info * @param mixed Integer if document ID, string if info ('new')
* @return unknown * @return string HTML form
*/ */
function display_document_form($action = 'add', $id = 0, $extra_info = 'new') function display_document_form($action = 'add', $id = 0, $extra_info = 'new')
{ {
@ -6174,7 +6180,7 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
foreach($arrHide as $key => $value) foreach($arrHide as $key => $value)
{ {
$position->addOption(mb_convert_encoding($value['value'],$charset,$this->encoding),$key,'style="padding-left:'.$value['padding'].'px;"'); $position->addOption($value['value'],$key,'style="padding-left:'.$value['padding'].'px;"');
} }
$position -> setSelected($s_selected_position); $position -> setSelected($s_selected_position);
if(is_array($arrLP)) if(is_array($arrLP))
@ -6299,11 +6305,12 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
/** /**
* Enter description here... * Return HTML form to add/edit a link item
* *
* @param unknown_type $action * @param string Action (add/edit)
* @param unknown_type $id * @param integer Item ID if exists
* @param unknown_type $extra_info * @param mixed Extra info
* @return string HTML form
*/ */
function display_link_form($action = 'add', $id = 0, $extra_info = '') function display_link_form($action = 'add', $id = 0, $extra_info = '')
{ {
@ -6565,12 +6572,12 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
/** /**
* Enter description here... * Return HTML form to add/edit a student publication (work)
* *
* @param unknown_type $action * @param string Action (add/edit)
* @param unknown_type $id * @param integer Item ID if already exists
* @param unknown_type $extra_info * @param mixed Extra info (work ID if integer)
* @return unknown * @return string HTML form
*/ */
function display_student_publication_form($action = 'add', $id = 0, $extra_info = '') function display_student_publication_form($action = 'add', $id = 0, $extra_info = '')
{ {
@ -6952,12 +6959,13 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
parent_item_id = 0 parent_item_id = 0
ORDER BY display_order ASC"; ORDER BY display_order ASC";
$res_zero = api_sql_query($sql_zero, __FILE__, __LINE__); $res_zero = api_sql_query($sql_zero, __FILE__, __LINE__);
global $charset;
$i = 0; $i = 0;
while($row_zero = Database::fetch_array($res_zero)) while($row_zero = Database::fetch_array($res_zero))
{ {
$return .= 'child_name[0][' . $i . '] = "'.get_lang("After").' \"' . $row_zero['title'] . '\"";' . "\n"; $return .= 'child_name[0][' . $i . '] = "'.get_lang("After").' \"' . mb_convert_encoding($row_zero['title'],$charset,$this->encoding) . '\"";' . "\n";
$return .= 'child_value[0][' . $i++ . '] = "' . $row_zero['id'] . '";' . "\n"; $return .= 'child_value[0][' . $i++ . '] = "' . $row_zero['id'] . '";' . "\n";
} }
@ -6986,7 +6994,7 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
while($row_parent = Database::fetch_array($res_parent)) while($row_parent = Database::fetch_array($res_parent))
{ {
$return .= 'child_name[' . $row['id'] . '][' . $i . '] = "'.get_lang("After").' \"' . $row_parent['title'] . '\"";' . "\n"; $return .= 'child_name[' . $row['id'] . '][' . $i . '] = "'.get_lang("After").' \"' . mb_convert_encoding($row_parent['title'],$charset,$this->encoding) . '\"";' . "\n";
$return .= 'child_value[' . $row['id'] . '][' . $i++ . '] = "' . $row_parent['id'] . '";' . "\n"; $return .= 'child_value[' . $row['id'] . '][' . $i++ . '] = "' . $row_parent['id'] . '";' . "\n";
} }
@ -6999,10 +7007,10 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
/** /**
* Enter description here... * Display the form to allow moving an item
* *
* @param unknown_type $item_id * @param integer Item ID
* @return unknown * @return string HTML form
*/ */
function display_move_item($item_id) function display_move_item($item_id)
{ {
@ -7134,10 +7142,10 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
/** /**
* Enter description here... * Return HTML form to allow prerequisites selection
* *
* @param unknown_type $item_id * @param integer Item ID
* @return unknown * @return string HTML form
*/ */
function display_item_prerequisites_form($item_id) function display_item_prerequisites_form($item_id)
{ {
@ -7307,7 +7315,7 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
} }
} }
$return .=$this->write_resources_tree('', $resources_sorted); $return .=$this->write_resources_tree($resources_sorted);
$return .='</div>'; $return .='</div>';
@ -7318,7 +7326,16 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
return $return; return $return;
} }
function write_resources_tree($return, $resources_sorted, $num=0){ /**
* Generate and return an HTML list of resources based on a given array.
*
* This list is used to show the course creator a list of available resources to choose from
* when creating a learning path.
* @param array Array of elements to add to the list
* @param integer Enables the tree display by shifting the new elements a certain distance to the right
* @return string The HTML list
*/
function write_resources_tree($resources_sorted, $num=0){
include_once(api_get_path(LIBRARY_PATH).'fileDisplay.lib.php'); include_once(api_get_path(LIBRARY_PATH).'fileDisplay.lib.php');
@ -7330,7 +7347,7 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
if(is_int($resource['id'])) if(is_int($resource['id']))
{ // it's a folder { // it's a folder
$return .= '<div><div style="margin-left:' . ($num * 15) . 'px;margin-right:5px;"><img style="cursor: pointer;" src="../img/nolines_plus.gif" align="absmiddle" id="img_'.$resource["id"].'" onclick="testResources(\''.$resource["id"].'\',\'img_'.$resource["id"].'\')"><img alt="" src="../img/lp_folder.gif" title="" align="absmiddle" />&nbsp;<span onclick="testResources(\''.$resource["id"].'\',\'img_'.$resource["id"].'\')" style="cursor: pointer;" >'.$key.'</span></div><div style="display: none;" id="'.$resource['id'].'">'; $return .= '<div><div style="margin-left:' . ($num * 15) . 'px;margin-right:5px;"><img style="cursor: pointer;" src="../img/nolines_plus.gif" align="absmiddle" id="img_'.$resource["id"].'" onclick="testResources(\''.$resource["id"].'\',\'img_'.$resource["id"].'\')"><img alt="" src="../img/lp_folder.gif" title="" align="absmiddle" />&nbsp;<span onclick="testResources(\''.$resource["id"].'\',\'img_'.$resource["id"].'\')" style="cursor: pointer;" >'.$key.'</span></div><div style="display: none;" id="'.$resource['id'].'">';
$return = $this->write_resources_tree($return, $resource['files'], $num+1); $return .= $this->write_resources_tree($resource['files'], $num+1);
$return .= "</div></div>\r\n"; $return .= "</div></div>\r\n";
} }
else else
@ -7478,6 +7495,11 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '')
return $return; return $return;
} }
/**
* Creates a list with all the forums in it
*
* @return string
*/
function get_forums() function get_forums()
{ {
include ('../forum/forumfunction.inc.php'); include ('../forum/forumfunction.inc.php');
@ -8412,7 +8434,8 @@ EOD;
} }
} }
/** /**
* * Delete the image relative to this learning path. No parameter. Only works on instanciated object.
* @return boolean The results of the unlink function, or false if there was no image to start with
*/ */
function delete_lp_image() function delete_lp_image()
{ {
@ -8431,7 +8454,9 @@ EOD;
} }
/** /**
* * Uploads a new image to the learning path image upload directory
* @param array The image array, coming from the $_FILES superglobal
* @return boolean True on success, false on error
*/ */
function upload_image($image_array) function upload_image($image_array)
{ {

Loading…
Cancel
Save