public function TincanService::saveTincanPackageInfo in Opigno module 8
Same name and namespace in other branches
- 3.x ActivityTypes/opigno_tincan_activity/src/TincanService.php \Drupal\opigno_tincan_activity\TincanService::saveTincanPackageInfo()
Save tincan package.
Parameters
\Drupal\file\Entity\File $file: File object.
Return value
int Downloaded file $fid.
Overrides TincanServiceInterface::saveTincanPackageInfo
File
- ActivityTypes/
opigno_tincan_activity/ src/ TincanService.php, line 31
Class
- TincanService
- Class TincanService.
Namespace
Drupal\opigno_tincan_activityCode
public function saveTincanPackageInfo(File $file) {
if (!$file) {
return FALSE;
}
// Unzip file.
if (!file_exists(self::getExtractPath($file) . 'tincan.xml')) {
try {
self::unzipPackage($file);
} catch (\Exception $e) {
return $e;
}
}
$package_info = self::getInfoFromExtractedPackage($file);
if ($package_info === FALSE) {
\Drupal::logger('opigno_tincan_activity')
->error('The package does not contain an activity ID or a launch file');
return;
}
// Record data from extracted zip to DB.
$fid = $file
->id();
$activity_id = $package_info['id'];
$launch_filename = $package_info['launch'];
$connection = $this->connection;
try {
$connection
->insert('opigno_tincan_activity_type_properties')
->fields([
'fid' => $fid,
'activity_id' => $activity_id,
'launch_filename' => $launch_filename,
])
->execute();
} catch (\Exception $e) {
return $e;
}
}