Bug #5208 - Training bacup/restore tool: Cleaning code.

skala
Ivan Tcholakov 17 years ago
parent 9fd9d928b8
commit b53ea6cce1
  1. 4
      main/coursecopy/classes/Announcement.class.php
  2. 8
      main/coursecopy/classes/Course.class.php
  3. 17
      main/coursecopy/classes/CourseArchiver.class.php
  4. 38
      main/coursecopy/classes/CourseBuilder.class.php
  5. 4
      main/coursecopy/classes/CourseDescription.class.php
  6. 6
      main/coursecopy/classes/CourseRecycler.class.php
  7. 36
      main/coursecopy/classes/CourseRestorer.class.php
  8. 4
      main/coursecopy/classes/CourseSelectForm.class.php
  9. 5
      main/coursecopy/classes/Document.class.php
  10. 39
      main/coursecopy/classes/DummyCourseCreator.class.php
  11. 4
      main/coursecopy/classes/Event.class.php
  12. 4
      main/coursecopy/classes/Forum.class.php
  13. 4
      main/coursecopy/classes/ForumCategory.class.php
  14. 4
      main/coursecopy/classes/ForumPost.class.php
  15. 4
      main/coursecopy/classes/ForumTopic.class.php
  16. 4
      main/coursecopy/classes/Glossary.class.php
  17. 4
      main/coursecopy/classes/Link.class.php
  18. 4
      main/coursecopy/classes/LinkCategory.class.php
  19. 4
      main/coursecopy/classes/Quiz.class.php
  20. 4
      main/coursecopy/classes/QuizQuestion.class.php
  21. 3
      main/coursecopy/classes/ScormDocument.class.php
  22. 4
      main/coursecopy/classes/Survey.class.php
  23. 4
      main/coursecopy/classes/SurveyInvitation.class.php
  24. 4
      main/coursecopy/classes/SurveyQuestion.class.php
  25. 4
      main/coursecopy/classes/ToolIntro.class.php
  26. 39
      main/coursecopy/classes/mkdirr.php
  27. 52
      main/coursecopy/classes/rmdirr.php

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An announcement * An announcement
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,9 +22,11 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('LinkCategory.class.php');
require_once ('Announcement.class.php'); require_once 'LinkCategory.class.php';
require_once ('Event.class.php'); require_once 'Announcement.class.php';
require_once 'Event.class.php';
/** /**
* A course-object to use in Export/Import/Backup/Copy * A course-object to use in Export/Import/Backup/Copy
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -23,10 +23,11 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('Course.class.php');
require_once ('mkdirr.php'); require_once 'Course.class.php';
require_once ('rmdirr.php'); require_once api_get_path(LIBRARY_PATH).'rmdirr.lib.php';
require_once (api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php'); require_once api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php';
/** /**
* Some functions to write a course-object to a zip-file and to read a course- * Some functions to write a course-object to a zip-file and to read a course-
* object from such a zip-file. * object from such a zip-file.
@ -99,12 +100,12 @@ class CourseArchiver
foreach ($course->resources[RESOURCE_DOCUMENT] as $id => $document) { foreach ($course->resources[RESOURCE_DOCUMENT] as $id => $document) {
if ($document->file_type == DOCUMENT) { if ($document->file_type == DOCUMENT) {
$doc_dir = $backup_dir.$document->path; $doc_dir = $backup_dir.$document->path;
mkdirr(dirname($doc_dir), 0755); @mkdir(dirname($doc_dir), 0755, true);
if (file_exists($course->path.$document->path)) { if (file_exists($course->path.$document->path)) {
copy($course->path.$document->path, $doc_dir); copy($course->path.$document->path, $doc_dir);
} }
} else { } else {
mkdirr($backup_dir.$document->path, 0755); @mkdir($backup_dir.$document->path, 0755, true);
} }
} }
} }
@ -116,7 +117,7 @@ class CourseArchiver
{ {
$doc_dir=dirname($backup_dir.$document->path); $doc_dir=dirname($backup_dir.$document->path);
mkdirr($doc_dir,0755); @mkdir($doc_dir, 0755, true);
copyDirTo($course->path.$document->path, $doc_dir, false); copyDirTo($course->path.$document->path, $doc_dir, false);
} }
@ -185,7 +186,7 @@ class CourseArchiver
// Create a temp directory // Create a temp directory
$tmp_dir_name = 'CourseArchiver_'.uniqid(''); $tmp_dir_name = 'CourseArchiver_'.uniqid('');
$unzip_dir = api_get_path(SYS_ARCHIVE_PATH).''.$tmp_dir_name; $unzip_dir = api_get_path(SYS_ARCHIVE_PATH).''.$tmp_dir_name;
mkdirr($unzip_dir,0755); @mkdir($unzip_dir, 0755, true);
@copy(api_get_path(SYS_ARCHIVE_PATH).''.$filename,$unzip_dir.'/backup.zip'); @copy(api_get_path(SYS_ARCHIVE_PATH).''.$filename,$unzip_dir.'/backup.zip');
// unzip the archive // unzip the archive
$zip = new PclZip($unzip_dir.'/backup.zip'); $zip = new PclZip($unzip_dir.'/backup.zip');

@ -1,23 +1,25 @@
<?php <?php
/* For licensing terms, see /dokeos_license.txt */ /* For licensing terms, see /dokeos_license.txt */
require_once ('Course.class.php');
require_once ('Event.class.php'); require_once 'Course.class.php';
require_once ('Link.class.php'); require_once 'Event.class.php';
require_once ('ToolIntro.class.php'); require_once 'Link.class.php';
require_once ('Document.class.php'); require_once 'ToolIntro.class.php';
require_once ('ScormDocument.class.php'); require_once 'Document.class.php';
require_once ('LinkCategory.class.php'); require_once 'ScormDocument.class.php';
require_once ('CourseDescription.class.php'); require_once 'LinkCategory.class.php';
require_once ('ForumPost.class.php'); require_once 'CourseDescription.class.php';
require_once ('ForumTopic.class.php'); require_once 'ForumPost.class.php';
require_once ('Forum.class.php'); require_once 'ForumTopic.class.php';
require_once ('ForumCategory.class.php'); require_once 'Forum.class.php';
require_once ('Quiz.class.php'); require_once 'ForumCategory.class.php';
require_once ('QuizQuestion.class.php'); require_once 'Quiz.class.php';
require_once ('Learnpath.class.php'); require_once 'QuizQuestion.class.php';
require_once ('Survey.class.php'); require_once 'Learnpath.class.php';
require_once ('SurveyQuestion.class.php'); require_once 'Survey.class.php';
require_once ('Glossary.class.php'); require_once 'SurveyQuestion.class.php';
require_once 'Glossary.class.php';
/** /**
* Class which can build a course-object from a Dokeos-course. * Class which can build a course-object from a Dokeos-course.
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A course description * A course description
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -23,8 +23,10 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('Course.class.php');
require_once ('rmdirr.php'); require_once 'Course.class.php';
require_once api_get_path(LIBRARY_PATH).'rmdirr.lib.php';
/** /**
* Class to delete items from a Dokeos-course * Class to delete items from a Dokeos-course
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,23 +22,23 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('Course.class.php');
require_once ('Event.class.php'); require_once 'Course.class.php';
require_once ('Link.class.php'); require_once 'Event.class.php';
require_once ('ToolIntro.class.php'); require_once 'Link.class.php';
require_once ('LinkCategory.class.php'); require_once 'ToolIntro.class.php';
require_once ('ForumCategory.class.php'); require_once 'LinkCategory.class.php';
require_once ('Forum.class.php'); require_once 'ForumCategory.class.php';
require_once ('ForumTopic.class.php'); require_once 'Forum.class.php';
require_once ('ForumPost.class.php'); require_once 'ForumTopic.class.php';
require_once ('CourseDescription.class.php'); require_once 'ForumPost.class.php';
require_once ('Learnpath.class.php'); require_once 'CourseDescription.class.php';
require_once ('Survey.class.php'); require_once 'Learnpath.class.php';
require_once ('SurveyQuestion.class.php'); require_once 'Survey.class.php';
require_once ('mkdirr.php'); require_once 'SurveyQuestion.class.php';
require_once ('rmdirr.php'); require_once 'Glossary.class.php';
require_once ('Glossary.class.php'); require_once api_get_path(LIBRARY_PATH).'rmdirr.lib.php';
include_once(api_get_path(LIBRARY_PATH) . 'fileUpload.lib.php'); require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
define('FILE_SKIP', 1); define('FILE_SKIP', 1);
define('FILE_RENAME', 2); define('FILE_RENAME', 2);
@ -328,7 +328,7 @@ class CourseRestorer
$perm = api_get_setting('permissions_for_new_directories'); $perm = api_get_setting('permissions_for_new_directories');
$perm = octdec(!empty($perm)?$perm:'0770'); $perm = octdec(!empty($perm)?$perm:'0770');
mkdirr(dirname($path.$document->path),$perm); @mkdir(dirname($path.$document->path), $perm, true);
if (file_exists($path.$document->path)) if (file_exists($path.$document->path))
{ {

@ -23,7 +23,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('Course.class.php');
require_once 'Course.class.php';
/** /**
* Class to show a form to select resources * Class to show a form to select resources
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,9 +22,12 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
define('DOCUMENT','file'); define('DOCUMENT','file');
define('FOLDER','folder'); define('FOLDER','folder');
/** /**
* An document * An document
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -23,20 +23,21 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once ('Course.class.php');
require_once ('Document.class.php'); require_once 'Course.class.php';
require_once ('Event.class.php'); require_once 'Document.class.php';
require_once ('Link.class.php'); require_once 'Event.class.php';
require_once ('LinkCategory.class.php'); require_once 'Link.class.php';
require_once ('ForumCategory.class.php'); require_once 'LinkCategory.class.php';
require_once ('Forum.class.php'); require_once 'ForumCategory.class.php';
require_once ('ForumTopic.class.php'); require_once 'Forum.class.php';
require_once ('ForumPost.class.php'); require_once 'ForumTopic.class.php';
require_once ('CourseDescription.class.php'); require_once 'ForumPost.class.php';
require_once ('Learnpath.class.php'); require_once 'CourseDescription.class.php';
require_once ('CourseRestorer.class.php'); require_once 'Learnpath.class.php';
require_once ('mkdirr.php'); require_once 'CourseRestorer.class.php';
require_once ('rmdirr.php'); require_once api_get_path(LIBRARY_PATH).'rmdirr.lib.php';
class DummyCourseCreator class DummyCourseCreator
{ {
/** /**
@ -65,7 +66,7 @@ class DummyCourseCreator
$course = Database::get_course_info($course_code); $course = Database::get_course_info($course_code);
$this->course = new Course(); $this->course = new Course();
$tmp_path = api_get_path(SYS_COURSE_PATH).$course['directory'].'/document/tmp_'.uniqid(''); $tmp_path = api_get_path(SYS_COURSE_PATH).$course['directory'].'/document/tmp_'.uniqid('');
mkdirr($tmp_path); @mkdir($tmp_path, 0755, true);
$this->course->backup_path = $tmp_path; $this->course->backup_path = $tmp_path;
$this->create_dummy_links(); $this->create_dummy_links();
$this->create_dummy_events(); $this->create_dummy_events();
@ -108,7 +109,7 @@ class DummyCourseCreator
$dir_to_make = $course_doc_path.$path; $dir_to_make = $course_doc_path.$path;
if (!is_dir($dir_to_make)) if (!is_dir($dir_to_make))
{ {
mkdirr(str_replace('/',DIRECTORY_SEPARATOR,$dir_to_make)); @mkdir($dir_to_make, 0755, true);
} }
$file = $course_doc_path.$path.$filename; $file = $course_doc_path.$path.$filename;
$fp = fopen($file, 'w'); $fp = fopen($file, 'w');
@ -215,17 +216,19 @@ class DummyCourseCreator
$last_forum_post = array (); $last_forum_post = array ();
$last_topic_post = array (); $last_topic_post = array ();
// create categorys // create categorys
$order = 1;
for ($i = 1; $i <= $number_of_categories; $i ++) for ($i = 1; $i <= $number_of_categories; $i ++)
{ {
$forumcat = new ForumCategory($i, $this->get_dummy_content('title')); $forumcat = new ForumCategory($i, $this->get_dummy_content('title'), $this->get_dummy_content('description'), $order, 0, 0);
$this->course->add_resource($forumcat); $this->course->add_resource($forumcat);
$order++;
} }
// create posts // create posts
for ($post_id = 1; $post_id <= $number_of_posts; $post_id ++) for ($post_id = 1; $post_id <= $number_of_posts; $post_id ++)
{ {
$topic_id = rand(1, $number_of_topics); $topic_id = rand(1, $number_of_topics);
$last_topic_post[$topic_id] = $post_id; $last_topic_post[$topic_id] = $post_id;
$post = new ForumPost($post_id, $this->get_dummy_content('title'), $this->get_dummy_content('text'), 0, '127.0.0.1', 'Dokeos', 'Administrator', 0, 0, $topic_id); $post = new ForumPost($post_id, $this->get_dummy_content('title'), $this->get_dummy_content('text'), date('Y-m-d H:i:s'), 1, 'Dokeos Administrator', 0, 0, $topic_id, 0, 1);
$this->course->add_resource($post); $this->course->add_resource($post);
} }
// create topics // create topics

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An event * An event
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A forum * A forum
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A forum-category * A forum-category
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A forum-post * A forum-post
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A forum-topic/thread * A forum-topic/thread
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* Add resource glossary * Add resource glossary
* @author Isaac flores <florespaz@bidsoftperu.com> * @author Isaac flores <florespaz@bidsoftperu.com>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A WWW-link from the Links-module in a Dokeos-course. * A WWW-link from the Links-module in a Dokeos-course.
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A LinkCategory * A LinkCategory
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An Quiz * An Quiz
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An QuizQuestion * An QuizQuestion
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -22,7 +22,8 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* ScormDocument class * ScormDocument class

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A survey * A survey
* @author Yannick Warnier <yannick.warnier@dokeos.com> * @author Yannick Warnier <yannick.warnier@dokeos.com>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An SurveyInvitation * An SurveyInvitation
* @author Yannick Warnier <yannick.warnier@dokeos.com> * @author Yannick Warnier <yannick.warnier@dokeos.com>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* An QuizQuestion * An QuizQuestion
* @author Yannick Warnier <yannick.warnier@dokeos.com> * @author Yannick Warnier <yannick.warnier@dokeos.com>

@ -22,7 +22,9 @@
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
require_once('Resource.class.php');
require_once 'Resource.class.php';
/** /**
* A WWW-link from the Links-module in a Dokeos-course. * A WWW-link from the Links-module in a Dokeos-course.
* @author Bart Mollet <bart.mollet@hogent.be> * @author Bart Mollet <bart.mollet@hogent.be>

@ -1,39 +0,0 @@
<?php // $Id: mkdirr.php 15180 2008-04-29 22:40:16Z yannoo $
/**
* Create a directory structure recursively
*
* @author Aidan Lister <aidan@php.net>
* @version 1.0.0
* @param string $pathname The directory structure to create
* @return bool Returns TRUE on success, FALSE on failure
*/
function mkdirr($pathname, $mode = null) {
// Let us avoid that differency about directory separators in Windows paths.
$pathname = str_replace("\\", "/", $pathname);
// Check if directory already exists
if (is_dir($pathname) || empty($pathname)) {
return true;
}
// Ensure a file does not already exist with the same name
if (is_file($pathname)) {
trigger_error('mkdirr() File exists', E_USER_WARNING);
return false;
}
// Crawl up the directory tree
$next_pathname = substr($pathname, 0, strrpos($pathname, '/'));
if (mkdirr($next_pathname, $mode)) {
if (!file_exists($pathname)) {
$res = @mkdir($pathname, $mode);
if($res == false) {
error_log(__FILE__.' line '.__LINE__.': '.(ini_get('track_errors')!=false?$php_errormsg:'error not recorded because track_errors is off in your php.ini'),0);
}
return $res;
}
}
return false;
}

