123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * @author Roan Embrechts - initial admin interface
- * @package chamilo.admin
- * @deprecated
- */
- /**
- * INIT SECTION
- */
- // name of the language file that needs to be included
- $language_file = 'admin';
- $extra_lang_file = "create_course";
- // global settings initialisation
- // also provides access to main api (inc/lib/main_api.lib.php)
- include("../inc/global.inc.php");
- $this_section=SECTION_PLATFORM_ADMIN;
- api_protect_admin_script();
- if (isset($extra_lang_file)) include(api_get_path(INCLUDE_PATH)."../lang/english/".$extra_lang_file.".inc.php");
- if (isset($extra_lang_file)) include(api_get_path(INCLUDE_PATH)."../lang/".$language_interface."/".$extra_lang_file.".inc.php");
- /*
- Constants
- */
- define ("CREATE_VIRTUAL_COURSE_OPTION", "create_virtual_course");
- define ("DISPLAY_VIRTUAL_COURSE_LIST_OPTION", "display_virtual_course_list");
- define ("FORM_ELEMENT_CODE_SIZE", "20");
- define ("FORM_ELEMENT_TEXT_SIZE", "60");
- define ("SELECT_BOX_SIZE", "10");
- define ("COURSE_TITLE_FORM_NAME", "course_title");
- define ("LANGUAGE_SELECT_FORM_NAME" , "course_language");
- define ("REAL_COURSE_SELECT_FORM_NAME" , "real_course_code");
- define ("WANTED_COURSE_CODE_FORM_NAME" , "wanted_course_code");
- define ("COURSE_CATEGORY_FORM_NAME" , "course_category");
- /*
- -----------------------------------------------------------
- Header
- -----------------------------------------------------------
- */
- $tool_name = get_lang('AdminManageVirtualCourses'); // title of the page (should come from the language file)
- $interbreadcrumb[]=array('url' => 'index.php',"name" => get_lang('PlatformAdmin'));
- Display::display_header($tool_name);
- /*
- ==============================================================================
- DISPLAY FUNCTIONS
- ==============================================================================
- */
- function make_strong($text)
- {
- return "<strong>" . $text . "</strong>";
- }
- /**
- * Return a list of language directories.
- * @todo function does not belong here, move to code library,
- * also see infocours.php and index.php which contain a similar function
- */
- function get_language_folder_list($dirname)
- {
- if($dirname[strlen($dirname)-1]!='/') $dirname.='/';
- $handle=opendir($dirname);
- while ($entries = readdir($handle))
- {
- if ($entries=='.' || $entries=='..' || $entries=='CVS') continue;
- if (is_dir($dirname.$entries))
- {
- $language_list[] = $entries;
- }
- }
- closedir($handle);
- return $language_list;
- }
- /**
- * Displays a select element (drop down menu) so the user can select
- * the course language.
- * @todo function does not belong here, move to (display?) library,
- * @todo language display used apparently no longer existing array, converted to english for now.
- * but we should switch to display the real language names.
- */
- function display_language_select($element_name)
- {
- global $platformLanguage;
- //get language list
- $dirname = api_get_path(SYS_PATH)."main/lang/";
- $language_list = get_language_folder_list($dirname);
- sort($language_list);
- //build array with strings to display
- foreach ($language_list as $this_language)
- {
- $language_to_display[$this_language] = $this_language;
- }
- //sort alphabetically
- //warning: key,value association needs to be maintained --> asort instead of sort
- asort($language_to_display);
- $user_selected_language = $_SESSION["user_language_choice"];
- if (! isset($user_selected_language) ) $user_selected_language = $platformLanguage;
- //display
- echo "<select name=\"$element_name\">";
- foreach ($language_to_display as $key => $value)
- {
- if ($key == $user_selected_language) $option_end = "selected >";
- else $option_end = ">";
- echo "<option value=\"$key\" $option_end";
- echo $value;
- echo "</option>\n";
- }
- echo "</select>";
- }
- /**
- * This code creates a select form element to let the user
- * choose a real course to link to.
- *
- * We display the course code, but internally store the course id.
- */
- function display_real_course_code_select($element_name)
- {
- $real_course_list = CourseManager::get_real_course_list();
- echo "<select name=\"$element_name\" size=\"".SELECT_BOX_SIZE."\" >\n";
- foreach($real_course_list as $real_course)
- {
- $course_code = $real_course["code"];
- echo "<option value=\"". $course_code ."\">";
- echo $course_code;
- echo "</option>\n";
- }
- echo "</select>\n";
- }
- function display_create_virtual_course_form()
- {
- global $charset;
- $category_table = Database::get_main_table(TABLE_MAIN_CATEGORY);
- $message = make_strong(get_lang('AdminCreateVirtualCourse')) . "<br/>" . get_lang('AdminCreateVirtualCourseExplanation') . "<br/>This feature is in development phase, bug reports welcome.";
- ?>
- <p><?php echo $message; ?></p>
- <b><?php echo get_lang('MandatoryFields') ?></b>
- <form method="post" action="<?php echo api_get_self(); ?>">
- <table>
- <tr valign="top">
- <td colspan="2">
- </td>
- </tr>
- <tr valign="top">
- <td align="right">
- <?php
- echo make_strong(get_lang('CourseTitle')) . " ";
- echo "</td>";
- echo "<td valign=\"top\">";
- echo "<input type=\"Text\" name=\"".COURSE_TITLE_FORM_NAME."\" size=\"".FORM_ELEMENT_TEXT_SIZE."\" value=\"$valueIntitule\"/><br />".get_lang('Ex') ;
- ?>
- </td>
- </tr>
- <tr valign="top">
- <td align="right"><?php echo make_strong(get_lang('CourseFaculty')) . " "; ?> </td>
- <td>
- <?php
- echo "<select name=\"".COURSE_CATEGORY_FORM_NAME."\">";
- $sql_query = "SELECT code, name
- FROM $category_table
- WHERE auth_course_child ='TRUE'
- ORDER BY tree_pos";
- $category_result = Database::query($sql_query);
- while ($current_category = Database::fetch_array($category_result))
- {
- echo "<option value=\"", $current_category["code"], "\"";
- echo ">(", $current_category["code"], ") ", $current_category["name"];
- echo "</option>\n";
- }
- ?>
- </select>
- <br /><?php echo make_strong(get_lang('TargetFac')) . " " ?>
- </td>
- </tr>
- <tr valign="top">
- <td align="right"><?php echo make_strong(get_lang('Code')) . " " ?> </td>
- <td>
- <?php
- echo "<input type=\"Text\" name=\"".WANTED_COURSE_CODE_FORM_NAME."\" maxlength=\"".FORM_ELEMENT_CODE_SIZE."\" value=\"$valuePublicCode\"/>
- <br/>" . get_lang('Max');
- ?>
- </td>
- </tr>
- <tr valign="top">
- <td align="right">
- <?php echo make_strong(get_lang('RealCourseCode')) . " " ?>
- </td>
- <td>
- <?php
- display_real_course_code_select(REAL_COURSE_SELECT_FORM_NAME);
- //echo "<input type=\"Text\" name=\"real_course_code\" maxlength=\"".FORM_ELEMENT_CODE_SIZE."\" value=\"" . api_htmlentities($valueTitular, ENT_COMPAT, $charset) . "\"/>";
- ?>
- </td>
- </tr>
- <tr valign="top">
- <td align="right">
- <?php
- echo make_strong(get_lang('CourseLanguage')) . " ";
- ?>
- </td>
- <td> <?php display_language_select(LANGUAGE_SELECT_FORM_NAME); ?>
- </td>
- </tr>
- <tr valign="top">
- <td>
- </td>
- <td>
- <input type="Submit" name="submit_create_virtual_course" value="<?php echo get_lang('Ok')?>"/>
- </td>
- </tr>
- </table>
- </form>
- <?php
- }
- function display_main_options()
- {
- $message = "<ul><li><a href=\"?action=".CREATE_VIRTUAL_COURSE_OPTION."\">".get_lang('CreateVirtualCourse')."</a></li>";
- $message .= "<li><a href=\"?action=".DISPLAY_VIRTUAL_COURSE_LIST_OPTION."\">".get_lang('DisplayListVirtualCourses')."</a></li></ul>";
- echo $message;
- }
- function display_virtual_course_list()
- {
- $course_list = CourseManager::get_virtual_course_list();
- if (! is_array($course_list) )
- {
- //there are no virtual courses
- echo "<i>".get_lang('ThereAreNoVirtualCourses')."</i>";
- return;
- }
- $column_header[] = array(get_lang('Title'),true);
- $column_header[] = array(get_lang('Code'),true);
- $column_header[] = array(get_lang('VisualCode'),true);
- $column_header[] = array(get_lang('LinkedCourseTitle'),true);
- $column_header[] = array(get_lang('LinkedCourseCode'),true);
- $table_data = array();
- for($i = 0; $i < count($course_list); $i++)
- {
- $course_list[$i] = Database::generate_abstract_course_field_names($course_list[$i]);
- $target_course_code = $course_list[$i]["target_course_code"];
- $real_course_info = Database::get_course_info($target_course_code);
- $row = array();
- $row[] = $course_list[$i]["title"];
- $row[] = $course_list[$i]["system_code"];
- $row[] = $course_list[$i]["visual_code"];
- $row[] = $real_course_info["title"];
- $row[]= $real_course_info["system_code"];
- $table_data[] = $row;
- }
- Display::display_sortable_table($column_header,$table_data,array(),array(),array('action'=>$_GET['action']));
- }
- /*
- ==============================================================================
- TOOL LOGIC FUNCTIONS
- ==============================================================================
- */
- /**
- * Checks all parameters needed to create a virtual course.
- * If they are all set, the virtual course creation procedure is called.
- * Call this function instead of create_virtual_course
- */
- function attempt_create_virtual_course($real_course_code, $course_title, $wanted_course_code, $course_language, $course_category)
- {
- //better: create parameter list, check the entire list, when false display errormessage
- CourseManager::check_parameter_or_fail($real_course_code, "Unspecified parameter: real course id.");
- CourseManager::check_parameter_or_fail($course_title, "Unspecified parameter: course title.");
- CourseManager::check_parameter_or_fail($wanted_course_code, "Unspecified parameter: wanted course code.");
- CourseManager::check_parameter_or_fail($course_language, "Unspecified parameter: course language.");
- CourseManager::check_parameter_or_fail($course_category, "Unspecified parameter: course category.");
- $message = get_lang('AttemptedCreationVirtualCourse') . "<br/>";
- $message .= get_lang('CourseTitle') . " " . $course_title . "<br/>";
- $message .= get_lang('WantedCourseCode') . " " . $wanted_course_code . "<br/>";
- $message .= get_lang('CourseLanguage') . " " . $course_language . "<br/>";
- $message .= get_lang('CourseFaculty') . " " . $course_category . "<br/>";
- $message .= get_lang('LinkedToRealCourseCode') . " " . $real_course_code . "<br/>";
- Display::display_normal_message($message);
- $creation_success = CourseManager::create_virtual_course( $real_course_code, $course_title, $wanted_course_code, $course_language, $course_category );
- if ($creation_success)
- {
- Display::display_normal_message( $course_title . " - " . get_lang('CourseCreationSucceeded') );
- return true;
- }
- return false;
- }
- /*
- ==============================================================================
- MAIN CODE
- ==============================================================================
- */
- $action = $_GET["action"];
- $attempt_create_virtual_course = $_POST["submit_create_virtual_course"];
- //api_display_tool_title($tool_name);
- if ( isset($attempt_create_virtual_course) && $attempt_create_virtual_course )
- {
- $real_course_code = $_POST[REAL_COURSE_SELECT_FORM_NAME];
- $course_title = $_POST[COURSE_TITLE_FORM_NAME];
- $wanted_course_code = $_POST[WANTED_COURSE_CODE_FORM_NAME];
- $course_language = $_POST[LANGUAGE_SELECT_FORM_NAME];
- $course_category = $_POST[COURSE_CATEGORY_FORM_NAME];
- $message = get_lang('AttemptedCreationVirtualCourse') . "<br/>";
- $message .= get_lang('CourseTitle') . " " . $course_title . "<br/>";
- $message .= get_lang('WantedCourseCode') . " " . $wanted_course_code . "<br/>";
- $message .= get_lang('CourseLanguage') . " " . $course_language . "<br/>";
- $message .= get_lang('CourseFaculty') . " " . $course_category . "<br/>";
- $message .= get_lang('LinkedToRealCourseCode') . " " . $real_course_code . "<br/>";
- Display::display_normal_message($message);
- $creation_success = CourseManager::attempt_create_virtual_course($real_course_code, $course_title, $wanted_course_code, $course_language, $course_category);
- if ($creation_success)
- {
- Display::display_normal_message( $course_title . " - " . get_lang('CourseCreationSucceeded') );
- }
- else
- {
- //should display error message
- }
- echo "<br/>";
- }
- display_main_options();
- switch($action)
- {
- case CREATE_VIRTUAL_COURSE_OPTION:
- display_create_virtual_course_form();
- break;
- case DISPLAY_VIRTUAL_COURSE_LIST_OPTION:
- display_virtual_course_list();
- break;
- }
- /*
- ==============================================================================
- FOOTER
- ==============================================================================
- */
- Display::display_footer();
- ?>
|