[svn r11785] Added backup of surveys

skala
Yannick Warnier 19 years ago
parent 5e7ffb574a
commit 409735502b
  1. 56
      main/coursecopy/classes/CourseBuilder.class.php
  2. 27
      main/coursecopy/classes/CourseRecycler.class.php
  3. 99
      main/coursecopy/classes/CourseRestorer.class.php
  4. 5
      main/coursecopy/classes/CourseSelectForm.class.php

@ -1,4 +1,4 @@
<?php // $Id: CourseBuilder.class.php 11379 2007-03-04 14:38:54Z yannoo $
<?php // $Id: CourseBuilder.class.php 11785 2007-03-29 15:09:23Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -37,6 +37,8 @@ require_once ('ForumCategory.class.php');
require_once ('Quiz.class.php');
require_once ('QuizQuestion.class.php');
require_once ('Learnpath.class.php');
require_once ('Survey.class.php');
require_once ('SurveyQuestion.class.php');
/**
* Class which can build a course-object from a Dokeos-course.
* @author Bart Mollet <bart.mollet@hogent.be>
@ -81,6 +83,7 @@ class CourseBuilder
$this->build_course_descriptions();
$this->build_quizzes();
$this->build_learnpaths();
$this->build_surveys();
$table = Database :: get_course_table(TABLE_LINKED_RESOURCES);
foreach ($this->course->resources as $type => $resources)
{
@ -283,6 +286,57 @@ class CourseBuilder
$this->course->add_resource($question);
}
}
/**
* Build the Surveys
*/
function build_surveys()
{
$table_survey = Database :: get_course_table(TABLE_SURVEY);
$table_question = Database :: get_course_table(TABLE_SURVEY_QUESTION);
$sql = 'SELECT * FROM '.$table_survey;
$db_result = api_sql_query($sql, __FILE__, __LINE__);
while ($obj = Database::fetch_object($db_result))
{
$survey = new Survey($obj->survey_id, $obj->code,$obj->title,
$obj->subtitle, $obj->author, $obj->lang,
$obj->avail_from, $obj->avail_till, $obj->is_shared,
$obj->template, $obj->intro, $obj->surveythanks,
$obj->creation_date, $obj->invited, $obj->answered,
$obj->invite_mail, $obj->reminder_mail);
$sql = 'SELECT * FROM '.$table_question.' WHERE survey_id = '.$obj->survey_id;
$db_result2 = api_sql_query($sql, __FILE__, __LINE__);
while ($obj2 = Database::fetch_object($db_result2))
{
$survey->add_question($obj2->question_id);
}
$this->course->add_resource($survey);
}
$this->build_survey_questions();
}
/**
* Build the Survey Questions
*/
function build_survey_questions()
{
$table_que = Database :: get_course_table(TABLE_SURVEY_QUESTION);
$table_opt = Database :: get_course_table(TABLE_SURVEY_QUESTION_OPTION);
$sql = 'SELECT * FROM '.$table_que;
$db_result = api_sql_query($sql, __FILE__, __LINE__);
while ($obj = Database::fetch_object($db_result))
{
$question = new SurveyQuestion($obj->question_id, $obj->survey_id,
$obj->survey_question, $obj->survey_question_comment,
$obj->type, $obj->display, $obj->sort,
$obj->shared_question_id, $obj->max_value);
$sql = 'SELECT * FROM '.$table_opt.' WHERE question_id = '.$obj->id;
$db_result2 = api_sql_query($sql, __FILE__, __LINE__);
while ($obj2 = Database::fetch_object($db_result2))
{
$question->add_answer($obj2->option_text, $obj2->sort);
}
$this->course->add_resource($question);
}
}
/**
* Build the announcements
*/

