1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188 |
- <?php
- use \ChamiloSession as Session;
- function deleteitem($id) {
-
- $course_id = api_get_course_int_id();
-
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
-
- $sql = "SELECT display_order, parent_item_id FROM $tbl_lp_item WHERE c_id = $course_id AND id=$id";
- $result = Database::query($sql);
- if (Database::num_rows($result) == 0) {
- return false;
- }
- $row = Database::fetch_row($result);
- $display_order = $row[0];
- $parent_item_id = $row[1];
-
- $sql = "DELETE FROM $tbl_learnpath_item WHERE c_id = $course_id AND id='$id'";
- $result = Database::query($sql);
- if ($result === false) {
- return false;
- }
-
- $sql = "UPDATE $tbl_learnpath_item SET display_order = display_order-1 WHERE c_id = $course_id AND display_order > $display_order AND parent_item_id = $parent_item_id";
- $result = Database::query($sql);
- $sql = "UPDATE $tbl_learnpath_chapter SET display_order = display_order-1 WHERE c_id = $course_id AND display_order > $display_order AND parent_item_id = $parent_item_id";
- $result = Database::query($sql);
- return true;
- }
- function deletemodule($parent_item_id) {
- global $learnpath_id;
- $course_id = api_get_course_int_id();
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
-
- $sql = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND lp_id=$learnpath_id";
- $result = Database::query($sql);
- while ($row = Database::fetch_array($result)) {
- if ($row['parent_item_id'] == $parent_item_id) {
-
- if (deletemodule($row['id']) === false) {
- return false;
- }
- }
- }
-
- $sql = "SELECT display_order, parent_item_id FROM $tbl_learnpath_chapter
- WHERE c_id = $course_id AND id=$parent_item_id and lp_id=$learnpath_id";
- $result = Database::query($sql);
- if (Database::num_rows($result) == 0) {
- return false;
- }
- $row = Database::fetch_row($result);
- $display_order = $row[0];
- $parent_id = $row[1];
-
- $sql = "DELETE FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND (id=$parent_item_id and lp_id=$learnpath_id)";
- $result = Database::query($sql);
-
- $sql2 = "DELETE FROM $tbl_learnpath_item WHERE c_id = $course_id AND parent_item_id=$parent_item_id";
- $result = Database::query($sql2);
-
- $sql = "UPDATE $tbl_learnpath_item SET display_order = display_order-1 WHERE c_id = $course_id AND display_order > $display_order AND parent_item_id = $parent_id";
- $result = Database::query($sql);
- $sql = "UPDATE $tbl_learnpath_chapter SET display_order = display_order-1 WHERE c_id = $course_id AND display_order > $display_order AND parent_item_id = $parent_id";
- $result = Database::query($sql);
- return true;
- }
- function deletepath($path_id) {
- $tbl_learnpath_main = Database :: get_course_table(TABLE_LEARNPATH_MAIN);
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
-
- $course_id = api_get_course_int_id();
- $sql = "DELETE FROM $tbl_learnpath_main WHERE c_id = $course_id AND lp_id='$path_id'";
- $result = Database::query($sql);
-
-
- $sql = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND lp_id = $path_id";
- $result = Database::query($sql);
- while ($row = Database::fetch_array($result)) {
- deletemodule($row['id']);
- }
- }
- function moveitem($direction, $id, $moduleid, $type = 'item') {
- global $learnpath_id;
- $course_id = api_get_course_int_id();
-
- $tbl_learnpath_item = Database::get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database::get_course_table(TABLE_LEARNPATH_CHAPTER);
- $tree = get_learnpath_tree($learnpath_id);
- $orig_order = 0;
- $orig_type = '';
- $orig_id = $id;
- foreach ($tree[$moduleid] as $row) {
-
- if (($row['id'] == $id) && ($row['type'] == $type)) {
- $orig_order = $row['display_order'];
- $orig_type = $row['type'];
- break;
- }
- }
- $dest_order = 0;
- $dest_type = '';
- $dest_id = 0;
- if ($direction == 'up') {
- if (!empty ($tree[$moduleid][$orig_order - 1])) {
- $dest_order = $orig_order - 1;
- $dest_type = $tree[$moduleid][$orig_order - 1]['type'];
- $dest_id = $tree[$moduleid][$orig_order - 1]['id'];
- } else {
- return false;
- }
- } else {
-
- if (!empty ($tree[$moduleid][$orig_order + 1])) {
- $dest_order = $orig_order + 1;
- $dest_type = $tree[$moduleid][$orig_order + 1]['type'];
- $dest_id = $tree[$moduleid][$orig_order + 1]['id'];
- } else {
- return false;
- }
- }
- $sql1 = '';
- $sql2 = '';
- if ($orig_type == 'chapter') {
- $sql1 = "UPDATE $tbl_learnpath_chapter SET display_order = ".$dest_order." WHERE c_id = $course_id AND (id=$orig_id and parent_item_id=$moduleid)";
- } elseif ($orig_type == 'item') {
- $sql1 = "UPDATE $tbl_learnpath_item SET display_order = ".$dest_order." WHERE c_id = $course_id AND (id=$orig_id and parent_item_id=$moduleid)";
- } else {
- return false;
- }
- if ($dest_type == 'chapter') {
- $sql2 = "UPDATE $tbl_learnpath_chapter SET display_order = ".$orig_order." WHERE c_id = $course_id AND (id='$dest_id' and parent_item_id=$moduleid)";
- } elseif ($dest_type == 'item') {
- $sql2 = "UPDATE $tbl_learnpath_item SET display_order = ".$orig_order." WHERE c_id = $course_id AND (id='$dest_id' and parent_item_id=$moduleid)";
- } else {
- return false;
- }
- Database::query($sql1);
- Database::query($sql2);
- }
- function movemodule($direction, $id) {
- global $learnpath_id;
- $course_id = api_get_course_int_id();
-
- $tbl_learnpath_chapter = Database::get_course_table(TABLE_LEARNPATH_CHAPTER);
- if ($direction == 'up') {
- $sortDirection = 'DESC';
- } else {
- $sortDirection = 'ASC';
- }
-
- $sql = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND (lp_id=$learnpath_id AND parent_item_id = 0) ORDER BY display_order $sortDirection";
- $result = Database::query($sql);
- $previousrow = '';
-
-
-
- while ($row = Database::fetch_array($result)) {
-
- if (!empty ($this_cat_order)) {
- $next_cat_order = $row['display_order'];
- $next_cat_id = $row['id'];
- $sql1 = "UPDATE $tbl_learnpath_chapter SET display_order = '$next_cat_order' WHERE c_id = $course_id AND (id='$this_cat_id' and lp_id=$learnpath_id)";
- $sql2 = "UPDATE $tbl_learnpath_chapter SET display_order = '$this_cat_order' WHERE c_id = $course_id AND (id='$next_cat_id' and lp_id=$learnpath_id)";
- Database::query($sql1);
- Database::query($sql2);
- unset ($this_cat_order);
- unset ($next_cat_order);
- unset ($next_cat_id);
- break;
- }
-
- if ($row['id'] == $id) {
- $this_cat_order = $row['display_order'];
- $this_cat_id = $id;
- }
- }
- }
- function insert_item($type = 'item', $name, $chapter_description = '', $parent_id = 0, $learnpath_id = 0, $params = null) {
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
-
- $course_id = api_get_course_int_id();
-
- $sql = "SELECT * FROM $tbl_learnpath_chapter
- WHERE c_id = $course_id AND lp_id=$learnpath_id AND parent_item_id = $parent_id
- ORDER BY display_order DESC";
- $result = Database::query($sql);
- $row = Database::fetch_array($result);
- $last_chapter_order = $row['display_order'];
-
- $sql = "SELECT * FROM $tbl_learnpath_item
- WHERE c_id = $course_id AND parent_item_id = $parent_id
- ORDER BY display_order DESC";
- $result = Database::query($sql);
- $row = Database::fetch_array($result);
- $last_item_order = $row['display_order'];
- $new_order = max($last_chapter_order, $last_item_order) + 1;
-
- if ($type === 'chapter') {
- $sql = "INSERT INTO $tbl_learnpath_chapter (c_id, lp_id, chapter_name, chapter_description, display_order)
- VALUES ( $course_id,
- '".domesticate($learnpath_id)."',
- '".domesticate(htmlspecialchars($name))."',
- '".domesticate(htmlspecialchars($chapter_description))."',
- $new_order )";
- $result = Database::query($sql);
- if ($result === false) {
- return false;
- }
- $id = Database :: insert_id();
- } elseif ($type === 'item') {
- $sql = "INSERT INTO $tbl_learnpath_item (c_id, parent_item_id, item_type, display_order) VALUES
- ($course_id, '".domesticate($parent_id)."','".domesticate(htmlspecialchars($type))."', $new_order )";
- $result = Database::query($sql);
- if ($result === false) {
- return false;
- }
- $id = Database :: insert_id();
- }
- return $id;
- }
- function array_learnpath_categories() {
- $course_id = api_get_course_int_id();
- global $learnpath_id;
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
- $sql = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND (lp_id=$learnpath_id) ORDER BY display_order ASC";
- $result = Database::query($sql);
- while ($row = Database::fetch_array($result)) {
- $array_learnpath_categories[] = array($row['id'], $row['chapter_name']);
- }
-
- return $array_learnpath_categories;
- }
- function display_learnpath_chapters($parent_item_id = 0, $tree = array (), $level = 0) {
-
- global $color2;
- global $xml_output;
- global $learnpath_id;
- $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
-
- $lg_move_down = get_lang('LearnpathMoveDown');
- $lg_move_up = get_lang('LearnpathMoveUp');
- $lg_edit_learnpath_module = get_lang('LearnpathEditModule');
- $lg_delete_learnpath_module = get_lang('LearnpathDeleteModule');
- $lg_nochapters = get_lang('LearnpathNoChapters');
- $lg_prerequisites = get_lang('LearnpathPrerequisites');
- $lg_prerequisites_limit = get_lang('LearnpathPrerequisitesLimit');
- $lg_add_learnpath_item = get_lang('LearnpathAddItem');
- $lg_title_and_desc = get_lang('LearnpathTitleAndDesc');
- $lg_change_order = get_lang('LearnpathChangeOrder');
- $lg_add_prereqi = get_lang('LearnpathAddPrereqi');
- $lg_add_title_and_desc = get_lang('LearnpathAddTitleAndDesc');
- $lg_delete = get_lang('Delete');
- if ($parent_item_id === 0) {
-
- $tree = get_learnpath_tree($learnpath_id);
- $num_modules = count($tree);
-
- if ($num_modules == 0) {
-
-
- } else {
- echo " <tr align='center' valign='top'><td><b> $lg_title_and_desc </b></td>\n"." <td><b> $lg_add_learnpath_item </b></td>\n";
- if (is_prereq($learnpath_id)) {
- echo " <td bgcolor='#ddddee'><b> $lg_prerequisites_limit </b></td>\n";
- } else {
- echo " <td><b> $lg_prerequisites </b></td>\n";
- }
- echo " <td colspan='2'><b> $lg_change_order </b></td><td><b> $lg_add_prereqi </b></td>\n"." <td><b> $lg_add_title_and_desc </b></td><td><b> $lg_delete </b></td>\n"." </tr>\n";
- }
- }
- $i = 1;
- $counter = 0;
- $num_modules = count($tree[$parent_item_id]);
-
- if (isset ($tree[$parent_item_id])) {
- foreach ($tree[$parent_item_id] as $row) {
- if ($row['item_type'] === 'dokeos_chapter') {
- $xml_output .= "<chapter>";
- $xml_output .= "<chaptertitle>".$row['title']."</chaptertitle>";
- $xml_output .= "<chapterdescription>".$row['description']."</chapterdescription>";
- $counter ++;
- if (($counter % 2) == 0) {
- $oddclass = 'row_odd';
- } else {
- $oddclass = 'row_even';
- }
-
- echo '<tr class="'.$oddclass.'">'."\n".' <td>'.str_repeat(" >", $level)."<img src='../img/documents.gif' alt='folder'/><a href='".api_get_self()."?lp_id=$learnpath_id&parent_item_id=".$row['id']."&action=add_sub_item'><b> ".$row['title']."</b></a>"."<br /><i><div align='justify'> ".str_repeat(" ", $level)."</i></td>\n".' <td align="center"><a href="'.api_get_self()."?lp_id=$learnpath_id&parent_item_id=".$row['id']."&action=add_sub_item\"><img src='../img/0.gif' width='13' height='13' border='0' title='$lg_add_learnpath_item'></a></td>\n"." <td";
- if (is_prereq($learnpath_id)) {
- echo " bgcolor='#ddddee'";
- }
- echo ">".$row['prerequisite']."</td>\n";
-
- if (api_is_allowed_to_edit()) {
- $myaction = 'move_item';
- if ($i < $num_modules) {
-
-
- echo " <td align=center>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=".$myaction."&direction=down&moduleid=".$parent_item_id."&id=".$row['id']."'>"."<img src=\"../img/down.gif\" border=\"0\" title=\"$lg_move_down\">"."</a></td>\n";
- } else {
- echo ' <td align="center"> </td>'."\n";
- }
- if ($i > 1) {
-
- echo ' <td align="center">'."<a href='".api_get_self()."?lp_id=$learnpath_id&action=".$myaction."&direction=up&moduleid=".$parent_item_id."&id=".$row['id']."'>"."<img src=\"../img/up.gif\" border=\"0\" title=\"$lg_move_up\">"."</a>"."</td>\n";
- } else {
- echo ' <td align="center"> </td>'."\n";
- }
- echo " <td align='center'> </td>\n";
- echo " <td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=edititem&id=".$row['id']."'>"."<img src=\"../img/edit.gif\" border=\"0\" title=\"$lg_edit_learnpath_module\">"."</a>"."</td>\n";
- echo " <td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=delete_item&id=".$row['id']."' onclick=\"javascript: return confirmation('".$row['title']."');\">"."<img src=\"../img/delete.gif\" border=\"0\" title=\"$lg_delete_learnpath_module\">"."</a>"."</td>\n";
- }
- echo "</tr>\n";
- $i ++;
- $xml_output .= "<items>";
-
- display_learnpath_chapters($row['id'], $tree, $level + 1);
- $xml_output .= "</items>";
- $xml_output .= "</chapter>";
- } else
- {
- $row_items = $row;
- echo "<tr>\n <td colspan='2' valign='top'>";
-
- display_addedresource_link_in_learnpath($row_items['item_type'], $row_items['ref'], '', $row_items['id'], 'builder', 'icon', $level);
- if ($row_items['description']) {
- echo "<div align='justify'> {$row_items['description']}";
- }
- echo "</td>";
- if (is_prereq($learnpath_id)) {
- echo '<td bgcolor="#EEEEFF">';
- } else {
- echo "<td>";
- }
- if (api_is_allowed_to_edit()) {
- if ($row_items['prerequisite'] != '') {
- $prereq = $row_items['prerequisite'];
-
-
- $sql_items2 = "SELECT * FROM $tbl_lp_item WHERE id='$prereq'";
- $result_items2 = Database::query($sql_items2);
- $number_items2 = Database::num_rows($result_items2);
- if ($number_items2 == 0) {
- echo get_lang('PrerequisiteDeletedError');
- }
- $row_items2 = Database::fetch_array($result_items2);
- display_addedresource_link_in_learnpath($row_items2['item_type'], $row_items2['ref'], '', $row_items2['id'], 'builder', '', 0);
- if ((($row_items2['item_type'] == TOOL_QUIZ) or ($row_items2['item_type'] == 'HotPotatoes')) and ($row_items['prerequisite'])) {
-
- }
-
-
- }
- echo "</font></td>";
- $xml_output .= "<element_type>".$row_items['item_type']."</element_type>";
- $xml_output .= "<element_id>".$row_items['item_id']."</element_id>";
-
- if ($i < $num_modules) {
- echo "<td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=moveitem&type=item&direction=down&moduleid=".$parent_item_id."&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9>"."<img src=\"../img/down.gif\" border=\"0\" title=\"$lg_move_down\">"."</a>"."</td>";
- } else {
- echo "<td width='30' align='center'> </td>";
- }
- if ($i > 1) {
- echo "<td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=moveitem&type=item&direction=up&moduleid=".$parent_item_id."&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9>"."<img src=\"../img/up.gif\" border=\"0\" title=\"$lg_move_up\">"."</a>";
- } else {
- echo "<td width='30' align='center'> </td>";
- }
- echo "</td>"."<td align='center'>";
-
- echo "<a href='".api_get_self()."?lp_id=$learnpath_id&action=edititemprereq&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9>"."<img src=\"../img/scormpre.gif\" border=\"0\" title=\"$lg_add_prereq\">"."</a>"."</td>";
-
- echo "<td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=edititem&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9>"."<img src=\"../img/edit.gif\" border=\"0\" title=\"$lg_edit_learnpath_item\">"."</a>"."</td>";
-
- echo "<td align='center'>"."<a href='".api_get_self()."?lp_id=$learnpath_id&action=deleteitem&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9>"."<img src=\"../img/delete.gif\" border=\"0\" title=\"$lg_delete_learnpath_item\" onclick=\"javascript: return confirmation('".$row_items['item_type']."');\">"."</a>";
- }
- $i ++;
- echo "</td></tr>";
- }
- }
- }
- }
- function display_learnpath_items($categoryid) {
- global $xml_output;
- global $lg_prerequisites, $lg_move_down, $lg_move_up, $lg_edit_learnpath_item, $lg_delete_learnpath_item, $learnpath_id, $lg_add_prereq, $lg_prereq_deleted_error, $lg_pre_short, $langThisItem;
- $course_id = api_get_course_int_id();
- $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
- $sql_items = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND parent_item_id='$categoryid' ORDER BY display_order ASC";
- $result_items = Database::query($sql_items);
- $number_items = Database::num_rows($result_items);
- $i = 1;
- while ($row_items = Database::fetch_array($result_items)) {
- echo "<tr><td colspan='2' valign='top'>";
- display_addedresource_link_in_learnpath($row_items['item_type'], $row_items['ref'], '', $row_items['id'], 'builder', 'icon');
- if ($row_items['description']) {
- echo "<div align='justify'><font color='#999999'> {$row_items['description']}</font>";
- }
- echo "</td>";
- if (is_prereq($learnpath_id)) {
- echo '<td bgcolor="#EEEEFF">';
- } else {
- echo "<td>";
- }
- if (api_is_allowed_to_edit()) {
-
-
-
- if ($row_items['prerequisite'] != '') {
- $prereq = $row_items['prerequisite'];
-
-
- $sql_items2 = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND id='$prereq'";
- $result_items2 = Database::query($sql_items2);
- $number_items2 = Database::num_rows($result_items2);
- if ($number_items2 == 0) {
- echo "<font color=red>$lg_prereq_deleted_error</font>";
- }
- $row_items2 = Database::fetch_array($result_items2);
- display_addedresource_link_in_learnpath($row_items2['item_type'], $row_items2['ref'], '', $row_items2['id'], 'builder', '');
- if ((($row_items2['item_type'] == 'Exercise') or ($row_items2['item_type'] == 'HotPotatoes')) and ($row_items['prerequisites'])) {
- echo " ({$row_items2['title']})";
- }
-
-
- }
- echo "</font></td>";
- $xml_output .= "<element_type>".$row_items['item_type']."</element_type>";
- $xml_output .= "<element_id>".$row_items['id']."</element_id>";
-
- if ($i < $number_items) {
- echo "<td align='center'><a href='".api_get_self()."?lp_id=$learnpath_id&action=moveitem&direction=down&moduleid=".$categoryid."&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9><img src=\"../img/down.gif\" border=\"0\" title=\"$lg_move_down\"></a></td>";
- } else {
- echo "<td width='30' align='center'> </td>";
- }
- if ($i > 1) {
- echo "<td align='center'><a href='".api_get_self()."?lp_id=$learnpath_id&action=moveitem&direction=up&moduleid=".$categoryid."&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9><img src=\"../img/up.gif\" border=\"0\" title=\"$lg_move_up\"></a>";
- } else {
- echo "<td width='30' align='center'> </td>";
- }
- echo "</td><td align='center'>";
-
- echo "<a href='".api_get_self()."?lp_id=$learnpath_id&action=edititemprereq&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9><img src=\"../img/scormpre.gif\" border=\"0\" title=\"$lg_add_prereq\"></a></td>";
-
- echo "<td align='center'><a href='".api_get_self()."?lp_id=$learnpath_id&action=edititem&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9><img src=\"../img/edit.gif\" border=\"0\" title=\"$lg_edit_learnpath_item\"></a></td>";
-
- echo "<td align='center'>";
- echo "<a href='".api_get_self()."?lp_id=$learnpath_id&action=deleteitem&id=".$row_items['id']."'&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9><img src=\"../img/delete.gif\" border=\"0\" title=\"$lg_delete_learnpath_item\" onclick=\"javascript: return confirmation('".$langThisItem."');\"></a>";
- }
- $i ++;
- echo "</td></tr>";
- }
- }
- function learnpath_items($itemid) {
- global $xml_output;
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $course_id = api_get_course_int_id();
-
- $sql_items = "SELECT parent_item_id FROM $tbl_lp_item WHERE c_id = $course_id AND id='$itemid'";
- $moduleid_sql = Database::query($sql_items);
- $moduleid_array = Database::fetch_array($moduleid_sql);
- $moduleid = $moduleid_array['parent_item_id'];
- $sql_items = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND parent_item_id='$moduleid' ORDER BY display_order ASC";
- $result_items = Database::query($sql_items);
- $ar = Database::fetch_array($result_items);
- while ($ar != '') {
- $result[] = $ar;
- $ar = Database::fetch_array($result_items);
- }
- return $result;
- }
- function learnpath_chapters($learnpath_id) {
- global $xml_output, $learnpath_id;
- $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
- $course_id = api_get_course_int_id();
-
- $sql_items = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND lp_id='$learnpath_id' AND item_type='dokeos_chapter' ORDER BY display_order ASC";
-
- $result_items = Database::query($sql_items);
- $ar = Database::fetch_array($result_items);
- while ($ar != '') {
- $result[] = $ar;
- $ar = Database::fetch_array($result_items);
- }
- return $result;
- }
- function is_prereq($learnpath_id) {
- global $xml_output;
- $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
- $course_id = api_get_course_int_id();
- $prereq = false;
- $sql_items = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND lp_id='$learnpath_id' AND parent_item_id=0 ORDER BY display_order ASC";
- $result_items = Database::query($sql_items);
- while ($ar = Database::fetch_array($result_items)) {
- $c = $ar['id'];
- $sql_items2 = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND lp_id = $learnpath_id AND parent_item_id='$c' ORDER BY display_order ASC";
- $result_items2 = Database::query($sql_items2);
- while ($ar2 = Database::fetch_array($result_items2)) {
- if ($ar2['prerequisite'] != '') {
- $prereq = true;
- }
- }
- }
- return ($prereq);
- }
- function prereqcheck($id_in_path) {
-
- global $learnpath_id, $_user;
- global $langPrereqToEnter, $langPrereqTestLimit1, $langPrereqTestLimit2, $langPrereqTestLimitNow, $langPrereqFirstNeedTo, $langPrereqModuleMinimum1, $langPrereqModuleMinimum2;
- $tbl_learnpath_user = Database :: get_course_table(TABLE_LEARNPATH_USER);
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
-
- $course_id = api_get_course_int_id();
-
- $prereq = false;
-
- $sql_items = "SELECT * FROM $tbl_learnpath_item WHERE c_id = $course_id AND id='$id_in_path'";
- $result_items = Database::query($sql_items);
- $row = Database::fetch_array($result_items);
-
- if ($row['prereq_type'] == 'i') {
-
-
- $id_in_path3 = $row['prereq_id'];
- $prereq_limit = $row['prereq_completion_limit'];
-
- if ($_user['user_id'] == '') {
- $user_id = '0';
- } else {
- $user_id = $_user['user_id'];
- }
- $sql_items3 = "SELECT * FROM $tbl_learnpath_user WHERE c_id = $course_id AND (learnpath_item_id='$id_in_path3' and user_id=$user_id)";
- $result_items3 = Database::query($sql_items3);
- $row3 = Database::fetch_array($result_items3);
-
- $stepname = display_addedresource_link_in_learnpath($row['item_type'], $row['ref'], '', $id_in_path, 'builder', 'nolink');
-
- $stepname = trim($stepname);
-
- $sql6 = "SELECT * FROM $tbl_learnpath_item WHERE (id='$id_in_path3')";
- $result6 = Database::query($sql6);
- $row6 = Database::fetch_array($result6);
-
- $prereqname = display_addedresource_link_in_learnpath($row6['item_type'], $row6['ref'], '', $id_in_path3, 'builder', 'nolink');
-
- $limitok = true;
-
- if ($prereq_limit) {
-
- if ($row3['score'] < $prereq_limit) {
-
- $prereq = $langPrereqToEnter.$stepname.$langPrereqTestLimit1."$prereq_limit".$langPrereqTestLimit2.$prereqname.". (".$langPrereqTestLimitNow.$row3['score'].")";
- } else {
-
- $prereq = false;
- }
- } else {
-
- if ($row3['status'] == 'completed' or $row3['status'] == 'passed') {
-
- $prereq = false;
- } else {
-
- $prereq = $langPrereqToEnter.$stepname.$langPrereqFirstNeedTo.$prereqname.'.';
- }
- }
- } elseif ($row['prereq_type'] == 'c') {
-
-
- $id_in_path2 = $row['prereq_id'];
-
- $sql_items3 = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND parent_item_id='$id_in_path2'";
- $result_items3 = Database::query($sql_items3);
- $allcompleted = true;
- while ($row3 = Database::fetch_array($result_items3)) {
-
-
- $id_in_path4 = $row3['id'];
- if ($_user['user_id'] == '') {
- $user_id = '0';
- } else {
- $user_id = $_user['user_id'];
- }
-
- $sql_items4 = "SELECT * FROM $tbl_learnpath_user WHERE c_id = $course_id AND (learnpath_item_id='$id_in_path4' and user_id=$user_id)";
- $result_items4 = Database::query($sql_items4);
- $row4 = Database::fetch_array($result_items4);
-
- if ($row4['status'] != 'completed' and $row4['status'] != 'passed') {
- $allcompleted = false;
- }
- }
- if ($allcompleted) {
-
- $prereq = false;
- } else {
-
- $sql5 = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND (lp_id='$learnpath_id' and id='$id_in_path2')";
- $result5 = Database::query($sql5);
- $row5 = Database::fetch_array($result5);
- $prereqmodulename = trim($row5['chapter_name']);
- $prereq = $langPrereqModuleMinimum1.$prereqmodulename.$langPrereqModuleMinimum2;
- }
- } else {
-
- $prereq = false;
- }
-
- return ($prereq);
- }
- function get_learnpath_tree($learnpath_id) {
-
-
-
-
- $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM);
- $tree = array();
- $chapters = array();
- $all_items_by_chapter = array();
- $course_id = api_get_course_int_id();
-
- $sql = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND lp_id = ".$learnpath_id." AND item_type='dokeos_chapter' ORDER BY display_order";
-
- $res = Database::query($sql);
-
- while ($row = Database::fetch_array($res)) {
- $chapters[] = $row;
-
- if (empty ($row['parent_item_id'])) {
- $row['parent_item_id'] = 0;
- }
-
- $all_items_by_chapter[$row['parent_item_id']][$row['display_order']] = $row;
- $all_items_by_chapter[$row['parent_item_id']][$row['display_order']]['type'] = 'dokeos_chapter';
- }
-
- foreach ($chapters as $row) {
-
- $sql = "SELECT * FROM $tbl_lp_item WHERE c_id = $course_id AND lp_id = $learnpath_id AND parent_item_id = ".$row['id']." ORDER BY display_order";
-
- $res = Database::query($sql);
-
- while ($myrow = Database::fetch_array($res, 'ASSOC')) {
-
-
- $all_items_by_chapter[$row['id']][$myrow['display_order']] = $myrow;
- $all_items_by_chapter[$row['id']][$myrow['display_order']]['type'] = 'item';
- }
- }
-
- foreach ($all_items_by_chapter as $key => $subrow) {
- ksort($all_items_by_chapter[$key]);
- }
-
-
- return $all_items_by_chapter;
- }
- function get_ordered_items_list($tree, $chapter = 0, $include_chapters = false) {
- $list = array ();
- foreach ($tree[$chapter] as $order => $elem) {
- if ($elem['type'] == 'chapter') {
- if ($include_chapters === true) {
- $list[] = array ('id' => $elem['id'], 'type' => $elem['type']);
- }
- $res = get_ordered_items_list($tree, $elem['id'], $include_chapters);
- foreach ($res as $elem) {
- $list[] = $elem;
- }
- } elseif ($elem['type'] == 'item') {
- $list[] = array ('id' => $elem['id'], 'type' => $elem['type'], 'item_type' => $elem['item_type'], 'parent_item_id' => $elem['parent_item_id'], 'item_id' => $elem['item_id']);
- }
- }
- return $list;
- }
- function display_toc_chapter_contents($tree, $parent_item_id = 0, $learnpath_id, $uid, $wrap, $level = 0) {
-
- $tbl_learnpath_user = Database :: get_course_table(TABLE_LEARNPATH_USER);
- $num = 0;
- $num_completed = 0;
- foreach ($tree[$parent_item_id] as $order => $elem) {
- $bold = false;
- if (!empty ($_SESSION['cur_open']) && ($elem['id'] == $_SESSION['cur_open'])) {
- $bold = true;
- }
- if ($elem['type'] === 'chapter') {
- if ($wrap) {
- echo str_repeat(" ", $level).shorten(strip_tags($elem['chapter_name']), (35 - 3 * $level))."<br />\n";
- } else {
- echo "<tr><td colspan='3'>".str_repeat(" ", $level).shorten($elem['chapter_name'], (35 - 3 * $level))."</td></tr>\n";
- }
- if ($wrap) {
- if ($elem['chapter_description'] != '') {
- echo "<div class='description'>".str_repeat(" ", $level)." ".shorten($elem['chapter_description'], (35 - 3 * $level))."</div>\n";
- }
- } else {
- if ($elem['chapter_description'] != '') {
- echo "<tr><td colspan='3'><div class='description'>".str_repeat(" ", $level)." ".shorten($elem['chapter_description'], (35 - 3 * $level))."</div></td></tr>\n";
- }
- }
- list ($a, $b) = display_toc_chapter_contents($tree, $elem['id'], $learnpath_id, $uid, $wrap, $level + 1);
- $num += $a;
- $num_completed += $b;
- } elseif ($elem['type'] === 'item') {
-
- $sql0 = "SELECT * FROM $tbl_learnpath_user WHERE (user_id='".$uid."' and learnpath_item_id='".$elem['id']."' and lp_id='".$learnpath_id."')";
- $result0 = Database::query($sql0);
- $row0 = Database::fetch_array($result0);
- $completed = '';
- if (($row0['status'] == 'completed') or ($row0['status'] == 'passed')) {
- $completed = 'completed';
- $num_completed ++;
- }
- if ($wrap) {
- echo str_repeat(" ", $level)."<a name='{$elem['id']}' />\n";
- } else {
- echo "<tr><td>".str_repeat(" ", $level-1)."<a name='{$elem['id']}' />\n";
- }
- if ($wrap) {
- $icon = 'wrap';
- }
- if ($bold) {
- echo "<b>";
- }
- display_addedresource_link_in_learnpath($elem['item_type'], $elem['ref'], $completed, $elem['id'], 'player', $icon);
- if ($bold) {
- echo "</b>";
- }
- if ($wrap) {
- echo "<br />\n";
- } else {
- echo "</td></tr>\n";
- }
- $num ++;
- }
- }
- return array ($num, $num_completed);
- }
- function get_tracking_table($learnpath_id, $user_id, $parent_item_id = 0, $tree = false, $level = 0, $counter = 0) {
- $tbl_learnpath_chapter = Database :: get_course_learnpath_chapter_table();
- $tbl_learnpath_item = Database :: get_course_learnpath_item_table();
- $tbl_learnpath_user = Database :: get_course_learnpath_user_table();
-
- $include_chapters = true;
- if (!is_array($tree)) {
-
- $tree = get_learnpath_tree($learnpath_id);
- }
- foreach ($tree[$parent_item_id] as $order => $elem) {
- if (($counter % 2) == 0) {
- $oddclass = 'row_odd';
- } else {
- $oddclass = 'row_even';
- }
- if ($elem['type'] == 'chapter') {
- if ($include_chapters === true) {
-
- echo "<tr class='$oddclass'><td colspan = '3'>".str_repeat(' ', $level * 2 + 2).$elem['chapter_name']."</td></tr>\n";
- }
- $counter ++;
-
- get_tracking_table($learnpath_id, $user_id, $elem['id'], $tree, $level + 1, $counter);
- } elseif ($elem['type'] == 'item') {
- $sql = "SELECT * FROM $tbl_learnpath_user "."WHERE user_id = $user_id "."AND lp_id = $learnpath_id "."AND learnpath_item_id = ".$elem['id'];
- $res = Database::query($sql);
- $myrow = Database::fetch_array($res);
- if (($myrow['status'] == 'completed') || ($myrow['status'] == 'passed')) {
- $color = 'blue';
- $statusmessage = get_lang('Complete');
- } else {
- $color = 'black';
- $statusmessage = get_lang('Incomplete');
- }
- $link = get_addedresource_link_in_learnpath($elem['item_type'], $elem['id'], $elem['item_id']);
-
-
- echo "<tr class='$oddclass'>"."<td class='mystatus'>".str_repeat(" ", $level * 2 + 2);
-
- display_addedresource_link_in_learnpath($elem['item_type'], $elem['ref'], $myrow['status'], $elem['id'], 'player', 'wrap');
-
- echo "<td>"."<font color='$color'><div class='mystatus'>".$statusmessage."</div></font>"."</td>"."<td>"."<div class='mystatus' align='center'>". ($myrow['score'] == 0 ? '-' : $myrow['score'])."</div>"."</td>"."</tr>\n";
- $counter ++;
- }
- }
-
- return true;
- }
- function is_empty($id) {
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
- $course_id = api_get_course_int_id();
- $sql = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND lp_id=$id ORDER BY display_order ASC";
- $result = Database::query($sql);
- $num_modules = Database::num_rows($result);
- $empty = true;
- if ($num_modules != 0) {
- while ($row = Database::fetch_array($result)) {
- $num_items = 0;
- $parent_item_id = $row['id'];
- $sql2 = "SELECT * FROM $tbl_learnpath_item WHERE c_id = $course_id AND (parent_item_id=$parent_item_id) ORDER BY display_order ASC";
- $result2 = Database::query($sql2);
- $num_items = Database::num_rows($result2);
- if ($num_items > 0) {
- $empty = false;
- }
- }
- }
- return ($empty);
- }
- function exporttofile($filename, $LPname, $LPid, $content) {
- global $circle1_files;
-
- global $expdir;
- if (!$handle = fopen($expdir.'/'.$filename, 'w')) {
- echo "Cannot open file ($filename)";
- }
- if (fwrite($handle, $content) === false) {
- echo "Cannot write to file ($filename)";
- exit;
- }
- fclose($handle);
- $circle1_files[0][] = $filename;
- $circle1_files[1][] = $LPname;
- $circle1_files[2][] = $LPid;
- }
- function export_exercise($item_id) {
- global $expdir, $_course, $_configuration, $_SESSION, $_SERVER, $language_interface, $langExerciseNotFound, $langQuestion, $langOk, $origin, $questionNum;
- $exerciseId = $item_id;
-
- require_once '../exercice/testcategory.class.php';
- require_once '../exercice/exercise.class.php';
- require_once '../exercice/question.class.php';
- require_once '../exercice/answer.class.php';
- require_once '../exercice/exercise.lib.php';
-
- $TBL_EXERCISES = Database :: get_course_table(TABLE_QUIZ_TEST);
-
- if (isset ($_SESSION['objExercise'])) {
- Session::erase('objExercise');
- }
- if (isset ($_SESSION['objQuestion'])) {
- Session::erase('objQuestion');
- }
- if (isset ($_SESSION['objAnswer'])) {
- Session::erase('objAnswer');
- }
- if (isset ($_SESSION['questionList'])) {
- Session::erase('questionList');
- }
- if (isset ($_SESSION['exerciseResult'])) {
- Session::erase('exerciseResult');
- }
-
- if (!isset ($_SESSION['objExercise'])) {
-
- $objExercise = new Exercise();
- $sql = "SELECT title,description,sound,type,random,active FROM $TBL_EXERCISES WHERE id='$exerciseId'";
-
- if (!$objExercise->read($exerciseId) || (!$objExercise->selectStatus() && !api_is_allowed_to_edit() && ($origin != 'learnpath'))) {
- die($langExerciseNotFound);
- }
-
- Session::write('objExercise',$objExercise);
- }
- $exerciseTitle = $objExercise->selectTitle();
- $exerciseDescription = $objExercise->selectDescription();
- $exerciseSound = $objExercise->selectSound();
- $randomQuestions = $objExercise->isRandom();
- $exerciseType = $objExercise->selectType();
- if (!isset ($_SESSION['questionList'])) {
-
- $questionList = $randomQuestions ? $objExercise->selectRandomList() : $objExercise->selectQuestionList();
-
- Session::write('questionList',$questionList);
- }
- $nbrQuestions = sizeof($questionList);
-
- if (!$questionNum || $_POST['questionNum']) {
-
- if (!$questionNum) {
- $questionNum = 1;
- } else {
- $questionNum ++;
- }
- }
- $exerciseTitle = text_filter($exerciseTitle);
- $test .= "<h3>".$exerciseTitle."</h3>";
- if (!empty ($exerciseSound)) {
- $test .= "<a href=\"../document/download.php?doc_url=%2Faudio%2F".$exerciseSound."\"&SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9 target=\"_blank\"><img src=\"../img/sound.gif\" border=\"0\" align=\"absmiddle\" alt=".get_lang("Sound")."\" /></a>";
- }
- $exerciseDescription = text_filter($exerciseDescription);
-
- $scriptfilename = "Exercice".$item_id.".js";
- $s = "<script type=\"text/javascript\" src='../js/".$scriptfilename."'></script>";
- $test .= $s;
- $content = "function evaluate() {
- alert('Test evaluated.');
- }
- ";
- if (!$handle = fopen($expdir.'/js/'.$scriptfilename, 'w')) {
- echo "Cannot open file ($scriptfilename)";
- }
- if (fwrite($handle, $content) === false) {
- echo "Cannot write to file ($filename)";
- exit;
- }
- fclose($handle);
-
- $s = "
- <p>$exerciseDescription</p>
- <table width='100%' border='0' cellpadding='1' cellspacing='0'>
- <form method='post' action=''><input type=\"hidden\" name=\"SQMSESSID\" value=\"36812c2dea7d8d6e708d5e6a2f09b0b9\" />
- <input type='hidden' name='formSent' value='1' />
- <input type='hidden' name='exerciseType' value='".$exerciseType."' />
- <input type='hidden' name='questionNum' value='".$questionNum."' />
- <input type='hidden' name='nbrQuestions' value='".$nbrQuestions."' />
- <tr>
- <td>
- <table width='100%' cellpadding='4' cellspacing='2' border='0'>";
- $test .= $s;
- $i = 0;
- foreach ($questionList as $questionId) {
- $i ++;
- echo $s = "<tr bgcolor='#e6e6e6'><td valign='top' colspan='2'>".get_lang('Question')." ";
-
- $test .= showQuestion($questionId, false, 'export', $i);
- }
- $s = "</table></td></tr><tr><td><br/><input type='button' value='".$langOk."' onclick=\"javascript: evaluate(); alert('Evaluated.');\">";
- $s .= "</td></tr></form></table>";
- $s .= "<script type='text/javascript'> loadPage(); </script>";
- $b = 2;
- $test .= $s;
- return ($test);
- }
- function exportitem($id, $item_id, $item_type, $add_scorm_communications = false) {
- $course_id = api_get_course_int_id();
- global $circle1_files, $expdir, $_course, $_SESSION, $GLOBALS;
- global $timeNoSecFormat, $dateFormatLong, $language_interface, $langPubl, $langDone, $langThisCourseDescriptionIsEmpty, $lg_course_description, $lg_introduction_text, $_cid, $langHotPotatoesFinished, $lg_author, $lg_date, $lg_groups, $lg_users, $lg_ass, $lg_dropbox, $test, $langQuestion;
- $libp = api_get_path(SYS_CODE_PAH);
- include_once $libp.'exercice/exercise.class.php';
- include_once $libp.'question.class.php';
- include_once $libp.'answer.class.php';
- include_once $libp.'exercise.lib.php';
- $langLasting = '';
- include_once $libp.'lang/english/announcements.inc.php';
- include_once $libp.'lang/'.$language_interface.'/announcements.inc.php';
- include_once $libp.'lang/english/agenda.inc.php';
- include_once $libp.'lang/'.$language_interface.'/agenda.inc.php';
- include_once $libp.'lang/english/course_description.inc.php';
- include_once $libp.'lang/'.$language_interface.'/course_description.inc.php';
- include_once $libp.'lang/english/resourcelinker.inc.php';
- include_once $libp.'lang/'.$language_interface.'/resourcelinker.inc.php';
- include_once $libp.'lang/english/learnpath.inc.php';
- include_once $libp.'lang/'.$language_interface.'/learnpath.inc.php';
- include_once $libp.'lang/english/exercice.inc.php';
- include_once $libp.'lang/'.$language_interface.'/exercice.inc.php';
- include_once '../resourcelinker/resourcelinker.inc.php';
- $LPname = display_addedresource_link_in_learnpath($item_type, $item_id, '', $id, 'builder', 'nolink');
- $expcontent = "<!--
- This is an exported file from Chamilo Learning Path belonging to a Scorm compliant content package.
- Do not modify or replace individually.
- Export module author : Denes Nagy <darkden@evk.bke.hu>
- -->
- ";
-
- $scocomfiles = "<script type='text/javascript' src='../js/APIWrapper.js'></script>"."<script type='text/javascript' src='../js/SCOFunctions.js'></script>";
- $expcontent .= '<html><head><link rel="stylesheet" href="../css/default.css" type="text/css" media="screen,projection" />'.$scocomfiles.'</head><body>';
- $donebutton .= "<script type='text/javascript'>
- /* <![CDATA[ */
- loadPage();
- var studentName = '!';
- var lmsStudentName = doLMSGetValue( 'cmi.core.student_name' );
- if ( lmsStudentName != '' )
- {
- studentName = ' ' + lmsStudentName + '!';
- }
- /* ]]> */
- </script>
- <br /><br />
- <form><input type=\"hidden\" name=\"SQMSESSID\" value=\"36812c2dea7d8d6e708d5e6a2f09b0b9\" />
- <table cols='3' width='100%' align='center'>
- <tr>
- <td align='middle'><input type = 'button' value = ' ".$langDone." ' onclick = \"javascript: doQuit('completed');\" id='button2' name='button2'></td>
- </tr>
- </table>
- </form>";
-
- switch ($item_type) {
-
- case 'Agenda':
-
- $TABLEAGENDA = Database :: get_course_table(TABLE_AGENDA);
- $sql = "SELECT * FROM ".$TABLEAGENDA." where c_id = $course_id AND (id=$item_id)";
- $result = Database::query($sql);
-
- $expcontent .= "<table class=\"data_table\" >";
- $barreMois = '';
-
- while ($myrow = Database::fetch_array($result)) {
- $start_date_local = api_get_local_time($myrow['start_date'], null, date_default_timezone_get());
-
- if ($barreMois != api_format_date($start_date_local, "%m")) {
-
- $barreMois = api_format_date($start_date_local, "%m");
-
- $expcontent .= "<tr><td id=\"title\" colspan=\"2\" class=\"month\" valign=\"top\">".api_format_date($start_date_local, "%B %Y")."</td></tr>";
- }
-
- $db_date = (int) api_format_date($start_date_local, "%d");
- if ($_GET['day'] != $db_date) {
-
- $expcontent .= "<tr><td class=\"data\" colspan='2'>";
- } else {
-
- $expcontent .= "<tr><td class=\"datanow\" colspan='2'>";
- }
-
- $expcontent .= "<a name=\"".$db_date."\"></a>";
-
- $expcontent .= api_format_date($start_date_local);
-
- if ($myrow['duration'] == '') {
- $expcontent .= "<br />";
- } else {
- $expcontent .= " / ".$langLasting." ".$myrow['duration']."<br />";
- }
-
- $expcontent .= $myrow['title'];
- $expcontent .= "</td></tr>";
-
- $content = $myrow['content'];
-
- $content = make_clickable($content);
- $content = text_filter($content);
-
- $expcontent .= "<tr><td class=\"text\" colspan='2'>";
- $expcontent .= $content;
- $expcontent .= "</td></tr>";
-
-
-
- }
-
- $expcontent .= "<tr></table>";
- break;
-
- case 'Ad_Valvas':
-
- $tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
- $sql = "SELECT * FROM $tbl_announcement WHERE c_id = $course_id AND id='$item_id'";
- $result = Database::query($sql);
-
- $expcontent .= "<table class=\"data_table\">";
-
- while ($myrow = Database::fetch_array($result)) {
-
- $content = $myrow[1];
-
-
- $content = make_clickable($content);
- $content = text_filter($content);
-
- $last_post_datetime = $myrow['end_date'];
- list ($last_post_date, $last_post_time) = split(' ', $last_post_datetime);
- list ($year, $month, $day) = explode('-', $last_post_date);
- list ($hour, $min) = explode(':', $last_post_time);
- $announceDate = mktime($hour, $min, 0, $month, $day, $year);
-
- if ($announceDate > $_SESSION['user_last_login_datetime']) {
- $colorBecauseNew = " color=\"red\" ";
- } else {
- $colorBecauseNew = ' ';
- }
-
- $expcontent .= "<tr>\n"."<td class=\"cell_header\">\n"."<font ".$colorBecauseNew.">".$langPubl." : ".api_convert_and_format_date($last_post_datetime, null, date_default_timezone_get())."</font>\n"."</td>\n"."</tr>\n"."<tr>\n"."<td>\n".$content."</td>\n"."</tr>\n";
- }
-
- $expcontent .= "</table>";
- break;
-
- case 'Course_description':
-
- $tbl_course_description = Database :: get_course_table(TABLE_COURSE_DESCRIPTION);
- $result = Database::query("SELECT id, title, content FROM ".$tbl_course_description." WHERE c_id = $course_id ORDER BY id");
-
- if (Database::num_rows($result)) {
-
- $expcontent .= "<hr noshade=\"noshade\" size=\"1\" />";
-
- while ($row = Database::fetch_array($result)) {
-
- $expcontent .= "<h4>".$row['title']."</h4>";
-
- $content = make_clickable(nl2br($row['content']));
- $content = text_filter($content);
-
- $expcontent .= $content;
- }
- } else {
-
- $expcontent .= "<br /><h4>$langThisCourseDescriptionIsEmpty</h4>";
- }
- break;
-
- case 'Document':
-
- $tbl_document = Database::get_course_table(TABLE_DOCUMENT);
- $sql_query = "SELECT * FROM $tbl_document WHERE c_id = $course_id AND id=$item_id";
- $sql_result = Database::query($sql_query);
- $myrow = Database::fetch_array($sql_result);
-
- $orig = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document'.$myrow['path'];
-
- $pathname = explode('/', $myrow['path']);
- $last = count($pathname) - 1;
- $filename = 'data/'.$filename.$pathname[$last];
- $copyneeded = true;
-
-
- $extension = explode('.', $pathname[$last]);
-
-
-
-
- if (preg_match('/.*(\.htm(l)?)$/i', $pathname[$last])) {
-
-
-
-
-
-
-
- $file = file_get_contents($orig);
-
-
- $match = GetSRCTags($orig);
-
- for ($i = 0; $i < count($match); $i ++) {
-
- list ($key, $srctag) = each($match);
- $src = $srctag;
-
- if (stristr($src, 'http') === false) {
-
-
- $src = urldecode($src);
-
- $src = preg_replace('/^\.\//', '', $src);
-
- $src = str_replace('mp3player.swf?son=', '', $src);
-
- $src = str_replace('?0', '', $src);
-
-
-
-
-
- $source = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document'.dirname($myrow['path']).'/'.$src;
- $dest = $expdir.'/data/'.$src;
-
- rcopy($source, $dest);
- }
- }
-
-
-
- if ($add_scorm_communications === true) {
- if ($bodyclose = strpos($file, '</body>')) {
- $file = substr_replace($file, $scocomfiles.$donebutton, $bodyclose, 7);
- } elseif ($htmlclose = strpos($file, '</html>')) {
- $file = substr_replace($file, $scocomfiles.$donebutton, $htmlclose, 7);
- $file .= '</html>';
- } else {
- $file .= $scocomfiles.$donebutton;
- }
- }
-
-
- $filename = str_replace('.htm', $id.'.htm', $filename);
-
-
- exporttofile($filename, $LPname, $id, $file);
-
- $copyneeded = false;
- }
-
- if ($copyneeded) {
- copy($orig, $expdir.'/'.$filename);
- $circle1_files[0][] = $filename;
- $circle1_files[1][] = $LPname;
- $circle1_files[2][] = $id;
- }
-
- return;
-
- case 'Introduction_text':
-
- $TBL_INTRO = Database :: get_course_tool_intro_table();
-
-
- $result = Database::query("SELECT * FROM ".$TBL_INTRO." WHERE c_id = $course_id AND id='course_homepage'");
-
- $myrow = Database::fetch_array($result);
- $intro = $myrow['intro_text'];
-
- $expcontent .= '<br />'.$intro;
- break;
-
- case 'HotPotatoes':
-
- $tbl_document = Database::get_course_table(TABLE_DOCUMENT);
- $result = Database::query("SELECT * FROM $tbl_document WHERE c_id = $course_id AND id=$item_id");
- $myrow = Database::fetch_array($result);
-
- $testfile = api_get_path(SYS_COURSE_PATH).$_course['path']."/document".urldecode($myrow['path']);
-
- $content = file_get_contents($testfile);
-
- $pathname = explode('/', $myrow['path']);
- $last = count($pathname) - 1;
- $filename = 'data/'.$filename.$pathname[$last];
-
-
- $match = GetSRCTags($testfile);
-
- foreach ($match as $src) {
-
- if (stristr($src, 'http') === false) {
-
-
- $src = urldecode($src);
- $src = str_replace('./', '', $src);
-
- $src = str_replace('mp3player.swf?son=', '', $src);
-
- $src = str_replace('?0', '', $src);
-
-
-
-
-
- $source = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document'.dirname($myrow['path']).'/'.$src;
- $dest = $expdir.'/data/'.$src;
-
- rcopy($source, $dest);
- }
- }
-
- $closewindow = "<html><head><link rel='stylesheet' type='text/css' href='../css/default.css'></head><body>"."<br /><div class='message'>$langHotPotatoesFinished</div></body></html>";
-
-
-
- $mit = "function Finish(){";
- $js_content = "var SaveScoreVariable = 0; // This variable is included by Chamilo LP export\n"."function mySaveScore() // This function is included by Chamilo LP export\n"."{\n"." if (SaveScoreVariable==0)\n"." {\n"." SaveScoreVariable = 1;\n".
-
- " exitPageStatus = true;\n"." computeTime();\n"." doLMSSetValue( 'cmi.core.score.raw', Score );\n"." doLMSSetValue( 'cmi.core.lesson_status', 'completed' );\n"." doLMSCommit();\n"." doLMSFinish();\n".
-
-
- " }\n"."}\n"."function Finish(){\n"." mySaveScore();";
- $start = "<script type='text/javascript'> loadPage(); </script>";
-
- $content = str_replace($mit, $js_content, $content);
-
- $content = str_replace("</script>", "</script>".$scocomfiles.$start, $content);
-
-
- $filename = str_replace('.htm', $id.'.htm', $filename);
- exporttofile($filename, $LPname, $id, $content);
- return;
-
- case 'Exercise':
-
- $expcontent .= export_exercise($item_id);
- break;
-
- case 'Post':
-
- $tbl_posts =Database::get_course_table(TABLE_FORUM_POST);
- $tbl_posts_text =Database::get_course_table(TOOL_FORUM_POST_TEXT_TABLE);
- $result = Database::query("SELECT * FROM $tbl_posts where c_id = $course_id AND post_id=$item_id");
- $myrow = Database::fetch_array($result);
-
- $sql_titel = "SELECT * FROM $tbl_posts_text WHERE c_id = $course_id AND post_id=".$myrow['post_id'];
- $result_titel = Database::query($sql_titel);
- $myrow_titel = Database::fetch_array($result_titel);
- $posternom = $myrow['nom'];
- $posterprenom = $myrow['prenom'];
- $posttime = $myrow['post_time'];
- $posttext = $myrow_titel['post_text'];
- $posttitle = $myrow_titel['post_title'];
- $posttext = str_replace('"', "'", $posttext);
-
- $expcontent .= "<table border='0' cellpadding='3' cellspacing='1' width='100%'>
- <tr>
- <td colspan='2' bgcolor='#e6e6e6'><b>$posttitle</b><br />$posttext</td>
- </tr>
- <tr>
- <td colspan='2'></td>
- </tr>
- <tr>
- <td bgcolor='#cccccc' align='left'>$lg_author : $posterprenom $posternom</td>
- <td align='right' bgcolor='#cccccc'>$lg_date : $posttime</td>
- </tr>
- <tr><td colspan='2' height='10'></td></tr>
- </table>";
- break;
-
- case 'Forum':
- case 'Thread':
- case 'Dropbox':
- case 'Assignments':
- case 'Groups':
- case 'Users':
-
- $langItemMissing1 = "There was a ";
- $langItemMissing2 = "page (step) here in the original Chamilo Learning Path.";
- $expcontent .= "<div class='message'>$langItemMissing1 $item_type $langItemMissing2</div>";
- break;
-
- case 'Link _self':
- case 'Link _blank':
-
- $TABLETOOLLINK = Database :: get_course_link_table();
- $result = Database::query("SELECT * FROM $TABLETOOLLINK WHERE c_id = $course_id AND id=$item_id");
- $myrow = Database::fetch_array($result);
- $thelink = $myrow['url'];
-
- if ($item_type == 'Link _blank')
- {
- $target = '_blank';
- }
-
- $expcontent .= "<a href='$thelink?SQMSESSID=36812c2dea7d8d6e708d5e6a2f09b0b9' target='".$target."'>$LPname</a>";
-
- $item_type = 'Link';
-
-
-
- break;
- }
-
-
- if ($item_type != 'Exercise' and ($add_scorm_communications === true)) {
- $expcontent .= $donebutton;
- }
-
- $expcontent .= "</body></html>";
-
- $filename = $item_type.$id.".htm";
-
- exporttofile('data/'.$filename, $LPname, $id, $expcontent);
- }
- function exportdescription($id, $item_type, $description) {
- global $expdir;
- $filename = $item_type.$id.'.desc';
- $expcontent = $description;
- exporttofile($expdir.$filename, 'description_of_'.$item_type.$id, 'description_of_item_'.$id, $expcontent);
- }
- function deldir($dir) {
- $dh = opendir($dir);
- while ($file = readdir($dh)) {
- if ($file != '.' && $file != '..') {
- $fullpath = $dir.'/'.$file;
- if (!is_dir($fullpath)) {
- unlink($fullpath);
- } else {
- deldir($fullpath);
- }
- }
- }
- closedir($dh);
- if (rmdir($dir)) {
- return true;
- }
- return false;
- }
- function exportSCORM($scormname, $course) {
- global $_course;
-
- $tmpname = api_get_path(SYS_COURSE_PATH).$_course['path'].'/scorm';
- $zipfoldername = $tmpname.$scormname;
- $zipfilename = $zipfoldername.'.zip';
-
- include_once api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php';
- $zip_folder = new PclZip($zipfilename);
- $list = 1;
-
- $list = $zip_folder->create($zipfoldername.'/', PCLZIP_OPT_REMOVE_PATH, $tmpname);
- if ($list == 0) {
-
- }
-
- DocumentManager :: file_send_for_download($zipfilename, false, basename($scormname.'.zip'));
-
- include_once api_get_path(LIBRARY_PATH).'fileManage.lib.php';
- my_delete($zipfilename);
- }
- function xmltagwrite($tagname, $which, $data, $linebreak = 'yes') {
- switch ($which) {
- case 'open':
- $tag = '<'.$tagname;
- $i = 0;
- while ($data[0][$i]) {
- $tag .= ' '.$data[0][$i]."=\"".$data[1][$i]."\"";
- $i ++;
- }
- if ($tagname == 'file') {
- $closing = '/';
- }
- $tag .= $closing.'>';
- if ($linebreak != 'no_linebreak') {
- $tag .= "\n";
- }
- break;
- case 'close':
- $tag = '</'.$tagname.'>';
- if ($linebreak != 'no_linebreak') {
- $tag .= "\n";
- }
- break;
- case 'full':
- $tag = '<'.$tagname;
- $tag .= '>'.$data.'</'.$tagname.'>';
- if ($linebreak != 'no_linebreak') {
- $tag .= "\n";
- }
- break;
- }
- return $tag;
- }
- function createimsmanifest($circle1_files, $learnpath_id) {
- global $_course, $LPname, $expdir, $LPnamesafe;
-
- $tbl_learnpath_main = Database :: get_course_table(TABLE_LEARNPATH_MAIN);
- $tbl_learnpath_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM);
- $tbl_learnpath_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER);
- include_once '../metadata/md_funcs.php';
-
-
- $header = '<?xml version="1.0" encoding="'.api_get_system_encoding().'"?>'."\n<manifest identifier='".$LPnamesafe."' version='1.1'\n xmlns='http://www.imsproject.org/xsd/imscp_rootv1p1p2'\n xmlns:adlcp='http://www.adlnet.org/xsd/adlcp_rootv1p2'\n xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\n xsi:schemaLocation='http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd\n http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd\n http://www.adlnet.org/xsd/adlcp_rootv1p2 adlcp_rootv1p2.xsd'>\n";
- $org .= xmltagwrite('metadata', 'open');
- $org .= ' '.xmltagwrite('schema', 'full', 'ADL SCORM');
- $org .= ' '.xmltagwrite('schemaversion', 'full', '1.2');
- $org .= xmltagwrite('metadata', 'close');
- $defaultorgname = 'default_org';
- $attributes[0][0] = 'default';
- $attributes[1][0] = $defaultorgname;
- $org .= xmltagwrite('organizations', 'open', $attributes);
- $attributes[0][0] = 'identifier';
- $attributes[1][0] = $defaultorgname;
- $org .= ' '.xmltagwrite('organization', 'open', $attributes);
- $org .= ' '.xmltagwrite('title', 'full', $LPname);
-
- $i = 0;
- $course_id = api_get_course_int_id();
-
- $previous_item_id = '00';
- while ($circle1_files[0][$i]) {
-
-
- $sql = "SELECT * FROM $tbl_learnpath_item WHERE c_id = $course_id AND (id=".$circle1_files[2][$i].")";
- $result = Database::query($sql);
- $row = Database::fetch_array($result);
- $parent_item_id = $row['parent_item_id'];
- if ($parent_item_id != $previous_item_id) {
-
- $sql2 = "SELECT * FROM $tbl_learnpath_chapter WHERE c_id = $course_id AND (id=".$parent_item_id.")";
- $result2 = Database::query($sql2);
- $row2 = Database::fetch_array($result2);
- $chapter_name = $row2['chapter_name'];
- $attributes = '';
- $attributes[0][] = 'identifier';
- $attributes[1][] = 'chapter_'.$row2['id'];
- $attributes[0][] = 'isvisible';
- $attributes[1][] = '1';
- if ($previous_item_id != '00') {
- $org .= ' '.xmltagwrite('item', 'close');
- }
- $org .= ' '.xmltagwrite('item', 'open', $attributes);
- $org .= ' '.xmltagwrite('title', 'full', $chapter_name);
- if ($row2['chapter_description'] != '') {
-
- $attributes = '';
- $attributes[0][] = 'identifier';
- $attributes[1][] = 'chapter_'.$row2['id'].'_desc';
- $attributes[0][] = 'isvisible';
- $attributes[1][] = '1';
- $org .= ' '.xmltagwrite('item', 'open', $attributes);
- $org .= ' '.xmltagwrite('title', 'full', ' '.$row2['chapter_description']);
- $org .= ' '.xmltagwrite('item', 'close');
- }
- }
- $previous_item_id = $parent_item_id;
-
- $attributes = '';
- $attributes[0][] = 'identifier';
- $attributes[1][] = 'item_'.$circle1_files[2][$i];
- $attributes[0][] = 'identifierref';
- $attributes[1][] = 'item_ref_'.$circle1_files[2][$i];
- $attributes[0][] = 'isvisible';
- $attributes[1][] = '1';
- $org .= ' '.xmltagwrite('item', 'open', $attributes);
- $org .= ' '.xmltagwrite('title', 'full', $circle1_files[1][$i]);
- if ($row['prereq_id'] != '') {
-
- $attributes = '';
- $attributes[0][] = 'type';
- $attributes[1][] = 'aicc_script';
- $org .= ' '.xmltagwrite('adlcp:prerequisites', 'open', $attributes, 'no_linebreak');
- if ($row['prereq_type'] == 'i') {
- $org .= 'item_'.$row['prereq_id'];
- }
- if ($row['prereq_type'] == 'c') {
- $org .= 'chapter_'.$row['prereq_id'];
- }
- $org .= xmltagwrite('adlcp:prerequisites', 'close', $attributes);
- }
- if ($row['description'] != '') {
-
- $attributes = '';
- $attributes[0][] = 'identifier';
- $attributes[1][] = 'item_'.$circle1_files[2][$i].'_desc';
- $attributes[0][] = 'isvisible';
- $attributes[1][] = '1';
- $org .= ' '.xmltagwrite('item', 'open', $attributes);
- $org .= ' '.xmltagwrite('title', 'full', ' '.$row['description']);
- $org .= ' '.xmltagwrite('item', 'close');
- }
- $mds = new mdstore(true);
- if (($mdt = $mds->mds_get($row['item_type'].'.'.$row['item_id'])))
- if (($mdo = api_strpos($mdt, '<metadata>')) && ($mdc = api_strpos($mdt, '</metadata>')))
- $org .= ' '.api_substr($mdt, $mdo, $mdc - $mdo + 11)."\n";
- $org .= ' '.xmltagwrite('item', 'close');
- $i ++;
- }
- if ($circle1_files) {
- $org .= ' '.xmltagwrite('item', 'close');
- }
- $org .= ' '.xmltagwrite('organization', 'close');
- $org .= xmltagwrite('organizations', 'close');
- $org .= xmltagwrite('resources', 'open');
-
- $i = 0;
- while ($circle1_files[0][$i]) {
- $attributes = '';
- $attributes[0][] = 'identifier';
- $attributes[1][] = 'item_ref_'.$circle1_files[2][$i];
- $attributes[0][] = 'type';
- $attributes[1][] = 'webcontent';
- $attributes[0][] = 'adlcp:scormtype';
- $attributes[1][] = 'sco';
- $attributes[0][] = 'href';
- $attributes[1][] = $circle1_files[0][$i];
- $org .= ' '.xmltagwrite('resource', 'open', $attributes);
- $org .= ' '.xmltagwrite('metadata', 'open');
- $org .= ' '.xmltagwrite('schema', 'full', 'ADL SCORM');
- $org .= ' '.xmltagwrite('schemaversion', 'full', '1.2');
- $org .= ' '.xmltagwrite('metadata', 'close');
- $attributes = '';
- $attributes[0][] = 'href';
- $attributes[1][] = $circle1_files[0][$i];
- $org .= ' '.xmltagwrite('file', 'open', $attributes);
- $org .= ' '.xmltagwrite('resource', 'close');
- $i ++;
- }
- $org .= xmltagwrite('resources', 'close');
- $org .= xmltagwrite('manifest', 'close');
- $manifest = $header.$org;
- exporttofile('imsmanifest.xml', 'Manifest file', '0', $manifest);
- }
- function GetSRCTags($fileName) {
- if (!($fp = fopen($fileName, 'r'))) {
-
- return false;
- }
-
- $contents = fread($fp, filesize($fileName));
- fclose($fp);
- $matches = array();
- $srcList = array();
-
- preg_match_all('/src(\s)*=(\s)*[\'"]([^\'"]*)[\'"]/mi', $contents, $matches);
- foreach ($matches[3] as $match) {
- if (!in_array($match, $srcList)) {
- $srcList[] = $match;
- }
- }
- if (count($srcList) == 0) {
- return false;
- }
- return $srcList;
- }
- function CopyNCreate($source, $dest) {
- if (strcmp($source, $dest) == 0)
- return false;
- $dir = '';
- $tdest = explode('/', $dest);
- for ($i = 0; $i < sizeof($tdest) - 1; $i ++) {
- $dir = $dir.$tdest[$i].'/';
- if (!is_dir($dir))
- if (!mkdir($dir, api_get_permissions_for_new_directories()))
- return false;
- }
- if (!copy($source, $dest))
- return false;
- return true;
- }
- function rcopy($source, $dest) {
-
- if (!file_exists($source)) {
-
- return false;
- }
- if (is_dir($source)) {
-
-
-
- if (strrpos($source, '/') == sizeof($source) - 1) {
- $source = substr($source, 0, size_of($source) - 1);
- }
- if (strrpos($dest, '/') == sizeof($dest) - 1) {
- $dest = substr($dest, 0, size_of($dest) - 1);
- }
- if (!is_dir($dest)) {
- $res = @mkdir($dest, api_get_permissions_for_new_directories());
- if ($res !== false) {
- return true;
- } else {
-
- if (rcopy(substr($source, 0, strrpos($source, '/')), substr($dest, 0, strrpos($dest, '/')))) {
- return @mkdir($dest, api_get_permissions_for_new_directories());
- } else {
- return false;
- }
- }
- }
- return true;
- } else {
-
-
- if (!@ copy($source, $dest)) {
-
- $res = rcopy(dirname($source), dirname($dest));
- if ($res === true) {
-
- return @ copy($source, $dest);
- } else {
- return false;
-
- }
- } else {
-
- return true;
- }
- }
- }
|