Don't show links if the category was deleted see BT#9046

1.9.x
Julio Montoya 11 years ago
parent c532fa67b4
commit 36bf874620
  1. 30
      main/inc/lib/link.lib.php
  2. 4
      main/link/link.php
  3. 28
      main/newscorm/learnpath.class.php

@ -798,7 +798,7 @@ function makedefaultviewcode($locatie)
* @todo add the changing of the visibility of a course
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*/
function change_visibility($id, $scope)
function change_visibility_link($id, $scope)
{
global $_course, $_user;
if ($scope == TOOL_LINK) {
@ -825,8 +825,8 @@ function change_visibility($id, $scope)
/**
* Generate SQL to select all the links categories in the current course and
* session
* @param int Course ID
* @param int Session ID
* @param int $courseId
* @param int $sessionId
* @return string SQL query (to be executed)
*/
function getLinkCategories($courseId, $sessionId)
@ -838,19 +838,37 @@ function getLinkCategories($courseId, $sessionId)
$sessionCondition = api_get_session_condition($sessionId, true, true);
$sql = "SELECT *, linkcat.id
FROM $tblLinkCategory linkcat,
$tblItemProperty itemproperties
FROM $tblLinkCategory linkcat
INNER JOIN $tblItemProperty itemproperties
ON (linkcat.id = itemproperties.ref AND linkcat.c_id = itemproperties.c_id)
WHERE
itemproperties.tool = '" . TOOL_LINK_CATEGORY . "' AND
linkcat.id = itemproperties.ref AND
(itemproperties.visibility = '0' OR itemproperties.visibility = '1')
$sessionCondition AND
linkcat.c_id = " . $courseId . " AND
itemproperties.c_id = " . $courseId . "
ORDER BY linkcat.display_order DESC";
return Database::query($sql);
}
/**
* Get links categories in the current course and
* session
* @param int $courseId
* @param int $sessionId
* @return array
*/
function getLinkCategoriesResult($courseId, $sessionId)
{
$result = getLinkCategories($courseId, $sessionId);
$list = array();
if (Database::num_rows($result)) {
$list = Database::store_result($result, 'ASSOC');
}
return $list;
}
/**
* Displays all the links of a given category.
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University

@ -156,10 +156,10 @@ if (isset($_GET['action'])) {
editlinkcategory('category'); // Here we edit a category
break;
case 'visible':
change_visibility($_GET['id'], $_GET['scope']); // Here we edit a category
change_visibility_link($_GET['id'], $_GET['scope']); // Here we edit a category
break;
case 'invisible':
change_visibility($_GET['id'], $_GET['scope']); // Here we edit a category
change_visibility_link($_GET['id'], $_GET['scope']); // Here we edit a category
break;
}
Security::clear_token();

@ -8442,13 +8442,15 @@ class learnpath
*/
public function get_links()
{
require_once api_get_path(LIBRARY_PATH).'link.lib.php';
$course_id = api_get_course_int_id();
$tbl_link = Database::get_course_table(TABLE_LINK);
$session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id);
$sql = "SELECT id, title FROM $tbl_link
$sql = "SELECT id, title, category_id FROM $tbl_link
WHERE c_id = ".$course_id." $condition_session
ORDER BY title ASC";
$res_link = Database::query($sql);
@ -8460,8 +8462,30 @@ class learnpath
$return .= '</li>';
$course_info = api_get_course_info();
$linkCategories = getLinkCategoriesResult($course_id, $session_id);
$categoryIdList = array();
if (!empty($linkCategories)) {
foreach ($linkCategories as $categoryInfo) {
$categoryIdList[] = $categoryInfo['id'];
}
}
while ($row_link = Database :: fetch_array($res_link)) {
$item_visibility = api_get_item_visibility($course_info, TOOL_LINK, $row_link['id'], $session_id);
// Check if category exists if not then consider as deleted.
if (!empty($row_link['category_id'])) {
$categoryId = $row_link['category_id'];
if (!in_array($categoryId, $categoryIdList)) {
continue;
}
}
$item_visibility = api_get_item_visibility(
$course_info,
TOOL_LINK,
$row_link['id'],
$session_id
);
if ($item_visibility != 2) {
$return .= '<li class="lp_resource_element" data_id="'.$row_link['id'].'" data_type="'.TOOL_LINK.'" title="'.$row_link['title'].'" >';
$return .= '<a class="moved" href="#">';

Loading…
Cancel
Save