19declare(strict_types=1);
47 $this->webDirectory =
$DIC->filesystem()->web();
48 $this->
logger = $DIC->logger()->otpl();
57 $this->
logger->warning(
'File upload already processed: ' . $e->getMessage());
61 $result = $upload->
getResults()[$tmpname] ??
false;
62 if ($result instanceof
UploadResult && $result->
isOK() && $result->getSize()) {
79 $this->webDirectory->write(
80 self::WEBDIR_PREFIX .
'/' . $this->
settings->getId() .
'.svg',
85 }
catch (Exception
$e) {
86 $this->
logger->warning(
'Error writing svg image from xml: ' . $e->getMessage());
92 if ($this->webDirectory->has(self::WEBDIR_PREFIX .
'/' . $this->settings->getIconIdentifier() .
'.svg')) {
103 $this->webDirectory->copy(
105 self::WEBDIR_PREFIX .
'/' . $this->settings->getId() .
'.svg'
107 }
catch (Exception
$e) {
108 $this->
logger->warning(
'Copying icon failed with message: ' . $e->getMessage());
112 $this->
settings->setIconIdentifier(
"0");
117 public function delete():
void
119 if ($this->webDirectory->has(self::WEBDIR_PREFIX .
'/' . $this->settings->getIconIdentifier() .
'.svg')) {
121 $this->webDirectory->delete(self::WEBDIR_PREFIX .
'/' . $this->
settings->getIconIdentifier() .
'.svg');
122 $this->
settings->setIconIdentifier(
'');
124 }
catch (Exception
$e) {
125 $this->
logger->warning(
'Deleting icon dfailed with message: ' . $e->getMessage());
132 if (!$this->webDirectory->has(self::WEBDIR_PREFIX)) {
134 $this->webDirectory->createDir(self::WEBDIR_PREFIX);
136 $this->
logger->error(
'Creating icon directory failed with message: ' . $e->getMessage());
138 $this->
logger->warning(
'Creating icon directory failed with message: ' . $e->getMessage());
145 if ($this->
settings->getIconIdentifier()) {
147 if ($this->webDirectory->has(self::WEBDIR_PREFIX .
'/' . $this->settings->getIconIdentifier() .
'.svg')) {
148 $writer->
xmlElement(
'icon', [], $this->webDirectory->read(
149 self::WEBDIR_PREFIX .
'/' . $this->settings->getIconIdentifier() .
'.svg'
152 }
catch (Exception
$e) {
153 $this->
logger->warning(
'Export xml failed with message: ' . $e->getMessage());
Indicates general problems with the input or output operations.
The IllegalStateException indicates a wrong state of the object.
Icon handler for didactic template custom icons.
handleUpload(FileUpload $upload, string $tmpname)
toXml(ilXmlWriter $writer)
__construct(ilDidacticTemplateSetting $setting)
copy(ilDidacticTemplateSetting $original)
ilDidacticTemplateSetting $settings
static getWebspaceDir(string $mode="filesystem")
get webspace directory
Component logger with individual log levels by component id.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
getResults()
Returns the results of the processing and moving operation of the uploaded files.
hasUploads()
Return (bool)true if one ore more file-uploads are in the current request, (bool)false if not.
moveOneFileTo(UploadResult $uploadResult, string $destination, int $location=Location::STORAGE, string $file_name='', bool $override_existing=false)
Moves a single File (the attributes, metadata and upload-status of which are contained in UploadResul...
process()
Invokes all preprocessors for each uploaded file in the sequence they got registered.
hasBeenProcessed()
Return (bool)true if the current upload has already been processed.
The filesystem interface provides the public interface for the Filesystem service API consumer.