ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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...
 
 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 143 of file class.ImageManager.php.

143 : void
144 {
145 $this->repo->deleteImageByFilename($this->style_id, $filename);
146 }
$filename
Definition: buildRTE.php:78

References $filename.

◆ getByFilename()

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

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

90 : Image
91 {
92 $rid = $this->style_repo->readRid($this->style_id);
93 return $this->repo->getByFilename($this->style_id, $rid, $filename);
94 }

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 84 of file class.ImageManager.php.

84 : string
85 {
86 return $this->repo->getWebPath($image->getPath());
87 }

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

+ Here is the call graph for this function:

◆ importFromUploadResult()

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

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

150 : void {
151 $rid = $this->style_repo->getOrCreateRid($this->style_id, $this->stakeholder);
152 $this->repo->importFromUploadResult(
153 $rid,
154 $result
155 );
156 }

◆ resizeImage()

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

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

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

References $filename.

◆ supportsResize()

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

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

129 : bool {
130 // for svg, see
131 // https://stackoverflow.com/questions/6532261/how-do-you-get-the-width-and-height-of-an-svg-picture-in-php
132 if (in_array(
133 strtolower(pathinfo($image->getFilename(), PATHINFO_EXTENSION)),
134 ["jpg", "jpeg", "gif", "png"]
135 )) {
136 return true;
137 }
138 return false;
139 }

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: