protected function ParagraphsType::restoreDefaultIcon in Paragraphs 8
Restores the icon file from the default icon value.
Return value
\Drupal\file\FileInterface|bool The icon's file entity or FALSE if no default icon set.
1 call to ParagraphsType::restoreDefaultIcon()
- ParagraphsType::getIconFile in src/
Entity/ ParagraphsType.php - Returns the icon file entity.
File
- src/
Entity/ ParagraphsType.php, line 115
Class
- ParagraphsType
- Defines the ParagraphsType entity.
Namespace
Drupal\paragraphs\EntityCode
protected function restoreDefaultIcon() {
// Default icon data in RFC 2397 format ("data" URL scheme).
if ($this->icon_default && ($icon_data = fopen($this->icon_default, 'r'))) {
// Compose the default icon file destination.
$icon_meta = stream_get_meta_data($icon_data);
// File extension from MIME, only JPG/JPEG, PNG and SVG expected.
list(, $icon_file_ext) = explode('image/', $icon_meta['mediatype']);
// SVG special case.
if ($icon_file_ext == 'svg+xml') {
$icon_file_ext = 'svg';
}
$filesystem = \Drupal::service('file_system');
$icon_upload_path = ParagraphsTypeInterface::ICON_UPLOAD_LOCATION;
$icon_file_destination = $icon_upload_path . $this
->id() . '-default-icon.' . $icon_file_ext;
// Check the directory exists before writing data to it.
$filesystem
->prepareDirectory($icon_upload_path, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
// Save the default icon file.
$icon_file_uri = $filesystem
->saveData($icon_data, $icon_file_destination);
if ($icon_file_uri) {
// Create the icon file entity.
$icon_entity_values = [
'uri' => $icon_file_uri,
'uid' => \Drupal::currentUser()
->id(),
'uuid' => $this->icon_uuid,
'status' => FILE_STATUS_PERMANENT,
];
// Delete existent icon file if it exists.
if ($old_icon = $this
->getFileByUuid($this->icon_uuid)) {
$old_icon
->delete();
}
$new_icon = File::create($icon_entity_values);
$new_icon
->save();
$this
->updateFileIconUsage($new_icon, $old_icon);
return $new_icon;
}
}
return FALSE;
}