ILIAS  trunk Revision v12.0_alpha-1329-g1094ddb0c33
ILIAS\ResourceStorage\Manager\ContainerManager Class Reference
+ Inheritance diagram for ILIAS\ResourceStorage\Manager\ContainerManager:
+ Collaboration diagram for ILIAS\ResourceStorage\Manager\ContainerManager:

Public Member Functions

 containerFromUpload (UploadResult $result, ResourceStakeholder $stakeholder, ?string $revision_title=null)
 
 containerFromStream (FileStream $stream, ResourceStakeholder $stakeholder, ?string $revision_title=null)
 
 createDirectoryInsideContainer (ResourceIdentification $container, string $path_inside_container)
 
 removePathInsideContainer (ResourceIdentification $container, string $path_inside_container)
 
 addUploadToContainer (ResourceIdentification $container, UploadResult $result, string $parent_path_inside_container,)
 
 addStreamToContainer (ResourceIdentification $container, FileStream $stream, string $path_inside_container,)
 
- Public Member Functions inherited from ILIAS\ResourceStorage\Manager\BaseManager
 __construct (protected ResourceBuilder $resource_builder, protected CollectionBuilder $collection_builder, protected RepositoryPreloader $preloader)
 Manager constructor. More...
 
 publish (ResourceIdentification $rid)
 @description Publish a resource. More...
 
 unpublish (ResourceIdentification $rid)
 @description Unpublish a resource. More...
 
 find (string $identification)
 
 getResource (ResourceIdentification $i)
 
 remove (ResourceIdentification $identification, ResourceStakeholder $stakeholder)
 
 clone (ResourceIdentification $identification)
 
 appendNewRevision (ResourceIdentification $identification, UploadResult $result, ResourceStakeholder $stakeholder, ?string $revision_title=null, bool $draft=false)
 @description Append a new revision from an UploadResult. More...
 
 replaceWithUpload (ResourceIdentification $identification, UploadResult $result, ResourceStakeholder $stakeholder, ?string $revision_title=null)
 
 appendNewRevisionFromStream (ResourceIdentification $identification, FileStream $stream, ResourceStakeholder $stakeholder, ?string $revision_title=null, bool $draft=false)
 @description Append a new revision from a stream. More...
 
 replaceWithStream (ResourceIdentification $identification, FileStream $stream, ResourceStakeholder $stakeholder, ?string $revision_title=null)
 
 getCurrentRevision (ResourceIdentification $identification)
 
 getCurrentRevisionIncludingDraft (ResourceIdentification $identification)
 
 updateRevision (Revision $revision)
 
 rollbackRevision (ResourceIdentification $identification, int $revision_number)
 
 removeRevision (ResourceIdentification $identification, int $revision_number)
 

Private Member Functions

 normalizePath (string $path_inside_container)
 

Additional Inherited Members

- Protected Member Functions inherited from ILIAS\ResourceStorage\Manager\BaseManager
 checkZIP (bool|string $mimetype)
 
 newStreamBased (FileStream $stream, ResourceStakeholder $stakeholder, ResourceType $type, ?string $revision_title=null)
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s.ch

Definition at line 32 of file ContainerManager.php.

Member Function Documentation

◆ addStreamToContainer()

ILIAS\ResourceStorage\Manager\ContainerManager::addStreamToContainer ( ResourceIdentification  $container,
FileStream  $stream,
string  $path_inside_container 
)

Definition at line 109 of file ContainerManager.php.

113 : bool {
114 $path_inside_container = $this->normalizePath($path_inside_container);
115 if (empty($path_inside_container)) {
116 return false;
117 }
118 return $this->resource_builder->addStreamToContainer(
119 $this->getResource($container),
120 $stream,
121 $path_inside_container
122 );
123 }
getResource(ResourceIdentification $i)
normalizePath(string $path_inside_container)

◆ addUploadToContainer()

ILIAS\ResourceStorage\Manager\ContainerManager::addUploadToContainer ( ResourceIdentification  $container,
UploadResult  $result,
string  $parent_path_inside_container 
)

Definition at line 96 of file ContainerManager.php.

100 : bool {
101 $parent_path_inside_container = $this->normalizePath($parent_path_inside_container);
102 return $this->resource_builder->addUploadToContainer(
103 $this->getResource($container),
104 $result,
105 $parent_path_inside_container
106 );
107 }

◆ containerFromStream()

ILIAS\ResourceStorage\Manager\ContainerManager::containerFromStream ( FileStream  $stream,
ResourceStakeholder  $stakeholder,
?string  $revision_title = null 
)

Definition at line 53 of file ContainerManager.php.

58 // check if stream is a ZIP
59 $this->checkZIP(mime_content_type($stream->getMetadata()['uri']));
60
61 return $this->newStreamBased(
62 $stream,
63 $stakeholder,
65 $revision_title
66 );
67 }
newStreamBased(FileStream $stream, ResourceStakeholder $stakeholder, ResourceType $type, ?string $revision_title=null)
Definition: BaseManager.php:79

◆ containerFromUpload()

ILIAS\ResourceStorage\Manager\ContainerManager::containerFromUpload ( UploadResult  $result,
ResourceStakeholder  $stakeholder,
?string  $revision_title = null 
)

Definition at line 42 of file ContainerManager.php.

47 // check if stream is a ZIP
48 $this->checkZIP(mime_content_type($result->getMimeType()));
49
50 return $this->upload($result, $stakeholder, $revision_title);
51 }
upload(UploadResult $result, ResourceStakeholder $stakeholder, ?string $revision_title=null)
@description Creates a new resource from an upload, the status in this case is always PUBLISHED.
Definition: Manager.php:38

◆ createDirectoryInsideContainer()

ILIAS\ResourceStorage\Manager\ContainerManager::createDirectoryInsideContainer ( ResourceIdentification  $container,
string  $path_inside_container 
)

Definition at line 69 of file ContainerManager.php.

72 : bool {
73 $path_inside_container = $this->normalizePath($path_inside_container);
74 if (empty($path_inside_container)) {
75 return false;
76 }
77 return $this->resource_builder->createDirectoryInsideContainer(
78 $this->getResource($container),
79 $path_inside_container
80 );
81 }

◆ normalizePath()

ILIAS\ResourceStorage\Manager\ContainerManager::normalizePath ( string  $path_inside_container)
private

Definition at line 34 of file ContainerManager.php.

34 : string
35 {
36 // Paths inside a ZIP container must be relative (no leading slash).
37 // Some extraction tools (e.g. Windows Explorer) hide entries whose
38 // names start with "/". See Mantis 0045580 / 0047237.
39 return rtrim(ltrim($path_inside_container, './'), '/');
40 }

◆ removePathInsideContainer()

ILIAS\ResourceStorage\Manager\ContainerManager::removePathInsideContainer ( ResourceIdentification  $container,
string  $path_inside_container 
)

Definition at line 83 of file ContainerManager.php.

86 : bool {
87 if (empty($path_inside_container)) {
88 return false;
89 }
90 return $this->resource_builder->removePathInsideContainer(
91 $this->getResource($container),
92 $path_inside_container
93 );
94 }

The documentation for this class was generated from the following file: