Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Deep Learning/CHANGEDB.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,9 @@
$sql[$count][0] = '0.2.02';
$sql[$count][1] = "
";

//v0.3.00
++$count;
$sql[$count][0] = '0.3.00';
$sql[$count][1] = "
";
5 changes: 5 additions & 0 deletions Deep Learning/CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
CHANGELOG
=========

v0.3.00
-------
Added comprehensive file upload tracking system to monitor and manage all file uploads across the system

v0.2.01
-------
Removed deprecated function calls
Expand Down
15 changes: 14 additions & 1 deletion Deep Learning/events_manage_addProcess.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

use Gibbon\Data\Validator;
use Gibbon\Services\Format;
use Gibbon\Contracts\Filesystem\FileHandler;
use Gibbon\Module\DeepLearning\Domain\EventGateway;
use Gibbon\Module\DeepLearning\Domain\EventDateGateway;

Expand Down Expand Up @@ -78,6 +79,7 @@
}

// Move attached file, if there is one
$fileMetaData = null;
if (!empty($_FILES['backgroundImageFile']['tmp_name'])) {
$fileUploader = new Gibbon\FileUploader($pdo, $session);
$fileUploader->getFileExtensions('Graphics/Design');
Expand All @@ -89,12 +91,23 @@

if (empty($data['backgroundImage'])) {
$partialFail = true;
} else {
$fileMetaData = $fileUploader->getFileMetaData($data['backgroundImage']);
}
}

// Create the record
$deepLearningEventID = $eventGateway->insert($data);

// Record file tracking for background image (UL055)
if (!empty($fileMetaData) && !empty($deepLearningEventID)) {
$gibbonFileID = $container->get(FileHandler::class)->recordFileUpload($fileMetaData, 'deepLearningEvent', $deepLearningEventID, 'backgroundImage');

if (empty($gibbonFileID)) {
$partialFail = true;
}
}

$dates = $_POST['dates'] ?? [];
foreach ($dates as $i) {
$data = [
Expand All @@ -108,7 +121,7 @@

$URL .= !$deepLearningEventID
? "&return=error2"
: "&return=success0&editID=$deepLearningEventID";
: ($partialFail ? "&return=success1" : "&return=success0&editID=$deepLearningEventID");

header("Location: {$URL}");
}
23 changes: 22 additions & 1 deletion Deep Learning/events_manage_editProcess.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

use Gibbon\Data\Validator;
use Gibbon\Services\Format;
use Gibbon\Contracts\Filesystem\FileHandler;
use Gibbon\Module\DeepLearning\Domain\EventGateway;
use Gibbon\Module\DeepLearning\Domain\EventDateGateway;

Expand Down Expand Up @@ -87,7 +88,12 @@
exit;
}

// Get old record to check if headImage is deleted
$oldRecord = $eventGateway->getByID($deepLearningEventID);
$fileHandler = $container->get(FileHandler::class);

// Move attached file, if there is one
$fileMetaData = null;
if (!empty($_FILES['backgroundImageFile']['tmp_name'])) {
$fileUploader = new Gibbon\FileUploader($pdo, $session);
$fileUploader->getFileExtensions('Graphics/Design');
Expand All @@ -99,14 +105,29 @@

if (empty($data['backgroundImage'])) {
$partialFail = true;
} else {
$fileMetaData = $fileUploader->getFileMetaData($data['backgroundImage']);
}

} else {
$data['backgroundImage'] = $_POST['backgroundImage'] ?? '';
}

// Update the record
$updated = $eventGateway->update($deepLearningEventID, $data);

// Record file tracking for background image
if (!empty($fileMetaData) && !empty($deepLearningEventID)) {
$gibbonFileID = $fileHandler->recordFileUpload($fileMetaData, 'deepLearningEvent', $deepLearningEventID, 'backgroundImage');

if (empty($gibbonFileID)) {
$partialFail = true;
}
}

// Handle file deletion when user removes background image
if (empty($data['backgroundImage']) && !empty($oldRecord['backgroundImage'])) {
$deleted = $fileHandler->deleteFile('deepLearningEvent', $deepLearningEventID, 'backgroundImage');
}

// Update blocks
$dates = $_POST['dates'] ?? [];
Expand Down
2 changes: 1 addition & 1 deletion Deep Learning/manifest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
$entryURL = "view.php";
$type = "Additional";
$category = 'Learn';
$version = '0.2.02';
$version = '0.3.00';
$author = "Gibbon Foundation";
$url = "https://gibbonedu.org";

Expand Down
15 changes: 13 additions & 2 deletions Deep Learning/unit_manage_addProcess.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

use Gibbon\Services\Format;
use Gibbon\Data\Validator;
use Gibbon\Contracts\Filesystem\FileHandler;
use Gibbon\Module\DeepLearning\Domain\UnitGateway;
use Gibbon\Module\DeepLearning\Domain\UnitTagGateway;
use Gibbon\Module\DeepLearning\Domain\UnitAuthorGateway;
Expand Down Expand Up @@ -78,17 +78,20 @@
}

