Delete documents inside the LP see BT#10567

1.9.x
Julio Montoya 10 years ago
parent d6f63eada2
commit 1e0ee48c16
  1. 57
      main/webservices/lp.php

@ -187,7 +187,7 @@ function WSImportLP($params)
$fileInfo = array( $fileInfo = array(
'tmp_name' => $filePath, 'tmp_name' => $filePath,
'name' => $fileName 'name' => $fileName,
); );
$manifest = $oScorm->import_package($fileInfo, '', $courseInfo); $manifest = $oScorm->import_package($fileInfo, '', $courseInfo);
@ -332,7 +332,7 @@ function WSGetLpList($params)
foreach ($flatList as $id => $lp) { foreach ($flatList as $id => $lp) {
$result[] = array( $result[] = array(
'id' => $id, 'id' => $id,
'name' => $lp['lp_name'] 'name' => $lp['lp_name'],
); );
} }
@ -402,14 +402,16 @@ function WSDeleteLp($params)
); );
$courseInfo = api_get_course_info($courseCode); $courseInfo = api_get_course_info($courseCode);
//$courseId = $courseInfo['real_id']; $courseId = $courseInfo['real_id'];
if (empty($courseInfo)) { if (empty($courseInfo)) {
if ($debug) error_log("Course not found: $courseIdName : $courseIdValue"); if ($debug) error_log("Course not found: $courseIdName : $courseIdValue");
return 'Course not found'; return 'Course not found';
} }
/*$sessionId = 0; $sessionId = 0;
/*
if (!empty($sessionIdName) && !empty($sessionIdValue)) { if (!empty($sessionIdName) && !empty($sessionIdValue)) {
$sessionId = SessionManager::get_session_id_from_original_id( $sessionId = SessionManager::get_session_id_from_original_id(
$sessionIdValue, $sessionIdValue,
@ -427,7 +429,54 @@ function WSDeleteLp($params)
$lp = new learnpath($courseInfo['code'], $lpId, null); $lp = new learnpath($courseInfo['code'], $lpId, null);
if ($lp) { if ($lp) {
if ($debug) error_log("LP deleted $lpId"); if ($debug) error_log("LP deleted $lpId");
$course_dir = $courseInfo['directory'] . '/document';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$base_work_dir = $sys_course_path . $course_dir;
$items = $lp->get_flat_ordered_items_list($lpId, 0, $courseId);
if (!empty($items)) {
/** @var $item learnpathItem */
foreach ($items as $itemId) {
$item = new learnpathItem($itemId, null, $courseId);
if ($item) {
$documentId = $item->get_path();
if ($debug) error_log("lp item id found #$itemId");
$documentInfo = DocumentManager::get_document_data_by_id(
$documentId,
$courseInfo['code'],
false,
$sessionId
);
if (!empty($documentInfo)) {
if ($debug) {
error_log("Document id deleted #$documentId");
}
DocumentManager::delete_document(
$courseInfo,
null,
$base_work_dir,
$sessionId,
$documentId
);
} else {
if ($debug) {
error_log("No document found for id #$documentId");
}
}
} else {
if ($debug) error_log("Document not found #$itemId");
}
}
}
$lp->delete($courseInfo, $lpId, 'remove'); $lp->delete($courseInfo, $lpId, 'remove');
return 1; return 1;
} }

Loading…
Cancel
Save