kevin_lp_build.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <?php
  2. /*
  3. ==============================================================================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2004 Dokeos S.A.
  6. Copyright (c) 2003 Ghent University (UGent)
  7. Copyright (c) 2001 Universite catholique de Louvain (UCL)
  8. Copyright (c) Patrick Cool
  9. Copyright (c) Denes Nagy
  10. Copyright (c) Yannick Warnier
  11. For a full list of contributors, see "credits.txt".
  12. The full license can be read in "license.txt".
  13. This program is free software; you can redistribute it and/or
  14. modify it under the terms of the GNU General Public License
  15. as published by the Free Software Foundation; either version 2
  16. of the License, or (at your option) any later version.
  17. See the GNU General Public License for more details.
  18. Contact: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com
  19. ==============================================================================
  20. */
  21. /**
  22. ==============================================================================
  23. * This is a learning path creation and player tool in Dokeos - previously learnpath_handler.php
  24. *
  25. * @author Patrick Cool
  26. * @author Denes Nagy
  27. * @author Roan Embrechts, refactoring and code cleaning
  28. * @author Yannick Warnier <ywarnier@beeznest.org> - cleaning and update for new SCORM tool
  29. * @package dokeos.learnpath
  30. ==============================================================================
  31. */
  32. /*
  33. ==============================================================================
  34. INIT SECTION
  35. ==============================================================================
  36. */
  37. $this_section=SECTION_COURSES;
  38. api_protect_course_script();
  39. /*
  40. -----------------------------------------------------------
  41. Libraries
  42. -----------------------------------------------------------
  43. */
  44. //the main_api.lib.php, database.lib.php and display.lib.php
  45. //libraries are included by default
  46. include('learnpath_functions.inc.php');
  47. //include('../resourcelinker/resourcelinker.inc.php');
  48. include('resourcelinker.inc.php');
  49. //rewrite the language file, sadly overwritten by resourcelinker.inc.php
  50. // name of the language file that needs to be included
  51. $language_file = "learnpath";
  52. /*
  53. -----------------------------------------------------------
  54. Header and action code
  55. -----------------------------------------------------------
  56. */
  57. $currentstyle = api_get_setting('stylesheets');
  58. $htmlHeadXtra[] = '<link rel="stylesheet" type="text/css" href="'.api_get_path(WEB_CODE_PATH).'css/'.$currentstyle.'/learnpath.css"/>';
  59. $htmlHeadXtra[] = "<link rel='stylesheet' type='text/css' href='learnpath.css' />"; //will be a merged with original learnpath.css
  60. $htmlHeadXtra[] = "<link rel='stylesheet' type='text/css' href='dtree.css' />"; //will be moved
  61. $htmlHeadXtra[] = "<script src='dtree.js' type='text/javascript'></script>"; //will be moved
  62. /*
  63. -----------------------------------------------------------
  64. Constants and variables
  65. -----------------------------------------------------------
  66. */
  67. $is_allowed_to_edit = api_is_allowed_to_edit();
  68. $tbl_lp = Database::get_course_table('lp');
  69. $tbl_lp_item = Database::get_course_table('lp_item');
  70. $tbl_lp_view = Database::get_course_table('lp_view');
  71. $isStudentView = (int) $_REQUEST['isStudentView'];
  72. $learnpath_id = (int) $_REQUEST['lp_id'];
  73. $submit = $_POST['submit_button'];
  74. /*
  75. $chapter_id = $_GET['chapter_id'];
  76. $title = $_POST['title'];
  77. $description = $_POST['description'];
  78. $Submititem = $_POST['Submititem'];
  79. $action = $_REQUEST['action'];
  80. $id = (int) $_REQUEST['id'];
  81. $type = $_REQUEST['type'];
  82. $direction = $_REQUEST['direction'];
  83. $moduleid = $_REQUEST['moduleid'];
  84. $prereq = $_REQUEST['prereq'];
  85. $type = $_REQUEST['type'];
  86. */
  87. /*
  88. ==============================================================================
  89. MAIN CODE
  90. ==============================================================================
  91. */
  92. // using the resource linker as a tool for adding resources to the learning path
  93. if ($action=="add" and $type=="learnpathitem")
  94. {
  95. $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>";
  96. }
  97. if ( (! $is_allowed_to_edit) or ($isStudentView) )
  98. {
  99. error_log('New LP - User not authorized in lp_build.php');
  100. header('location:lp_controller.php?action=view&lp_id='.$learnpath_id);
  101. }
  102. //from here on, we are admin because of the previous condition, so don't check anymore
  103. /* learnpath is just created, go get the last id */
  104. $is_new = false;
  105. if($learnpath_id == 0)
  106. {
  107. $is_new = true;
  108. $sql = "
  109. SELECT id
  110. FROM " . $tbl_lp . "
  111. ORDER BY id DESC
  112. LIMIT 0, 1";
  113. $result = api_sql_query($sql);
  114. $row = Database::fetch_array($result);
  115. $learnpath_id = $row['id'];
  116. }
  117. $sql_query = "SELECT * FROM $tbl_lp WHERE id = $learnpath_id";
  118. $result=api_sql_query($sql_query);
  119. $therow=Database::fetch_array($result);
  120. //$admin_output = '';
  121. /*
  122. -----------------------------------------------------------
  123. Course admin section
  124. - all the functions not available for students - always available in this case (page only shown to admin)
  125. -----------------------------------------------------------
  126. */
  127. /*==================================================
  128. SHOWING THE ADMIN TOOLS
  129. ==================================================*/
  130. /*==================================================
  131. prerequisites setting end
  132. ==================================================*/
  133. $interbreadcrumb[]= array ("url"=>"lp_controller.php?action=list", "name"=> get_lang("_learning_path"));
  134. $interbreadcrumb[]= array ("url"=>$_SERVER['PHP_SELF']."?action=build&lp_id=$learnpath_id", "name" => stripslashes("{$therow['name']}"));
  135. Display::display_header(null,'Path');
  136. //api_display_tool_title($therow['name']);
  137. $suredel = get_lang('AreYouSureToDelete');
  138. $suredelstep = get_lang('AreYouSureToDeleteSteps');
  139. ?>
  140. <script type='text/javascript'>
  141. /* <![CDATA[ */
  142. function confirmation (name)
  143. {
  144. 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')
  145. {
  146. if (confirm("<?php echo $suredel; ?> "+ name + " <?php echo $suredelstep;?>?"))
  147. {return true;}
  148. else
  149. {return false;}
  150. }
  151. else
  152. {
  153. if (confirm("<?php echo $suredel; ?> "+ name + "?"))
  154. {return true;}
  155. else
  156. {return false;}
  157. }
  158. }
  159. </script>
  160. <?php
  161. //echo $admin_output;
  162. /*
  163. -----------------------------------------------------------
  164. DISPLAY SECTION
  165. -----------------------------------------------------------
  166. */
  167. echo '<table cellpadding="0" cellspacing="0" class="lp_build">';
  168. echo '<tr>';
  169. echo '<td class="tree">';
  170. echo '<p style="border-bottom:1px solid #999999; margin:0; padding:2px;">'.get_lang("Build").'&nbsp;<a href="' . $_SERVER['PHP_SELF'] . '?cidReq=' . $_GET['cidReq'] . '&amp;action=admin_view&amp;lp_id=' . $_SESSION['oLP']->lp_id . '">'.get_lang("BasicOverview").'</a>&nbsp;<a href="lp_controller.php?cidReq='.$_GET['cidReq'].'&action=view&lp_id='.$_SESSION['oLP']->lp_id.'">'.get_lang("Display").'</a></p>';
  171. //links for adding a module, chapter or step
  172. echo '<div class="lp_actions">';
  173. echo '<p class="lp_action">';
  174. echo '<a href="' . $_SERVER['PHP_SELF'] . '?cidReq=' . $_GET['cidReq'] . '&amp;action=add_item&amp;type=chapter&amp;lp_id=' . $_SESSION['oLP']->lp_id . '" title="'.get_lang("NewChapter").'"><img align="left" alt="'.get_lang("NewChapter").'" src="../img/lp_dokeos_chapter_add.png" title="'.get_lang("NewChapter").'" />'.get_lang("NewChapter").'</a>';
  175. echo '</p>';
  176. echo '<p class="lp_action">';
  177. echo '<a href="' . $_SERVER['PHP_SELF'] . '?cidReq=' . $_GET['cidReq'] . '&amp;action=add_item&amp;type=step&amp;lp_id=' . $_SESSION['oLP']->lp_id . '" title="'.get_lang("NewStep").'"><img align="left" alt="'.get_lang("NewStep").'" src="../img/lp_dokeos_step_add.png" title="'.get_lang("NewStep").'" />'.get_lang("NewStep").'</a>';
  178. echo '</p>';
  179. echo '</div>';
  180. echo '<div class="lp_tree">';
  181. //build the tree with the menu items in it
  182. echo $_SESSION['oLP']->build_tree();
  183. echo '</div>';
  184. echo '</td>';
  185. echo '<td class="workspace">';
  186. if(isset($is_success) && $is_success === true)
  187. {
  188. echo '<div class="lp_message" style="margin:3px 10px;">';
  189. echo get_lang("ItemRemoved");
  190. echo '</div>';
  191. }
  192. else
  193. {
  194. if($is_new)
  195. {
  196. echo '<div class="lp_message" style="margin:3px 10px;">';
  197. echo get_lang("LearnPathAdded");
  198. echo '</div>';
  199. }
  200. if($is_new){
  201. echo '<p style="font-weight:bold; text-align:center;">'.get_lang("LPCreatedToContinue").'</p>';
  202. }
  203. else{
  204. echo '<p style="font-weight:bold; text-align:center;">'.get_lang("LPCreatedAddChapterStep").'</p>';
  205. }
  206. }
  207. echo '</td>';
  208. echo '</tr>';
  209. echo '</table>';
  210. /*
  211. ==============================================================================
  212. FOOTER
  213. ==============================================================================
  214. */
  215. Display::display_footer();
  216. ?>