do not display link // This setting should be moved to the platform configuration page in time... $multi_level_learnpath = true; /* ============================================================================== MAIN CODE ============================================================================== */ if ($from_learnpath == 'yes') { //start from clear every time in LearnPath Builder $_SESSION['addedresource'] = null; $_SESSION['addedresourceid'] = null; $_SESSION['addedresourceassigned'] = null; unset ($_SESSION['addedresource']); unset ($_SESSION['addedresourceid']); unset ($_SESSION['addedresourceassigned']); } // Process a new chapter? if (!empty ($_POST['add_chapter']) && !empty ($_POST['title'])) { $title = $_POST['title']; $description = ''; if (!empty ($_POST['description'])) { $description = $_POST['description']; } // get max display_order so far in this parent chapter $sql = "SELECT MAX(display_order) FROM $tbl_learnpath_chapter WHERE learnpath_id = $learnpath_id "." AND parent_chapter_id = $chapter_id"; $res = Database::query($sql); $row = Database::fetch_array($res); $max_temp = $row[0]; $sql = "SELECT MAX(display_order) FROM $tbl_learnpath_item WHERE "." chapter_id = $chapter_id"; $res = Database::query($sql); $row = Database::fetch_array($res); $max_temp2 = $row[0]; if ($max_temp2 > $max_temp) { $order = $max_temp2 +1; } else { $order = $max_temp +1; } $sql = "INSERT INTO $tbl_learnpath_chapter "."(learnpath_id,chapter_name,chapter_description,parent_chapter_id,display_order) "." VALUES "."($learnpath_id, '$title', '$description', $chapter_id, $order )"; $res = Database::query($sql); if ($res !== false) { $title = ''; $description = ''; } } // This if when a external link is submitted if (!empty ($_POST['external_link_submit'])) { $add = true; if ($add_2_links != "niet toevoegen") { // add external link to the links table. $pos = strpos($external_link, 'ttp:'); if ($pos == '') { $external_link = 'http://'.$external_link; } $sql = "INSERT INTO $link_table (url, title, category_id) VALUES ('$external_link','$external_link','$add_2_links')"; $result = Database::query($sql); $addedresource[] = "Link"; $addedresourceid[] = Database::insert_id(); $_SESSION['addedresource'] = $addedresource; $_SESSION['addedresourceid'] = $addedresourceid; } else { // do not add external link to the links table $addedresource[] = "Externallink"; $addedresourceid[] = $external_link; $_SESSION['addedresource'] = $addedresource; $_SESSION['addedresourceid'] = $addedresourceid; } } // loading the session variables into local array $addedresource = $_SESSION['addedresource']; $addedresourceid = $_SESSION['addedresourceid']; // This is when a resource was added to the session if ($add) { // adding the new variable to the local array if (empty ($_POST['external_link_submit'])) { //that case is already arranged, see upwards $addedresource[] = $content; $addedresourceid[] = $add; } $addedresourceassigned[] = 0; // loading the local array into the session variable $_SESSION['addedresource'] = $addedresource; $_SESSION['addedresourceid'] = $addedresourceid; //--------------------------------------- //we assign to chapters immediately ! //--------------------------------------- $resource_added = false; if ($from_learnpath == 'yes') { $i = 0; //calculating the last order of the items of this chapter $sql = "SELECT MAX(display_order) FROM $tbl_learnpath_item WHERE chapter_id=$chapter_id"; $result = Database::query($sql); if(Database::num_rows($result)==0){ $lastorder_item = 0; }else{ $row = Database::fetch_array($result); $lastorder_item = ($row[0]); } $sql = "SELECT MAX(display_order) FROM $tbl_learnpath_chapter WHERE parent_chapter_id=$chapter_id"; $result = Database::query($sql); if(Database::num_rows($result)==0){ $lastorder_chapter = 0; }else{ $row = Database::fetch_array($result); $lastorder_chapter = ($row[0]); } $lastorder = ($lastorder_chapter>$lastorder_item?$lastorder_chapter+1:$lastorder_item+1); foreach ($addedresource as $addedresource_item) { // in the case we added a chapter, add this into the chapters list with the correct parent_id if ($addedresource_item == "Chap") { $sql = "INSERT INTO $tbl_learnpath_chapter ("."'learnpath_id','chapter_name','chapter_description','parent_chapter_id','display_order'".") VALUES (".$learnpath_id.",'".$learnpath_chapter_name."','".$learnpath_chapter_description."',".$chapter_id.",".$lastorder.")"; Database::query($sql); } if (!$addedresourceassigned[$i]) { //not to assign it twice if ($addedresource_item == "Ass") { $addedresource_item = "Assignments"; } if ($addedresource_item == "Drop") { $addedresource_item = "Dropbox"; } if ($addedresource_item == "Intro") { $addedresource_item = "Introduction_text"; } if ($addedresource_item == "Course_desc") { $addedresource_item = "Course_description"; } if ($addedresource_item == "Group") { $addedresource_item = "Groups"; } if ($addedresource_item == "User") { $addedresource_item = "Users"; } if ($target == '') { $target = '_self'; } if ($addedresource_item == 'Link') { $addedresource_item .= ' '.$target; } $sql = "INSERT INTO $tbl_learnpath_item (id, chapter_id, item_type, item_id, display_order) VALUES ( '$autoid', '$chapter_id', '$addedresource_item','$addedresourceid[$i]','".$lastorder."')"; $result = Database::query($sql); $addedresourceassigned[$i] = 1; $resource_added = true; } $i ++; $lastorder ++; } //$_SESSION['addedresource']=null; //$_SESSION['addedresourceid']=null; // cleaning up the session once again $_SESSION['addedresource'] = null; $_SESSION['addedresourceid'] = null; $_SESSION['addedresourceassigned'] = null; unset ($_SESSION['addedresource']); unset ($_SESSION['addedresourceid']); unset ($_SESSION['addedresourceassigned']); } } /* ============================================================================== BREADCRUMBS This part is to allow going back to the tool where you came from in a previous version I used the table tool_list, but since the forum can access the resource_linker from two different pages (newtopic.php and editpost.php) and this is different from the link field in tool_list, I decide to hardcode this stuff here. By doing this, you can easily control which pages can access the toollinker and which not. ============================================================================== */ if ($_GET["source_id"]) { switch ($_GET["source_id"]) { case "1" : // coming from Agenda if ($action == "edit") { $url = "../calendar/agenda.php?action=edit&id=49&originalresource=$originalresource"; } elseif ($action == "add") { $url = "../calendar/agenda.php?action=add&originalresource=$originalresource"; } else { $url = "../calendar/agenda.php?action=add"; } $originaltoolname = get_lang("Agenda"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; case "2" : // coming from forum: new topic $url = "../phpbb/newtopic.php?forum=$source_forum&md5=$md5"; $originaltoolname = get_lang("ForumAddNewTopic"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; case "3" : // coming from forum: edit topic $url = "../phpbb/editpost.php?post_id=$post_id&topic=$topic&forum=$forum&md5=$md5&originalresource=no"; $originaltoolname = get_lang("ForumEditTopic"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; case "4" : // coming from exercises: edit topic $url = "../exercice/admin.php?modifyAnswers=$modifyAnswers"; $originaltoolname = get_lang("ExerciseAnswers"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; case "5" : // coming from learning path $from_learnpath = 'yes'; Session::write('from_learnpath',$from_learnpath); break; case "6" : // coming from forum: reply $url = "../phpbb/reply.php?topic=$topic&forum=$forum&parentid=$parentid"; $url = $_SESSION['origintoolurl']; $originaltoolname = get_lang("ForumReply"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; /*************************************** add Frederik.Vermeire@pandora.be *************************************/ case "7" : // coming from Ad_Valvas if ($action == "edit") { $url = "../announcements/announcements.php?action=edit&id=49&originalresource=$originalresource"; } elseif ($action == "add") { $url = "../announcements/announcements.php?action=add&originalresource=$originalresource"; } else { $url = "../announcements/announcements.php?action=add"; } $originaltoolname = get_lang("AdValvas"); $breadcrumbelement = array ("url" => $url, "name" => $originaltoolname); session_unregister('from_learnpath'); unset ($from_learnpath); break; /*************************************** end add Frederik.Vermeire@pandora.be *********************************/ } // We do not come from the learning path. We store the name of the tool & url in a session. if ($from_learnpath != 'yes') { if (!$_SESSION["origintoolurl"] OR $_SESSION["origintoolurl"]<>$interbreadcrumb["url"]) { $_SESSION["origintoolurl"] = $breadcrumbelement["url"]; $_SESSION["origintoolname"] = $breadcrumbelement["name"]; $interbreadcrumb = ""; } } } // This part of the code is the actual breadcrumb mechanism. If we do not come from the learning path we use // the information from the session. Else we use the information of the learningpath itself. if ($from_learnpath != 'yes') { $nameTools = get_lang('AddResource'); $interbreadcrumb[] = array ("url" => $_SESSION["origintoolurl"], "name" => $_SESSION["origintoolname"]); } else { $learnpath_select_query = " SELECT * FROM $tbl_learnpath_main WHERE learnpath_id=$learnpath_id"; $sql_result = Database::query($learnpath_select_query); $therow = Database::fetch_array($sql_result); $learnpath_chapter_query = " SELECT * FROM $tbl_learnpath_chapter WHERE (learnpath_id = '$learnpath_id' and id = '$chapter_id')"; $sql_result = Database::query($learnpath_chapter_query); $therow2 = Database::fetch_array($sql_result); $from_learnpath = 'yes'; session_register('from_learnpath'); $interbreadcrumb[] = array ("url" => "../scorm/scormdocument.php", "name" => get_lang('LearningPath')); $interbreadcrumb[] = array ("url" => "../learnpath/learnpath_handler.php?learnpath_id=$learnpath_id", "name" => "{$therow['learnpath_name']}"); $interbreadcrumb[] = array ("url" => api_get_self()."?action=$action&learnpath_id=$learnpath_id&chapter_id=$chapter_id&originalresource=no", "name" => "{$therow2['chapter_name']}"); } $htmlHeadXtra[] = ''; Display :: display_header($nameTools); echo "
|
";
}
//echo " "; // Agenda items --> if ($content == "Agenda") { $TABLEAGENDA = Database::get_course_table(TABLE_AGENDA); $TABLE_ITEM_PROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY); $sql="SELECT agenda.*, toolitemproperties.* FROM ".$TABLEAGENDA." agenda, ".$TABLE_ITEM_PROPERTY." toolitemproperties WHERE agenda.id = toolitemproperties.ref AND toolitemproperties.tool='".TOOL_CALENDAR_EVENT."' AND toolitemproperties.to_group_id='0' AND toolitemproperties.visibility='1'"; $result = Database::query($sql); while ($myrow = Database::fetch_array($result)) { echo "
"; } } // end if ($_GET["resource"]=="Agenda") /* ----------------------------------------------------------- chapter ----------------------------------------------------------- */ if ($content == "chapter") { echo ' "; } /* ----------------------------------------------------------- Documents ----------------------------------------------------------- */ // We show the documents in the following cases // 1. the link to add documenets in the resource linker was clicked // 2. we come to the resource linker for the first time (documents = default). In this case it can only be shown if // a. one is a teacher (documents can be shown even if the tool is inactive) // b. one is a student AND the documents tool is active. Student cannot add documents if the documents tool is inactive (teacher can do this) if ($content == "Document" OR (empty($content) AND (api_is_allowed_to_edit() OR in_array(TOOL_DOCUMENT,$active_modules))) AND !$_GET['showresources']) { // setting variables for file locations $baseServDir = $_configuration['root_sys']; $courseDir = $_course['path']."/document"; $baseWorkDir = $baseServDir.$courseDir; // showing the link to move one folder up (when not in the root folder) show_folder_up(); // showing the blue bar with the path in it when we are not in the root if (get_levels($folder)) { echo "
"; } /* ----------------------------------------------------------- Ad Valvas ----------------------------------------------------------- */ if ($content == "Ad_Valvas") { $tbl_announcement = Database :: get_course_table(TABLE_ANNOUNCEMENT); $sql = "SELECT * FROM ".$tbl_announcement." a, ".$item_property_table." i WHERE i.tool = '".TOOL_ANNOUNCEMENT."' AND a.id=i.ref AND i.visibility='1' AND i.to_group_id = 0 AND i.to_user_id IS NULL ORDER BY a.display_order ASC"; $result = Database::query($sql); while ($myrow = Database::fetch_array($result)) { echo "
"; showorhide_addresourcelink($content, $myrow["id"]); echo " "; } } // showing the categories and the links in it. $sqlcategories = "SELECT * FROM ".$tbl_categories." ORDER by display_order DESC"; $resultcategories = Database::query($sqlcategories) or die; while ($myrow = @ Database::fetch_array($resultcategories)) { $sql_links = "SELECT * FROM ".$link_table." l, ".$item_property_table." ip WHERE l.category_id='".$myrow["id"]."' AND ip.tool = '".TOOL_LINK."' AND l.id=ip.ref AND ip.visibility='1' ORDER BY l.display_order DESC"; echo "
"; showorhide_addresourcelink($content, $myrow["id"]); echo " "; } } } /* ----------------------------------------------------------- Exercise ----------------------------------------------------------- */ if (($content == "Exercise") or ($content == "HotPotatoes")) { $TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST); $result = Database::query("SELECT * FROM ".$TBL_EXERCICES." WHERE active='1' ORDER BY id ASC"); while ($myrow = Database::fetch_array($result)) { echo "".$myrow["title"]." "; showorhide_addresourcelink($content, $myrow["id"]); echo " "; } if ($from_learnpath == 'yes') { $uploadPath = "/HotPotatoes_files"; $TBL_DOCUMENT = Database::get_course_table(TABLE_DOCUMENT); $documentPath = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document'; $sql = "SELECT * FROM ".$TBL_DOCUMENT." WHERE (path LIKE '%htm%' OR path LIKE '%html%') AND path LIKE '".$uploadPath."/%/%' ORDER BY id ASC"; $result = Database::query($sql); while ($myrow = Database::fetch_array($result)) { $path = $myrow["path"]; echo "".GetQuizName($path, $documentPath)." "; showorhide_addresourcelink("HotPotatoes", $myrow["id"]); echo " "; } } } /* ----------------------------------------------------------- External Links ----------------------------------------------------------- */ if ($content == "Externallink") { ?> ".get_lang('AddAssignmentPage').""; } /* ----------------------------------------------------------- Dropbox ----------------------------------------------------------- */ if ($content == "Dropbox") { echo "".get_lang('DropboxAdd').""; } /* ----------------------------------------------------------- Introduction text ----------------------------------------------------------- */ if ($content == "Introduction_text") { echo "".get_lang('IntroductionTextAdd').""; } /* ----------------------------------------------------------- Course description ----------------------------------------------------------- */ if ($content == "Course_description") { echo "".get_lang('CourseDescriptionAdd').""; } /* ----------------------------------------------------------- Groups ----------------------------------------------------------- */ if ($content == "Groups") { echo "".get_lang('$GroupsAdd').""; } /* ----------------------------------------------------------- Users ----------------------------------------------------------- */ if ($content == "Users") { echo "".get_lang('UsersAdd').""; } if ($showresources) { //echo " ".get_lang('ResourceAdded').""; display_resources(1); } echo " |