ILIAS  trunk Revision v12.0_alpha-1227-g7ff6d300864
ILIAS\Style\Content\ImageManager Class Reference

Main business logic for content style images. More...

+ Collaboration diagram for ILIAS\Style\Content\ImageManager:

Public Member Functions

 __construct (int $style_id, Access\StyleAccessManager $access_manager, InternalRepoService $repo, protected ResourceStakeholder $stakeholder)
 
 getImages (bool $include_size_info=false)
 Get images of style. More...
 
 hasLegacyDirAndNoImages ()
 
 getWebPath (Image $image)
 
 getByFilename (string $filename)
 
 resizeImage (string $filename, int $width, int $height, bool $constrain_proportions)
 
 supportsResize (Image $image)
 
 deleteByFilename (string $filename)
 
 importFromUploadResult (UploadResult $result)
 

Protected Attributes

Images $img_convert
 
ImageFileRepo $repo
 
StyleRepo $style_repo
 
Access StyleAccessManager $access_manager
 
int $style_id
 

Private Attributes

Filesystem Util Convert LegacyImages $image_conversion
 

Detailed Description

Main business logic for content style images.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 37 of file class.ImageManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Style\Content\ImageManager::__construct ( int  $style_id,
Access\StyleAccessManager  $access_manager,
InternalRepoService  $repo,
protected ResourceStakeholder  $stakeholder 
)

Definition at line 46 of file class.ImageManager.php.

51 {
52 global $DIC;
53 $this->repo = $repo->image();
54 $this->style_repo = $repo->style();
55 $this->access_manager = $access_manager;
56 $this->style_id = $style_id;
57 $this->image_conversion = $DIC->fileConverters()->legacyImages();
58 $this->img_convert = $DIC->fileConverters()->images();
59 }
Access StyleAccessManager $access_manager
global $DIC
Definition: shib_login.php:26

References ILIAS\Style\Content\ImageManager\$access_manager, $DIC, ILIAS\Style\Content\ImageManager\$repo, and ILIAS\Style\Content\ImageManager\$style_id.

Member Function Documentation

◆ deleteByFilename()

ILIAS\Style\Content\ImageManager::deleteByFilename ( string  $filename)

Definition at line 152 of file class.ImageManager.php.

152 : void
153 {
154 $this->repo->deleteImageByFilename($this->style_id, $filename);
155 }
$filename
Definition: buildRTE.php:78

References $filename.

◆ getByFilename()

ILIAS\Style\Content\ImageManager::getByFilename ( string  $filename)

Definition at line 99 of file class.ImageManager.php.

99 : Image
100 {
101 $rid = $this->style_repo->readRid($this->style_id);
102 return $this->repo->getByFilename($this->style_id, $rid, $filename);
103 }

References $filename.

◆ getImages()

ILIAS\Style\Content\ImageManager::getImages ( bool  $include_size_info = false)

Get images of style.

Returns
Generator
Exceptions
Filesystem

Exception\DirectoryNotFoundException

Definition at line 66 of file class.ImageManager.php.

66 : Generator
67 {
68 $rid = $this->style_repo->readRid($this->style_id);
69 return $this->repo->getImages($this->style_id, $rid, $include_size_info);
70 }

◆ getWebPath()

ILIAS\Style\Content\ImageManager::getWebPath ( Image  $image)

Definition at line 93 of file class.ImageManager.php.

93 : string
94 {
95 return $this->repo->getWebPath($image->getPath());
96 }

References ILIAS\Style\Content\Image\getPath().

+ Here is the call graph for this function:

◆ hasLegacyDirAndNoImages()

ILIAS\Style\Content\ImageManager::hasLegacyDirAndNoImages ( )

Definition at line 72 of file class.ImageManager.php.

72 : bool
73 {
74 return $this->repo->hasLegacyDir($this->style_id) &&
75 !$this->repo->hasImages(
76 $this->style_id,
77 $this->style_repo->readRid($this->style_id)
78 );
79 }

◆ importFromUploadResult()

ILIAS\Style\Content\ImageManager::importFromUploadResult ( UploadResult  $result)

Definition at line 157 of file class.ImageManager.php.

159 : void {
160 $rid = $this->style_repo->readRid($this->style_id);
161 if ($rid !== "") {
162 $this->repo->importFromUploadResult(
163 $rid,
164 $result
165 );
166 }
167 }

◆ resizeImage()

ILIAS\Style\Content\ImageManager::resizeImage ( string  $filename,
int  $width,
int  $height,
bool  $constrain_proportions 
)

Definition at line 106 of file class.ImageManager.php.

111 : void {
112 $rid = $this->style_repo->readRid($this->style_id);
113 if ($this->filenameExists($filename)) {
114 // the zip stream is not seekable, which is needed by Imagick
115 // so we create a seekable stream first
116 $tempStream = fopen('php://temp', 'w+');
117 stream_copy_to_stream($this->repo->getImageStream($rid, $filename)->detach(), $tempStream);
118 rewind($tempStream);
119 $stream = new Stream($tempStream);
120
121 $converter = $this->img_convert->resizeToFixedSize(
122 $stream,
123 $width,
124 $height
125 );
126 $this->repo->addStream(
127 $rid,
128 $filename,
129 $converter->getStream()
130 );
131 fclose($tempStream);
132 }
133 }

References $filename.

◆ supportsResize()

ILIAS\Style\Content\ImageManager::supportsResize ( Image  $image)

Definition at line 136 of file class.ImageManager.php.

138 : bool {
139 // for svg, see
140 // https://stackoverflow.com/questions/6532261/how-do-you-get-the-width-and-height-of-an-svg-picture-in-php
141 if (in_array(
142 strtolower(pathinfo($image->getFilename(), PATHINFO_EXTENSION)),
143 ["jpg", "jpeg", "gif", "png"]
144 )) {
145 return true;
146 }
147 return false;
148 }

Field Documentation

◆ $access_manager

Access StyleAccessManager ILIAS\Style\Content\ImageManager::$access_manager
protected

Definition at line 42 of file class.ImageManager.php.

Referenced by ILIAS\Style\Content\ImageManager\__construct().

◆ $image_conversion

Filesystem Util Convert LegacyImages ILIAS\Style\Content\ImageManager::$image_conversion
private

Definition at line 44 of file class.ImageManager.php.

◆ $img_convert

Images ILIAS\Style\Content\ImageManager::$img_convert
protected

Definition at line 39 of file class.ImageManager.php.

◆ $repo

ImageFileRepo ILIAS\Style\Content\ImageManager::$repo
protected

Definition at line 40 of file class.ImageManager.php.

Referenced by ILIAS\Style\Content\ImageManager\__construct().

◆ $style_id

int ILIAS\Style\Content\ImageManager::$style_id
protected

Definition at line 43 of file class.ImageManager.php.

Referenced by ILIAS\Style\Content\ImageManager\__construct().

◆ $style_repo

StyleRepo ILIAS\Style\Content\ImageManager::$style_repo
protected

Definition at line 41 of file class.ImageManager.php.


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