// Move attached file, if there is one
$fileMetaData = null;
if (!empty($_FILES['headerImageFile']['tmp_name'])) {
$fileUploader = new Gibbon\FileUploader($pdo, $session);
$fileUploader->getFileExtensions('Graphics/Design');

$file = $_FILES['headerImageFile'] ?? null;

// Upload the file, return the /uploads relative path
$data['headerImage'] = $fileUploader->uploadFromPost($file, $data['name']);
$data['headerImage'] = $fileUploader->uploadFromPost($file, $data['name'], true);

if (empty($data['headerImage'])) {
$partialFail = true;
} else {
$fileMetaData = $fileUploader->getFileMetaData($data['headerImage']);
}
}

Expand All @@ -114,6 +117,14 @@
exit;
}

if (!empty($fileMetaData) && !empty($deepLearningUnitID)) {
$gibbonFileID = $container->get(FileHandler::class)->recordFileUpload($fileMetaData, 'deepLearningUnit', $deepLearningUnitID, 'headerImage');

if (empty($gibbonFileID)) {
$partialFail = true;
}
}

// Create the author
$inserted = $unitAuthorGateway->insert([
'deepLearningUnitID' => $deepLearningUnitID,
Expand Down
41 changes: 37 additions & 4 deletions Deep Learning/unit_manage_editProcess.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

use Gibbon\Services\Format;
use Gibbon\Data\Validator;
use Gibbon\FileUploader;
use Gibbon\Contracts\Filesystem\FileHandler;
use Gibbon\Module\DeepLearning\Domain\UnitGateway;
use Gibbon\Module\DeepLearning\Domain\UnitTagGateway;
use Gibbon\Module\DeepLearning\Domain\UnitAuthorGateway;
Expand Down Expand Up @@ -113,6 +113,7 @@
$fileUploader->getFileExtensions('Graphics/Design');

// Move attached file, if there is one
$fileMetaData = null;
if (!empty($_FILES['headerImageFile']['tmp_name'])) {
$file = $_FILES['headerImageFile'] ?? null;

Expand All @@ -121,15 +122,35 @@

if (empty($data['headerImage'])) {
$partialFail = true;
} else {
$fileMetaData = $fileUploader->getFileMetaData($data['headerImage']);
}

} else {
$data['headerImage'] = $_POST['headerImage'] ?? '';
}

// Get old record for file deletion check
$oldRecord = $unitGateway->getByID($deepLearningUnitID);
$fileHandler = $container->get(FileHandler::class);

// Update the record
$updated = $unitGateway->update($deepLearningUnitID, $data);
$partialFail = !$updated;

// Record file tracking for header image
if (!empty($fileMetaData) && !empty($deepLearningUnitID)) {
$gibbonFileID = $fileHandler->recordFileUpload($fileMetaData, 'deepLearningUnit', $deepLearningUnitID, 'headerImage');

if (empty($gibbonFileID)) {
$partialFail = true;
}
}

// Handle file deletion when user removes header image
if (empty($data['headerImage']) && !empty($oldRecord['headerImage'])) {
$deleted = $fileHandler->deleteFile('deepLearningUnit', $deepLearningUnitID, 'headerImage');
}

// Update the authors
$authors = $_POST['authors'] ?? '';
Expand Down Expand Up @@ -210,6 +231,7 @@
'sequenceNumber' => array_search($index, $photoOrder) ?? false,
];

$photoFileMetaData = null;
if (!empty($_FILES['photos']['tmp_name'][$index]['fileUpload'])) {
$file = [
'name' => $_FILES['photos']['name'][$index]['fileUpload'] ?? '',
Expand All @@ -226,6 +248,8 @@
if (empty($photoData['filePath'])) {
$partialFail = true;
continue;
} else {
$photoFileMetaData = $fileUploader->getFileMetaData($photoData['filePath']);
}

if ($photoData['sequenceNumber'] === false) {
Expand All @@ -243,17 +267,26 @@
}

$photoIDs[] = str_pad($deepLearningUnitPhotoID, 12, '0', STR_PAD_LEFT);

// Record file tracking for photo
if (!empty($photoFileMetaData) && !empty($deepLearningUnitPhotoID)) {
$gibbonFileID = $fileHandler->recordFileUpload($photoFileMetaData, 'deepLearningUnitPhoto', $deepLearningUnitPhotoID, 'filePath');

if (empty($gibbonFileID)) {
$partialFail = true;
}
}
}

// Remove photos that have been deleted from the filesystem
$cleanupPhotos = $unitPhotoGateway->selectPhotosNotInList($deepLearningUnitID, $photoIDs)->fetchAll();
foreach ($cleanupPhotos as $photo) {
$unitPhotoGateway->delete($photo['deepLearningUnitPhotoID']);

$photoPath = $session->get('absolutePath').'/'.$photo['filePath'];
if (!empty($photo['filePath']) && file_exists($photoPath)) {
unlink($photoPath);
$fileHandler->deleteFile('deepLearningUnitPhoto', $photo['deepLearningUnitPhotoID'], 'filePath');
}

$unitPhotoGateway->delete($photo['deepLearningUnitPhotoID']);
}

// Update the tags
Expand Down
2 changes: 1 addition & 1 deletion Deep Learning/version.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@
/**
* Sets version information
*/
$moduleVersion = '0.2.02';
$moduleVersion = '0.3.00';
$coreVersion = '28.0.00';