Should fix bug when copying a hotpost question see #3838

skala
Julio Montoya 13 years ago
parent 0c53bcd6c7
commit 3fd9a8b3a1
  1. 61
      main/exercice/question.class.php

@ -441,7 +441,7 @@ abstract class Question
$o_img->send_image($picturePath.'/'.$this->picture, -1, 'jpg');
$document_id = add_document($this->course, '/images/'.$this->picture, 'file', filesize($picturePath.'/'.$this->picture),$this->picture);
if ($document_id) {
return api_item_property_update($this->course, TOOL_DOCUMENT, $document_id, 'DocumentAdded', api_get_user_id);
return api_item_property_update($this->course, TOOL_DOCUMENT, $document_id, 'DocumentAdded', api_get_user_id());
}
}
@ -544,20 +544,30 @@ abstract class Question
* @return - boolean - true if copied, otherwise false
*/
function exportPicture($questionId, $course_info) {
$course_id = $course_info['real_id'];
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
$destination_path = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document/images';
$source_path = api_get_path(SYS_COURSE_PATH).$this->course['path'].'/document/images';
$course_id = $course_info['real_id'];
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
$destination_path = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document/images';
$source_path = api_get_path(SYS_COURSE_PATH).$this->course['path'].'/document/images';
// if the question has got an ID and if the picture exists
if($this->id && !empty($this->picture)) {
if ($this->id && !empty($this->picture)) {
$picture=explode('.',$this->picture);
$Extension=$picture[sizeof($picture)-1];
$picture='quiz-'.$questionId.'.'.$Extension;
$sql="UPDATE $TBL_QUESTIONS SET picture='".Database::escape_string($picture)."' WHERE c_id = $course_id AND id='".intval($questionId)."'";
Database::query($sql);
return @copy($source_path.'/'.$this->picture, $destination_path.'/'.$picture)?true:false;
}
$extension = $picture[sizeof($picture)-1];
$picture = 'quiz-'.$questionId.'.'.$extension;
$result = @copy($source_path.'/'.$this->picture, $destination_path.'/'.$picture) ? true : false;
//If copy was correct then add to the database
if ($result) {
$sql = "UPDATE $TBL_QUESTIONS SET picture='".Database::escape_string($picture)."' WHERE c_id = $course_id AND id='".intval($questionId)."'";
Database::query($sql);
$document_id = add_document($course_info, '/images/'.$picture, 'file', filesize($destination_path.'/'.$picture), $picture);
if ($document_id) {
return api_item_property_update($course_info, TOOL_DOCUMENT, $document_id, 'DocumentAdded', api_get_user_id());
}
}
return $result;
}
return false;
}
@ -572,9 +582,8 @@ abstract class Question
*/
function setTmpPicture($Picture,$PictureName) {
global $picturePath;
$PictureName=explode('.',$PictureName);
$Extension=$PictureName[sizeof($PictureName)-1];
$PictureName = explode('.',$PictureName);
$Extension = $PictureName[sizeof($PictureName)-1];
// saves the picture into a temporary file
@move_uploaded_file($Picture,$picturePath.'/tmp.'.$Extension);
@ -606,24 +615,17 @@ abstract class Question
global $picturePath;
// if the question has got an ID and if the picture exists
if($this->id) {
if(file_exists($picturePath.'/tmp.jpg')) {
if ($this->id) {
if (file_exists($picturePath.'/tmp.jpg')) {
$Extension='jpg';
}
elseif(file_exists($picturePath.'/tmp.gif'))
{
} elseif(file_exists($picturePath.'/tmp.gif')) {
$Extension='gif';
}
elseif(file_exists($picturePath.'/tmp.png'))
{
} elseif(file_exists($picturePath.'/tmp.png')) {
$Extension='png';
}
$this->picture='quiz-'.$this->id.'.'.$Extension;
return @rename($picturePath.'/tmp.'.$Extension,$picturePath.'/'.$this->picture)?true:false;
}
return false;
}
@ -666,7 +668,7 @@ abstract class Question
Database::query($sql);
$this->saveCategory($category);
if (!empty($exerciseId)) {
api_item_property_update($this->course, TOOL_QUIZ, $id,'QuizQuestionUpdated',api_get_user_id);
api_item_property_update($this->course, TOOL_QUIZ, $id,'QuizQuestionUpdated',api_get_user_id());
}
if (api_get_setting('search_enabled')=='true') {
if ($exerciseId != 0) {
@ -721,7 +723,6 @@ abstract class Question
Database::query($sql);
}
if (api_get_setting('search_enabled')=='true') {
if ($exerciseId != 0) {
$this -> search_engine_edit($exerciseId, TRUE);
@ -735,7 +736,7 @@ abstract class Question
}
// if the question is created in an exercise
if($exerciseId) {
if ($exerciseId) {
/*
$sql = 'UPDATE '.Database::get_course_table(TABLE_LP_ITEM).'
SET max_score = '.intval($weighting).'
@ -1037,7 +1038,7 @@ abstract class Question
}
}
// Duplicates the picture
// Duplicates the picture of the hotspot
$this->exportPicture($new_question_id, $course_info);
return $new_question_id;
}

Loading…
Cancel
Save