@ -1,52 +0,0 @@
<?php // $Id: rmdirr.php 15180 2008-04-29 22:40:16Z yannoo $
/**
* Delete a file, or a folder and its contents
*
* @author Aidan Lister <aidan@php.net>
* @version 1.0.2
* @param string $dirname Directory to delete
* @return bool Returns TRUE on success, FALSE on failure
*/
function rmdirr($dirname) {
// A sanity check
if (!file_exists($dirname)) {
return false;
}
// Simple delete for a file
if (is_file($dirname)) {
$res = @unlink($dirname);
if ($res === false) {
error_log(__FILE__.' line '.__LINE__.': '.(ini_get('track_errors')!=false?$php_errormsg:'error not recorded because track_errors is off in your php.ini'),0);
}
return $res;
}
// Loop through the folder
$dir = dir($dirname);
// A sanity check
$is_object_dir = is_object($dir);
if ($is_object_dir) {
while (false !== $entry = $dir->read()) {
// Skip pointers
if ($entry == '.' || $entry == '..') {
continue;
}
// Recurse
rmdirr("$dirname/$entry");
}
}
// Clean up
if ($is_object_dir) {
$dir->close();
}
$res = @rmdir($dirname);
if ($res === false) {
error_log(__FILE__.' line '.__LINE__.': '.(ini_get('track_errors')!=false?$php_errormsg:'error not recorded because track_errors is off in your php.ini'),0);
}
return $res;
}
Loading…
Cancel
Save