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

📄 courseselectform.class.php

📁 完美的在线教育系统
💻 PHP
字号:
<?php// $Id: CourseSelectForm.class.php 15429 2008-05-26 20:34:37Z yannoo $/*============================================================================== 	Dokeos - elearning and course management software		Copyright (c) 2004-2008 Dokeos SPRL	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, rue du Corbeau, 108, B-1030 Brussels, Belgium	Mail: info@dokeos.com============================================================================== */require_once ('Course.class.php');/** * Class to show a form to select resources * @author Bart Mollet <bart.mollet@hogent.be> * @package dokeos.backup */class CourseSelectForm{	/**	 * Display the form	 * @param array $hidden_fiels Hidden fields to add to the form.	 */	function display_form($course, $hidden_fields = null)	{		$resource_titles[RESOURCE_EVENT] = get_lang('Events');		$resource_titles[RESOURCE_ANNOUNCEMENT] = get_lang('Announcements');		$resource_titles[RESOURCE_DOCUMENT] = get_lang('Documents');		$resource_titles[RESOURCE_LINK] = get_lang('Links');		$resource_titles[RESOURCE_COURSEDESCRIPTION] = get_lang('CourseDescription');		$resource_titles[RESOURCE_FORUM] = get_lang('Forums');		$resource_titles[RESOURCE_QUIZ] = get_lang('Tests');		$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) {				el = document.getElementById('div_'+item);				if (el.style.display=='none'){					el.style.display='';					document.getElementById('img_'+item).src='../img/1.gif';				}				else{					el.style.display='none';					document.getElementById('img_'+item).src='../img/0.gif';				}			}			function setCheckbox(type,value) { 				d = document.course_select_form; 				for (i = 0; i < d.elements.length; i++) {   					if (d.elements[i].type == "checkbox") {						var name = d.elements[i].attributes.getNamedItem('name').nodeValue; 						if( name.indexOf(type) > 0 || type == 'all' ){						     d.elements[i].checked = value;						}   					} 				}			}			function checkLearnPath(message){				d = document.course_select_form; 				for (i = 0; i < d.elements.length; i++) { 					if (d.elements[i].type == "checkbox") {						var name = d.elements[i].attributes.getNamedItem('name').nodeValue; 						if( name.indexOf('learnpath') > 0){ 							if(d.elements[i].checked == true){	 							setCheckbox('document',true);	 							alert(message);	 							break; 							} 						} 					}	 				}			}		</script>				<?php		echo '<p>';		echo get_lang('SelectResources');		echo '</p>';				echo '<script language="javascript" src="'.api_get_path(WEB_CODE_PATH).'inc/lib/javascript/upload.js" type="text/javascript"></script>';		echo '<script type="text/javascript">var myUpload = new upload(1000);</script>';				echo '<form method="post" id="upload_form" name="course_select_form" onsubmit="myUpload.start(\'dynamic_div\',\''.api_get_path(WEB_CODE_PATH).'img/progress_bar.gif\',\''.get_lang('PleaseStandBy').'\',\'upload_form\')">';				echo '<input type="hidden" name="action" value="course_select_form"/>';		echo '<input type="hidden" name="course" value="'.base64_encode(serialize($course)).'"/>';		foreach ($course->resources as $type => $resources)		{			if (count($resources) > 0)			{				switch ($type)				{					case RESOURCE_LINKCATEGORY :					case RESOURCE_FORUMCATEGORY :					case RESOURCE_FORUMPOST :					case RESOURCE_FORUMTOPIC :					case RESOURCE_QUIZQUESTION:					case RESOURCE_SURVEYQUESTION:					case RESOURCE_SURVEYINVITATION:					case RESOURCE_SCORM:						break;					default :						echo ' <img id="img_'.$type.'" src="../img/1.gif" onclick="javascript:exp('."'$type'".');" >';						echo ' <b  onclick="javascript:exp('."'$type'".');" >'.$resource_titles[$type].'</b><br />';						echo '<div id="div_'.$type.'">';						echo '<blockquote>';						echo "[<a href=\"#\" onclick=\"javascript:setCheckbox('$type',true);\" >".get_lang('All')."</a> - <a href=\"#\" onclick=\"javascript:setCheckbox('$type',false);\" >".get_lang('None')."</a>]";						echo '<br />';						foreach ($resources as $id => $resource)						{							echo '<input type="checkbox" name="resource['.$type.']['.$id.']" id="resource['.$type.']['.$id.']"/>';							echo ' <label for="resource['.$type.']['.$id.']">';							$resource->show();							echo '</label>';							echo '<br />';							echo "\n";						}						echo '</blockquote>';						echo '</div>';						echo '<script language="javascript">exp('."'$type'".')</script>';				}			}		}		if (is_array($hidden_fields))		{			foreach ($hidden_fields as $key => $value)			{				echo "\n";				echo '<input type="hidden" name="'.$key.'" value="'.$value.'"/>';			}		}		echo '<br /><input type="submit" value="'.get_lang('Ok').'" onclick="checkLearnPath(\''.addslashes(get_lang('DocumentsWillBeAddedToo')).'\')"/>';				CourseSelectForm :: display_hidden_quiz_questions($course);		CourseSelectForm :: display_hidden_scorm_directories($course);		echo '</form>';		echo '<div id="dynamic_div" style="display:block;margin-left:40%;margin-top:10px;height:50px;"></div>';	}			function display_hidden_quiz_questions($course)	{			foreach ($course->resources as $type => $resources)		{			if (count($resources) > 0)			{				switch ($type)				{					case RESOURCE_QUIZQUESTION:						foreach ($resources as $id => $resource)						{							echo '<input type="hidden" name="resource['.RESOURCE_QUIZQUESTION.']['.$id.'] id="resource['.RESOURCE_QUIZQUESTION.']['.$id.']" value="On" />';						}						break;				}			}		}	}	function display_hidden_scorm_directories($course)	{		foreach ($course->resources as $type => $resources)		{			if(count($resources) > 0)			{				switch($type)				{					case RESOURCE_SCORM:						foreach ($resources as $id=>$resource)						{							echo '<input type="hidden" name="resource['.RESOURCE_SCORM.']['.$id.'] id="resource['.RESOURCE_SCORM.']['.$id.']" value="On" />';						}						break;				}			}		}	}			/**	 * Get the posted course	 * @return course The course-object with all resources selected by the user	 * in the form given by display_form(...)	 */	function get_posted_course()	{		$course = unserialize(base64_decode($_POST['course']));		foreach ($course->resources as $type => $resources)		{			switch ($type)			{				case RESOURCE_SURVEYQUESTION:					foreach($resources as $id => $obj)					{					    if(!in_array($obj->survey_id,array_keys($_POST['resource'][RESOURCE_SURVEY])))						{							unset ($course->resources[$type][$id]);					    }					}					break;				case RESOURCE_LINKCATEGORY :				case RESOURCE_FORUMCATEGORY :				case RESOURCE_FORUMPOST :				case RESOURCE_FORUMTOPIC :				case RESOURCE_QUIZQUESTION :				case RESOURCE_DOCUMENT:					// Mark folders to import which are not selected by the user to import,					// but in which a document was selected.					$documents = $_POST['resource'][RESOURCE_DOCUMENT];					foreach($resources as $id => $obj)					{						if( $obj->file_type == 'folder' && ! isset($_POST['resource'][RESOURCE_DOCUMENT][$id]) && is_array($documents))						{							foreach($documents as $id_to_check => $post_value)							{								$obj_to_check = $resources[$id_to_check];								$shared_path_part = substr($obj_to_check->path,0,strlen($obj->path));								if($id_to_check != $id && $obj->path == $shared_path_part)								{									$_POST['resource'][RESOURCE_DOCUMENT][$id] = 1;										break;								}								}							}					}				default :					foreach ($resources as $id => $obj)					{						$resource_is_used_elsewhere = $course->is_linked_resource($obj);						// check if document is in a quiz (audio/video)						if( $type == RESOURCE_DOCUMENT && $course->has_resources(RESOURCE_QUIZ))						{							foreach($course->resources[RESOURCE_QUIZ] as $qid => $quiz)							{								if($quiz->media == $id)								{									$resource_is_used_elsewhere = true;									}								}						}						if (!isset ($_POST['resource'][$type][$id]) && !$resource_is_used_elsewhere)						{							unset ($course->resources[$type][$id]);						}					}			}		}		return $course;	}}?>

⌨️ 快捷键说明

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