@ -1,5 +1,5 @@
<?php
// $Id: CourseRecycler.class.php 11357 2007-03-02 23:52:24Z yannoo $
// $Id: CourseRecycler.class.php 11785 2007-03-29 15:09:23Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -200,6 +200,31 @@ class CourseRecycler
api_sql_query($sql,__FILE__,__LINE__);
}
}
/**
* Recycle surveys - removes everything
*/
function recycle_quizzes()
{
if ($this->course->has_resources(RESOURCE_SURVEY))
{
$table_survey = Database :: get_course_table(TABLE_SURVEY);
$table_survey_q = Database :: get_course_table(TABLE_SURVEY_QUESTION);
$table_survey_q_o = Database :: get_course_table(TABLE_SURVEY_QUESTION_OPTION);
$table_survey_a = Database :: get_course_Table(TABLE_SURVEY_ANSWER);
$table_survey_i = Database :: get_course_table(TABLE_SURVEY_INVITATION);
$ids = implode(',', (array_keys($this->course->resources[RESOURCE_SURVEY])));
$sql = "DELETE FROM ".$table_survey_i." ";
api_sql_query($sql,__FILE__,__LINE__);
$sql = "DELETE FROM ".$table_survey_a." WHERE survey_id IN(".$ids.")";
api_sql_query($sql,__FILE__,__LINE__);
$sql = "DELETE FROM ".$table_survey_q_o." WHERE survey_id IN(".$ids.")";
api_sql_query($sql,__FILE__,__LINE__);
$sql = "DELETE FROM ".$table_survey_q." WHERE survey_id IN(".$ids.")";
api_sql_query($sql,__FILE__,__LINE__);
$sql = "DELETE FROM ".$table_survey." WHERE survey_id IN(".$ids.")";
api_sql_query($sql,__FILE__,__LINE__);
}
}
/**
* Recycle learnpaths
*/

@ -1,7 +1,7 @@
<?php
// $Id: CourseRestorer.class.php 11381 2007-03-04 18:43:55Z yannoo $
// $Id: CourseRestorer.class.php 11785 2007-03-29 15:09:23Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -36,6 +36,8 @@ require_once ('ForumTopic.class.php');
require_once ('ForumPost.class.php');
require_once ('CourseDescription.class.php');
require_once ('Learnpath.class.php');
require_once ('Survey.class.php');
require_once ('SurveyQuestion.class.php');
require_once ('mkdirr.php');
require_once ('rmdirr.php');
define('FILE_SKIP', 1);
@ -103,6 +105,7 @@ class CourseRestorer
//$this->restore_forums();
$this->restore_quizzes(); // after restore_documents! (for correct import of sound/video)
$this->restore_learnpaths();
$this->restore_surveys();
// Restore the item properties
$table = Database :: get_course_table(TABLE_ITEM_PROPERTY, $this->course->destination_db);
foreach ($this->course->resources as $type => $resources)
@ -621,6 +624,100 @@ class CourseRestorer
return $new_id;
}
/**
* Restore Quiz
*/
function restore_surveys()
{
if ($this->course->has_resources(RESOURCE_QUIZ))
{
$table_sur = Database :: get_course_table(TABLE_SURVEY, $this->course->destination_db);
$table_que = Database :: get_course_table(TABLE_SURVEY_QUESTION, $this->course->destination_db);
$table_ans = Database :: get_course_table(TABLE_SURVEY_QUESTION_OPTION, $this->course->destination_db);
$resources = $this->course->resources;
foreach ($resources[RESOURCE_SURVEY] as $id => $survey)
{
$doc = '';
$sql = "INSERT INTO ".$table_sur." " .
"SET code = '".Database::escape_string($quiz->code)."', " .
"title = '".Database::escape_string($quiz->title)."', " .
"subtitle = '".Database::escape_string($quiz->subtitle)."', " .
"author = '".Database::escape_string($quiz->author)."', " .
"lang = '".Database::escape_string($quiz->lang)."', " .
"avail_from = '".Database::escape_string($quiz->avail_from)."', " .
"avail_till = '".Database::escape_string($quiz->avail_till)."', " .
"is_shared = '".Database::escape_string($quiz->is_shared)."', " .
"template = '".Database::escape_string($quiz->template)."', " .
"intro = '".Database::escape_string($quiz->intro)."', " .
"surveythanks = '".Database::escape_string($quiz->surveythanks)."', " .
"creation_date = '".Database::escape_string($quiz->creation_date)."', " .
"invited = '".Database::escape_string($quiz->invited)."', " .
"answered = '".Database::escape_string($quiz->answered)."', " .
"invite_mail = '".Database::escape_string($quiz->invite_mail)."', " .
"reminder_mail = '".Database::escape_string($quiz->reminder_mail)."'";
api_sql_query($sql, __FILE__, __LINE__);
$new_id = Database::get_last_insert_id();
$this->course->resources[RESOURCE_SURVEY][$id]->destination_id = $new_id;
foreach ($survey->question_ids as $index => $question_id)
{
$qid = $this->restore_survey_question($question_id);
$sql = "UPDATE ".$table_que." " .
"SET survey_id = ".$new_id." WHERE " .
"question_id = ".$qid."";
api_sql_query($sql, __FILE__, __LINE__);
$sql = "UPDATE ".$table_ans." ".
"SET survey_id = ".$new_id." WHERE " .
"question_id = ".$qid."";
api_sql_query($sql, __FILE__, __LINE__);
}
}
}
}
/**
* Restore survey-questions
*/
function restore_survey_question($id)
{
$resources = $this->course->resources;
$question = $resources[RESOURCE_SURVEYQUESTION][$id];
$new_id=0;
if(is_object($question))
{
if ($question->is_restored())
{
return $question->destination_id;
}
$table_que = Database :: get_course_table(TABLE_SURVEY_QUESTION, $this->course->destination_db);
$table_ans = Database :: get_course_table(TABLE_SURVEY_QUESTION_OPTION, $this->course->destination_db);
$sql = "INSERT INTO ".$table_que." " .
"SET survey_id = '".addslashes($question->survey_id)."', " .
"survey_question = '".addslashes($question->survey_question)."', " .
"survey_question_comment = '".addslashes($question->survey_question_comment)."', " .
"type = '".addslashes($question->type)."', " .
"display = '".addslashes($question->display)."', " .
"sort = '".addslashes($question->sort)."', " .
"shared_question_id = '".addslashes($question->shared_question_id)."', " .
"max_value = '".addslashes($question->max_value)."' ";
api_sql_query($sql, __FILE__, __LINE__);
$new_id = Database::get_last_insert_id();
foreach ($question->answers as $index => $answer)
{
$sql = "INSERT INTO ".$table_ans." " .
"SET " .
"question_id = '".addslashes($new_id)."', " .
"option_text = '".addslashes($answer->option_text)."', " .
"sort = '".addslashes($answer->sort)."', " .
"survey_id = '".addslashes($question->survey_id)."'";
api_sql_query($sql, __FILE__, __LINE__);
}
$this->course->resources[RESOURCE_SURVEYQUESTION][$id]->destination_id = $new_id;
}
return $new_id;
}
/**
* Restore learnpaths
*/

@ -1,5 +1,5 @@
<?php
// $Id: CourseSelectForm.class.php 11389 2007-03-05 10:46:21Z elixir_julian $
// $Id: CourseSelectForm.class.php 11785 2007-03-29 15:09:23Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -47,6 +47,7 @@ class CourseSelectForm
$resource_titles[RESOURCE_LEARNPATH] = get_lang('Learnpaths');
$resource_titles[RESOURCE_SCORM] = 'SCORM';
$resource_titles[RESOURCE_TOOL_INTRO] = get_lang('ToolIntro');
$resource_titles[RESOURCE_SURVEY] = get_lang('Survey');
?>
<script language="JavaScript" type="text/javascript">
function exp(item) {
@ -96,6 +97,7 @@ class CourseSelectForm
case RESOURCE_FORUMPOST :
case RESOURCE_FORUMTOPIC :
case RESOURCE_QUIZQUESTION:
case RESOURCE_SURVEYQUESTION:
break;
default :
echo ' <img id="img_'.$type.'" src="../img/1.gif" onclick="javascript:exp('."'$type'".');" >';
@ -148,6 +150,7 @@ class CourseSelectForm
case RESOURCE_FORUMPOST :
case RESOURCE_FORUMTOPIC :
case RESOURCE_QUIZQUESTION :
case RESOURCE_SURVEYQUESTION
break;
case RESOURCE_DOCUMENT:
// Mark folders to import which are not selected by the user to import,

Loading…
Cancel
Save