parent
ce9f8b737e
commit
d8f0a8c0df
@ -1,438 +0,0 @@ |
||||
<?php |
||||
/* |
||||
============================================================================== |
||||
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) Patrick Cool |
||||
Copyright (c) Denes Nagy |
||||
Copyright (c) Yannick Warnier |
||||
|
||||
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: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com |
||||
============================================================================== |
||||
*/ |
||||
/** |
||||
============================================================================== |
||||
* This is a learning path creation and player tool in Dokeos - previously learnpath_handler.php |
||||
* |
||||
* @author Patrick Cool |
||||
* @author Denes Nagy |
||||
* @author Roan Embrechts, refactoring and code cleaning |
||||
* @author Yannick Warnier <ywarnier@beeznest.org> - cleaning and update for new SCORM tool |
||||
* @package dokeos.learnpath |
||||
============================================================================== |
||||
*/ |
||||
|
||||
/* |
||||
============================================================================== |
||||
INIT SECTION |
||||
============================================================================== |
||||
*/ |
||||
$this_section=SECTION_COURSES; |
||||
|
||||
api_protect_course_script(); |
||||
|
||||
/* |
||||
----------------------------------------------------------- |
||||
Libraries |
||||
----------------------------------------------------------- |
||||
*/ |
||||
//the main_api.lib.php, database.lib.php and display.lib.php |
||||
//libraries are included by default |
||||
|
||||
include('learnpath_functions.inc.php'); |
||||
//include('../resourcelinker/resourcelinker.inc.php'); |
||||
include('resourcelinker.inc.php'); |
||||
//rewrite the language file, sadly overwritten by resourcelinker.inc.php |
||||
// name of the language file that needs to be included |
||||
$language_file = "learnpath"; |
||||
|
||||
/* |
||||
----------------------------------------------------------- |
||||
Header and action code |
||||
----------------------------------------------------------- |
||||
*/ |
||||
$htmlHeadXtra[] = "<link rel='stylesheet' type='text/css' href='../css/learnpath.css' />"; |
||||
|
||||
/* |
||||
----------------------------------------------------------- |
||||
Constants and variables |
||||
----------------------------------------------------------- |
||||
*/ |
||||
$is_allowed_to_edit = api_is_allowed_to_edit(); |
||||
|
||||
$tbl_lp = Database::get_course_table('lp'); |
||||
$tbl_lp_item = Database::get_course_table('lp_item'); |
||||
$tbl_lp_view = Database::get_course_table('lp_view'); |
||||
|
||||
$isStudentView = (int) $_REQUEST['isStudentView']; |
||||
$learnpath_id = (int) $_REQUEST['lp_id']; |
||||
$submit = $_POST['submit_button']; |
||||
/* |
||||
$chapter_id = $_GET['chapter_id']; |
||||
$title = $_POST['title']; |
||||
$description = $_POST['description']; |
||||
$Submititem = $_POST['Submititem']; |
||||
$action = $_REQUEST['action']; |
||||
$id = (int) $_REQUEST['id']; |
||||
$type = $_REQUEST['type']; |
||||
$direction = $_REQUEST['direction']; |
||||
$moduleid = $_REQUEST['moduleid']; |
||||
$prereq = $_REQUEST['prereq']; |
||||
$type = $_REQUEST['type']; |
||||
*/ |
||||
/* |
||||
============================================================================== |
||||
MAIN CODE |
||||
============================================================================== |
||||
*/ |
||||
// using the resource linker as a tool for adding resources to the learning path |
||||
if ($action=="add" and $type=="learnpathitem") |
||||
{ |
||||
$htmlHeadXtra[] = "<script language='JavaScript' type='text/javascript'> window.location=\"../resourcelinker/resourcelinker.php?source_id=5&action=$action&learnpath_id=$learnpath_id&chapter_id=$chapter_id&originalresource=no\"; </script>"; |
||||
} |
||||
if ( (! $is_allowed_to_edit) or ($isStudentView) ) |
||||
{ |
||||
error_log('New LP - User not authorized in lp_admin_view.php'); |
||||
header('location:lp_controller.php?action=view&lp_id='.$learnpath_id); |
||||
} |
||||
//from here on, we are admin because of the previous condition, so don't check anymore |
||||
|
||||
$sql_query = "SELECT * FROM $tbl_lp WHERE id = $learnpath_id"; |
||||
$result=api_sql_query($sql_query); |
||||
$therow=Database::fetch_array($result); |
||||
|
||||
$admin_output = ''; |
||||
/* |
||||
----------------------------------------------------------- |
||||
Course admin section |
||||
- all the functions not available for students - always available in this case (page only shown to admin) |
||||
----------------------------------------------------------- |
||||
*/ |
||||
/*================================================== |
||||
SHOWING THE ADMIN TOOLS |
||||
==================================================*/ |
||||
|
||||
//Preparing the form to add a new module |
||||
$add_module_form = ' |
||||
<form name="form1" method="post" action="lp_controller"> |
||||
<input type="hidden" name="action" value="add_item"> |
||||
<input type="hidden" name="lp_id" value="'.$learnpath_id.'"> |
||||
<input type="hidden" name="parent" value="0"> |
||||
<input type="hidden" name="previous" value="-1"> |
||||
<input type="hidden" name="type" value="dokeos_module"> |
||||
<input type="hidden" name="path" value=""> |
||||
<h4>'.get_lang('_add_learnpath_module').'</h4> |
||||
<table width="400" border="0" cellspacing="2" cellpadding="0"> |
||||
<tr> |
||||
<td align="right">'.get_lang('_title').'</td> |
||||
<td><input name="title" type="text" value="" size="50"></td> |
||||
</tr> |
||||
<tr> |
||||
<td align="right"> </td> |
||||
<td><input type="submit" name="submit_button" value="'.get_lang('Ok').'"></td> |
||||
</tr> |
||||
</table> |
||||
</form>'; |
||||
|
||||
if (($_REQUEST['action']=="add_item" and $type=="dokeos_module" and !$submit)) |
||||
{ |
||||
//this is when the user has selected the "add module" link previously, so we don't display it this time |
||||
} |
||||
else |
||||
{ |
||||
//in case the user hasn't selected the "add module" link previously, first quick-check the database to remove the |
||||
//useless step of asking the user to click on "add module" if the only possible action is to add a module |
||||
$sql = "SELECT * FROM $tbl_lp_item WHERE lp_id = $learnpath_id AND item_type = 'dokeos_module'"; |
||||
$result=api_sql_query($sql,__FILE__,__LINE__); |
||||
if (Database::num_rows($result) <= 0) |
||||
{ |
||||
$admin_output .= "<br />There is no main chapter at the moment. Please add one using the following form. This is a required step in the learning path building process.<br />"; |
||||
$admin_output .= $add_module_form; |
||||
}else{ |
||||
$admin_output .= "<ul>\n"; |
||||
$admin_output .= "<li><a href='lp_controller.php?action=add_item&lp_id=$learnpath_id&type=dokeos_module&parent=0&previous=-1&path='>" . get_lang("_add_learnpath_module") . "</a></li>\n"; |
||||
$admin_output .= "</ul>\n\n"; |
||||
} |
||||
} |
||||
/*================================================== |
||||
EDITING A LEARNPATH ITEM: showing one of the forms |
||||
==================================================*/ |
||||
if ($_REQUEST['action']=="edititem" and !empty($_REQUEST['id']) AND empty($_REQUEST['submit_item'])) |
||||
{ |
||||
error_log('New LP - edit_item action in lp_admin_view',0); |
||||
$id = (int) $_REQUEST['id']; |
||||
$sql="SELECT * FROM $tbl_lp_item WHERE id=$id"; |
||||
$result=api_sql_query($sql,__FILE__,__LINE__); |
||||
$row=Database::fetch_array($result); |
||||
$id=$row['id']; |
||||
$title = $row['title']; |
||||
if(empty($title)){ |
||||
$title = rl_get_resource_name(api_get_course_id(),$learnpath_id,$_REQUEST['id']); |
||||
} |
||||
$admin_output .= '<h4>'.get_lang('_edit_learnpath_item').'</h4> |
||||
<form name="edititem" method="post" action=""> |
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
||||
<input type="hidden" name="action" value="edititem"> |
||||
<tr> |
||||
<td align="right" valign="top">'.get_lang('_title').'</td> |
||||
<td><input name="title" type="text" id="title3" size="50" value="'.$title.'"></td> |
||||
</tr>'; |
||||
//<tr> |
||||
// <td align="right" valign="top">'.get_lang('_description').'</td> |
||||
// <td><textarea name="description" cols="45" id="textarea">'.$row["description"].'</textarea></td> |
||||
//</tr> |
||||
$admin_output .= ' <tr> |
||||
<td align="right" valign="top"> </td> |
||||
<td><input name="submit_item" type="submit" id="Submititem" value="'.get_lang('Ok').'"></td> |
||||
</tr> |
||||
</table> |
||||
</form>'; |
||||
} |
||||
/*================================================== |
||||
prerequisites setting start |
||||
==================================================*/ |
||||
if ($_REQUEST['action']=="edititemprereq" and !empty($_REQUEST['id']) AND empty($_REQUEST['submit_item'])) |
||||
{ |
||||
$id = (int) $_REQUEST['id']; |
||||
$sql="SELECT * FROM $tbl_lp_item WHERE id=$id"; |
||||
$result=api_sql_query($sql,__FILE__,__LINE__); |
||||
$row=Database::fetch_array($result); |
||||
$id=$row['id']; |
||||
|
||||
$title = $row['title']; |
||||
if(empty($title)){ |
||||
$title = rl_get_resource_name(api_get_course_id(), $learnpath_id, $id); |
||||
} |
||||
$admin_output .= "<h4>"; |
||||
$admin_output .= get_lang('_add_prereq')." : "; |
||||
$admin_output .= $title; |
||||
$admin_output .= '</h4> |
||||
<form name="edititemprereq" method="post" action=""> |
||||
<input type="hidden" name="action" value="edititemprereq"> |
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
||||
<tr> |
||||
<td align="right" valign="top"></td> |
||||
<td><table border="0" cellspacing="1" cellpadding="0">'; |
||||
//$learnpath_items = learnpath_items($id); the LP object should be available here |
||||
$learnpath_items = learnpath::get_brother_items($id); |
||||
|
||||
//if there is any test before the current item, we show the completion limit column |
||||
//TODO |
||||
//This section has been made inactive for now because it should use the prerequisite's |
||||
//mastery score as a limit. Also, this script should instead use the new prerequisites |
||||
//language from AICC (see wiki), so it should actually be completely different |
||||
/* |
||||
$teststhere = false; |
||||
for ($i=0; $i<count($learnpath_items); $i++) |
||||
{ |
||||
if ((($learnpath_items[$i]["item_type"]==TOOL_QUIZ) |
||||
or ($learnpath_items[$i]["item_type"]=='HotPotatoes')) |
||||
and ($row["display_order"] > $learnpath_items[$i]["display_order"])) |
||||
{ |
||||
$teststhere = true; |
||||
} |
||||
} |
||||
|
||||
if ($teststhere) |
||||
{ |
||||
$admin_output .= "<tr><td colspan='2'></td><td>".get_lang('CompletionLimit')."</td></tr>"; |
||||
} |
||||
*/ |
||||
$checked=''; |
||||
if (empty($row["prerequisite"])) { $checked = 'checked'; } |
||||
$admin_output .= "<tr><td><input class=\"checkbox\" type=\"radio\" name=\"prereq\" value=\"\" $checked></td><td>- ".get_lang('_none')." -</td></tr>"; |
||||
|
||||
for ($i=0; $i<count($learnpath_items); $i++) |
||||
{ |
||||
if ($row["display_order"] > $learnpath_items[$i]["display_order"]) |
||||
{ |
||||
/* |
||||
$testrow = false; |
||||
if (($learnpath_items[$i]["item_type"]==TOOL_QUIZ) |
||||
or ($learnpath_items[$i]["item_type"]=='HotPotatoes')) |
||||
{ |
||||
$testrow = true; |
||||
} |
||||
*/ |
||||
$checked = ''; |
||||
if ($row["prerequisite"]==$learnpath_items[$i]["id"]) |
||||
{ |
||||
$checked='checked'; |
||||
} |
||||
$admin_output .= '<tr><td><input class="checkbox" type="radio" name="prereq" value="'.$learnpath_items[$i]['id'].'" '.$checked.' ></td><td>'; |
||||
$admin_output .= rl_get_resource_name(api_get_course_id(), $learnpath_id, $learnpath_items[$i]['id']); |
||||
$admin_output .= "</td>"; |
||||
/* |
||||
if ($testrow) |
||||
{ |
||||
//if (!$checked) { $disabled='disabled'; } |
||||
$admin_output .= "<td align=center><input type=text name='completion_limit[{$learnpath_items[$i]['id']}]' size=4 maxlength=20 $disabled value=$completion_limit></td>"; |
||||
} |
||||
*/ |
||||
$admin_output .= "</tr>"; |
||||
} |
||||
} |
||||
|
||||
$learnpath_chapters = learnpath::get_brother_chapters($row['parent_item_id']); |
||||
|
||||
$c=$row['parent_item_id']; //we are now in this chapter |
||||
$sql="SELECT * FROM $tbl_lp_item WHERE id=$c AND item_type='dokeos_module'"; |
||||
$result=api_sql_query($sql,__FILE__,__LINE__); |
||||
$row_chapter=Database::fetch_array($result); |
||||
|
||||
for ($i=0; $i<count($learnpath_chapters); $i++) |
||||
{ |
||||
if ($row_chapter["display_order"] > $learnpath_chapters[$i]["display_order"]) |
||||
{ |
||||
$checked=''; |
||||
if (($row["prereq_id"]==$learnpath_chapters[$i]["id"]) and ($row["prereq_type"]=='c')) { $checked='checked'; } |
||||
$admin_output .= "<tr><td bgcolor='#cccccc'><input type='radio' name='prereq' value='".$learnpath_chapters[$i]["id"]."' $checked ></td><td bgcolor='#cccccc'>".$learnpath_chapters[$i]['title']."</td></tr>"; |
||||
} |
||||
} |
||||
$admin_output .= ' |
||||
</table></td> |
||||
</tr> |
||||
<tr> |
||||
<td align="right" valign="top"> </td> |
||||
<td><input name="submit_item" type="submit" id="Submititem" value="'.get_lang('Ok').'"></td> |
||||
</tr> |
||||
</table> |
||||
</form>'; |
||||
} |
||||
|
||||
/*================================================== |
||||
prerequisites setting end |
||||
==================================================*/ |
||||
/*================================================== |
||||
EDITING / ADDING A NEW LEARNPATH chapter: showing the form |
||||
==================================================*/ |
||||
if (($_REQUEST['action']=="add_item")) |
||||
// and $type=="learnpathcategory") or $action=="editmodule") |
||||
{ |
||||
if (!$submit) |
||||
{ |
||||
/* |
||||
if ($action=="editmodule") |
||||
{ |
||||
$sql="SELECT * FROM $tbl_lp_item WHERE (id='$id' and lp_id=$learnpath_id AND item_type='dokeos_chapter')"; |
||||
$result=api_sql_query($sql,__FILE__,__LINE__); |
||||
$row=Database::fetch_array($result); |
||||
} |
||||
*/ |
||||
$admin_output .= ' |
||||
<form name="form1" method="post" action=""> |
||||
<h4>'; |
||||
if ($action=="add") |
||||
{ $admin_output .= get_lang('_add_learnpath_module'); } |
||||
else |
||||
{ $admin_output .= get_lang('_edit_learnpath_module'); } |
||||
$admin_output .= ' |
||||
</h4> |
||||
<table width="400" border="0" cellspacing="2" cellpadding="0"> |
||||
<tr> |
||||
<td align="right">'.get_lang('_title').'</td> |
||||
<td><input name="title" type="text" value="'.$row["chapter_name"].'" size="50"></td> |
||||
</tr>'; |
||||
if ( $action=='editmodule' ) |
||||
{ |
||||
// on edition, allow the user to modify the description (if he really wants it) |
||||
$admin_output .= '<tr> |
||||
<td align="right" valign="top">'.get_lang('_description').'</td>' |
||||
.'<td><textarea name="description" cols="45">'.$row["chapter_description"].'</textarea></td>' |
||||
.'</tr>'; |
||||
}else |
||||
{ |
||||
//on addition, only give a title field, so ignore the description field |
||||
$admin_output .= "<input type='hidden' name='description' value='' />"; |
||||
} |
||||
$admin_output .= ' |
||||
<tr> |
||||
<td align="right"> </td> |
||||
<td><input type="submit" name="submit_button" value="'.get_lang('Ok').'"></td> |
||||
</tr> |
||||
</table> |
||||
</form>'; |
||||
} // if (!$submit) |
||||
} // if ($action=="add" and $type=="learnpathcategory") |
||||
|
||||
|
||||
|
||||
|
||||
$interbreadcrumb[]= array ("url"=>"lp_controller.php?action=list", "name"=> get_lang("_learning_path")); |
||||
|
||||
$interbreadcrumb[]= array ("url"=>$_SERVER['PHP_SELF']."?action=admin_view&lp_id=$learnpath_id", "name" => stripslashes("{$therow['name']}")); |
||||
|
||||
Display::display_header(null,'Path'); |
||||
//api_display_tool_title($therow['name']); |
||||
|
||||
$suredel = get_lang('AreYouSureToDelete'); |
||||
$suredelstep = get_lang('AreYouSureToDeleteSteps'); |
||||
?> |
||||
<script type='text/javascript'> |
||||
/* <![CDATA[ */ |
||||
function confirmation (name) |
||||
{ |
||||
if (name!='Users' && name!='Assignments' && name!='Document' && name!='Forum' && name!='Agenda' && name!='Groups' && name!='Link _self' && name!='Dropbox' && name!='Course_description' && name!='Exercise' && name!='Introduction_text') |
||||
{ |
||||
if (confirm("<?php echo $suredel; ?> "+ name + " <?php echo $suredelstep;?>?"))
|
||||
{return true;} |
||||
else |
||||
{return false;} |
||||
} |
||||
else |
||||
{ |
||||
if (confirm("<?php echo $suredel; ?> "+ name + "?"))
|
||||
{return true;} |
||||
else |
||||
{return false;} |
||||
} |
||||
} |
||||
</script> |
||||
<?php |
||||
|
||||
echo $admin_output; |
||||
|
||||
/* |
||||
----------------------------------------------------------- |
||||
DISPLAY SECTION |
||||
----------------------------------------------------------- |
||||
*/ |
||||
?> |
||||
<table border="0" cellspacing="0" cellpadding="1" width="100%" class="data_table"> |
||||
<tr> |
||||
<td colspan='8'> |
||||
</td> |
||||
</tr> |
||||
<?php
|
||||
|
||||
|
||||
display_learnpath_chapters(); |
||||
|
||||
echo "</table>"; |
||||
|
||||
$learnpath_has_chapters = learnpath_chapters($learnpath_id); |
||||
if ($learnpath_has_chapters) |
||||
{ |
||||
echo "<br /><br /><font color='#999999' size='1'>".get_lang('_short_help')."</font>"; |
||||
} |
||||
|
||||
/* |
||||
============================================================================== |
||||
FOOTER |
||||
============================================================================== |
||||
*/ |
||||
Display::display_footer(); |
||||
?> |
||||
Loading…
Reference in new issue