⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coursebuilder.class.php

📁 完美的在线教育系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php // $Id: CourseBuilder.class.php 13309 2007-09-27 07:29:58Z yannoo $/*==============================================================================	Dokeos - elearning and course management software	Copyright (c) 2004 Dokeos S.A.	Copyright (c) 2003 Ghent University (UGent)	Copyright (c) 2001 Universite catholique de Louvain (UCL)	Copyright (c) Bart Mollet (bart.mollet@hogent.be)	For a full list of contributors, see "credits.txt".	The full license can be read in "license.txt".	This program is free software; you can redistribute it and/or	modify it under the terms of the GNU General Public License	as published by the Free Software Foundation; either version 2	of the License, or (at your option) any later version.	See the GNU General Public License for more details.	Contact address: Dokeos, 44 rue des palais, B-1030 Brussels, Belgium	Mail: info@dokeos.com==============================================================================*/require_once ('Course.class.php');require_once ('Event.class.php');require_once ('Link.class.php');require_once ('ToolIntro.class.php');require_once ('Document.class.php');require_once ('ScormDocument.class.php');require_once ('LinkCategory.class.php');require_once ('CourseDescription.class.php');require_once ('ForumPost.class.php');require_once ('ForumTopic.class.php');require_once ('Forum.class.php');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> * @package dokeos.backup */class CourseBuilder{	/**	 * The course	 */	var $course;	/**	 * Create a new CourseBuilder	 */	function CourseBuilder()	{		global $_course;		$this->course = new Course();		$this->course->code = $_course['official_code'];		$this->course->path = api_get_path(SYS_COURSE_PATH).$_course['path'].'/';		$this->course->backup_path = api_get_path(SYS_COURSE_PATH).$_course['path'];	}	/**	 * Get the created course	 * @return course The course	 */	function get_course()	{		return $this->course;	}	/**	 * Build the course-object	 */	function build()	{		$this->build_events();		$this->build_announcements();		$this->build_links();		$this->build_tool_intro();		//$this->build_forums();		$this->build_documents();		$this->build_course_descriptions();		$this->build_quizzes();		$this->build_learnpaths();		$this->build_surveys();				//TABLE_LINKED_RESOURCES is the "resource" course table, which is deprecated, apparently		$table = Database :: get_course_table(TABLE_LINKED_RESOURCES);		foreach ($this->course->resources as $type => $resources)		{			foreach ($resources as $id => $resource)			{				$sql = "SELECT * FROM ".$table." WHERE source_type = '".$resource->get_type()."' AND source_id = '".$resource->get_id()."'";				$res = api_sql_query($sql, __FILE__, __LINE__);				while ($link = Database::fetch_object($res))				{					$this->course->resources[$type][$id]->add_linked_resource($link->resource_type, $link->resource_id);				}			}		}		$table = Database :: get_course_table(TABLE_ITEM_PROPERTY);		foreach ($this->course->resources as $type => $resources)		{			foreach ($resources as $id => $resource)			{				$tool = $resource->get_tool();				if ($tool != null)				{					$sql = "SELECT * FROM $table WHERE TOOL = '".$tool."' AND ref='".$resource->get_id()."'";					$res = api_sql_query($sql,__FILE__,__LINE__);					$all_properties = array ();					while ($item_property = Database::fetch_array($res))					{						$all_properties[] = $item_property;					}					$this->course->resources[$type][$id]->item_properties = $all_properties;				}			}		}		return $this->course;	}	/**	 * Build the documents	 */	function build_documents()	{		$table_doc = Database :: get_course_table(TABLE_DOCUMENT);		$table_prop = Database :: get_course_table(TABLE_ITEM_PROPERTY);		$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 ORDER BY path';		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$doc = new Document($obj->id, $obj->path, $obj->comment, $obj->title, $obj->filetype, $obj->size);			$this->course->add_resource($doc);		}	}	/**	 * Build the forums	 */	function build_forums()	{		$table = Database :: get_course_table(TABLE_FORUM);		$sql = 'SELECT * FROM '.$table;		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$forum = new Forum($obj->forum_id, $obj->forum_name, $obj->forum_description, $obj->cat_id, $obj->forum_last_post_id);			$this->course->add_resource($forum);			$this->build_forum_category($obj->cat_id);		}		$this->build_forum_topics();		$this->build_forum_posts();	}	/**	 * Build a forum-category	 */	function build_forum_category($id)	{		$table = Database :: get_course_table(TABLE_FORUM_CATEGORY);		$sql = 'SELECT * FROM '.$table.' WHERE cat_id = '.$id;		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$forum_category = new ForumCategory($obj->cat_id, $obj->cat_title);			$this->course->add_resource($forum_category);		}	}	/**	 * Build the forum-topics	 */	function build_forum_topics()	{		$table = Database :: get_course_table(TABLE_FORUM_POST);		$sql = 'SELECT * FROM '.$table;		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$forum_topic = new ForumTopic($obj->topic_id, $obj->topic_title, $obj->topic_time, $obj->prenom, $obj->nom, $obj->topic_notify, $obj->forum_id, $obj->topic_last_post_id);			$this->course->add_resource($forum_topic);		}	}	/**	 * Build the forum-posts	 */	function build_forum_posts()	{		$table_post = Database :: get_course_table(TABLE_FORUM_POST);		$table_posttext = Database :: get_course_table(TOOL_FORUM_POST_TEXT_TABLE);		$sql = 'SELECT * FROM '.$table_post.' p,'.$table_posttext.' pt WHERE p.post_id = pt.post_id';		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$forum_post = new ForumPost($obj->post_id, $obj->post_title, $obj->post_text, $obj->post_time, $obj->poster_ip, $obj->prenom, $obj->nom, $obj->topic_notify, $obj->parent_id, $obj->topic_id);			$this->course->add_resource($forum_post);		}	}	/**	 * Build the links	 */	function build_links()	{		$table = Database :: get_course_table(TABLE_LINK);		$table_prop = Database :: get_course_table(TABLE_ITEM_PROPERTY);		$sql = "SELECT * FROM $table l, $table_prop p WHERE p.ref=l.id AND p.tool = '".TOOL_LINK."' AND p.visibility != 2  ORDER BY l.display_order";		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$link = new Link($obj->id, $obj->title, $obj->url, $obj->description, $obj->category_id, $obj->on_homepage);			$this->course->add_resource($link);			$res = $this->build_link_category($obj->category_id);			if($res > 0)			{				$this->course->resources[RESOURCE_LINK][$obj->id]->add_linked_resource(RESOURCE_LINKCATEGORY, $obj->category_id);			}		}	}	/**	 * Build tool intro	 */	function build_tool_intro()	{		$table = Database :: get_course_table(TABLE_TOOL_INTRO);		$sql = 'SELECT * FROM '.$table;		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))		{			$tool_intro = new ToolIntro($obj->id, $obj->intro_text);			$this->course->add_resource($tool_intro);		}	}	/**	 * Build a link category	 */	function build_link_category($id)	{		$link_cat_table = Database :: get_course_table(TABLE_LINK_CATEGORY);		$sql = 'SELECT * FROM '.$link_cat_table.' WHERE id = '.$id;		$db_result = api_sql_query($sql, __FILE__, __LINE__);		while ($obj = Database::fetch_object($db_result))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -