From 1e0ee48c16ad78c7ca15669c7af9719d99a69d59 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 22 Dec 2015 12:40:07 +0100 Subject: [PATCH] Delete documents inside the LP see BT#10567 --- main/webservices/lp.php | 57 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/main/webservices/lp.php b/main/webservices/lp.php index 8d19be84d8..8c93dbf953 100644 --- a/main/webservices/lp.php +++ b/main/webservices/lp.php @@ -187,7 +187,7 @@ function WSImportLP($params) $fileInfo = array( 'tmp_name' => $filePath, - 'name' => $fileName + 'name' => $fileName, ); $manifest = $oScorm->import_package($fileInfo, '', $courseInfo); @@ -332,7 +332,7 @@ function WSGetLpList($params) foreach ($flatList as $id => $lp) { $result[] = array( 'id' => $id, - 'name' => $lp['lp_name'] + 'name' => $lp['lp_name'], ); } @@ -402,14 +402,16 @@ function WSDeleteLp($params) ); $courseInfo = api_get_course_info($courseCode); - //$courseId = $courseInfo['real_id']; + $courseId = $courseInfo['real_id']; if (empty($courseInfo)) { if ($debug) error_log("Course not found: $courseIdName : $courseIdValue"); return 'Course not found'; } - /*$sessionId = 0; + $sessionId = 0; + + /* if (!empty($sessionIdName) && !empty($sessionIdValue)) { $sessionId = SessionManager::get_session_id_from_original_id( $sessionIdValue, @@ -427,7 +429,54 @@ function WSDeleteLp($params) $lp = new learnpath($courseInfo['code'], $lpId, null); if ($lp) { 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'); + return 1; }