Elgg  Version master
Public Member Functions | Protected Member Functions | List of all members
Elgg\EntityIconService Class Reference

Entity icon service. More...

Public Member Functions

 __construct (protected Config $config, protected EventsService $events, protected EntityTable $entities, protected UploadService $uploads, protected ImageService $images, protected MimeTypeService $mimetype, protected HttpRequest $request)
 Constructor. More...
 
 saveIconFromUploadedFile (\ElggEntity $entity, string $input_name, string $type= 'icon', array $coords=[])
 Saves icons using an uploaded file as the source. More...
 
 saveIconFromLocalFile (\ElggEntity $entity, string $filename, string $type= 'icon', array $coords=[])
 Saves icons using a local file as the source. More...
 
 saveIconFromElggFile (\ElggEntity $entity,\ElggFile $file, string $type= 'icon', array $coords=[])
 Saves icons using a file located in the data store as the source. More...
 
 saveIcon (\ElggEntity $entity,\ElggFile $file, string $type= 'icon', array $coords=[])
 Saves icons using a created temporary file. More...
 
 getIcon (\ElggEntity $entity, string $size, string $type= 'icon', bool $generate=true)
 Returns entity icon as an ElggIcon object The icon file may or may not exist on filestore. More...
 
 deleteIcon (\ElggEntity $entity, string $type= 'icon', bool $retain_master=false)
 Removes all icon files and metadata for the passed type of icon. More...
 
 getIconURL (\ElggEntity $entity, string|array $params=[])
 Get the URL for this entity's icon. More...
 
 getFallbackIconUrl (\ElggEntity $entity, array $params=[])
 Returns default/fallback icon. More...
 
 getIconLastChange (\ElggEntity $entity, string $size, string $type= 'icon')
 Returns the timestamp of when the icon was changed. More...
 
 hasIcon (\ElggEntity $entity, string $size, string $type= 'icon')
 Returns if the entity has an icon of the passed type. More...
 
 getSizes (string $entity_type=null, string $entity_subtype=null, $type= 'icon')
 Returns a configuration array of icon sizes. More...
 

Protected Member Functions

 prepareIcon (string $filename)
 Prepares an icon. More...
 
 generateIcon (\ElggEntity $entity,\ElggFile $file, string $type= 'icon', array $coords=[], string $icon_size= '')
 Generate an icon for the given entity. More...
 
 detectCroppingCoordinates (string $input_name)
 Automagicly detect cropping coordinates. More...
 
 hasWebPSupport ()
 Checks if browser has WebP support and if the webserver is able to generate. More...
 

Detailed Description

Entity icon service.

Definition at line 20 of file EntityIconService.php.

Constructor & Destructor Documentation

Elgg\EntityIconService::__construct ( protected Config  $config,
protected EventsService  $events,
protected EntityTable  $entities,
protected UploadService  $uploads,
protected ImageService  $images,
protected MimeTypeService  $mimetype,
protected HttpRequest  $request 
)

Constructor.

Parameters
Config$configConfig
EventsService$eventsEvents service
EntityTable$entitiesEntity table
UploadService$uploadsUpload service
ImageService$imagesImage service
MimeTypeService$mimetypeMimeType service
Request$requestHttp Request service

Definition at line 36 of file EntityIconService.php.

Member Function Documentation

Elgg\EntityIconService::deleteIcon ( \ElggEntity  $entity,
string  $type = 'icon',
bool  $retain_master = false 
)

Removes all icon files and metadata for the passed type of icon.

Parameters
\ElggEntity$entityEntity that owns icons
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
bool$retain_masterKeep the master icon (default: false)
Returns
bool

Definition at line 435 of file EntityIconService.php.

Elgg\EntityIconService::detectCroppingCoordinates ( string  $input_name)
protected

Automagicly detect cropping coordinates.

Based in the input names x1, x2, y1 and y2

Parameters
string$input_namethe file input name which is the prefix for the cropping coordinates
Returns
null|array

Definition at line 658 of file EntityIconService.php.

Elgg\EntityIconService::generateIcon ( \ElggEntity  $entity,
\ElggFile  $file,
string  $type = 'icon',
array  $coords = [],
string  $icon_size = '' 
)
protected

Generate an icon for the given entity.

Parameters
\ElggEntity$entityTemporary ElggFile instance
\ElggFile$fileTemporary ElggFile instance
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
array$coordsAn array of cropping coordinates x1, y1, x2, y2
string$icon_sizeThe icon size to generate (leave empty to generate all supported sizes)
Returns
bool

Definition at line 286 of file EntityIconService.php.

Elgg\EntityIconService::getFallbackIconUrl ( \ElggEntity  $entity,
array  $params = [] 
)

Returns default/fallback icon.

Parameters
\ElggEntity$entityEntity
array$paramsIcon params
Returns
string

Definition at line 540 of file EntityIconService.php.

Elgg\EntityIconService::getIcon ( \ElggEntity  $entity,
string  $size,
string  $type = 'icon',
bool  $generate = true 
)

Returns entity icon as an ElggIcon object The icon file may or may not exist on filestore.

Note
Returned ElggIcon object may be a placeholder. Use ElggIcon::exists() to validate if file has been written to filestore
Parameters
\ElggEntity$entityEntity that owns the icon
string$sizeSize of the icon
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
bool$generateTry to generate an icon based on master if size doesn't exists
Returns
Exceptions
UnexpectedValueException

Definition at line 374 of file EntityIconService.php.

Elgg\EntityIconService::getIconLastChange ( \ElggEntity  $entity,
string  $size,
string  $type = 'icon' 
)

Returns the timestamp of when the icon was changed.

Parameters
\ElggEntity$entityEntity that owns the icon
string$sizeThe size of the icon
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
Returns
int|null A unix timestamp of when the icon was last changed, or null if not set.

Definition at line 577 of file EntityIconService.php.

Elgg\EntityIconService::getIconURL ( \ElggEntity  $entity,
string|array  $params = [] 
)

Get the URL for this entity's icon.

Plugins can register for the 'entity:icon:url', <type> event to customize the icon for an entity.

Parameters
\ElggEntity$entityEntity that owns the icon
mixed$paramsA string defining the size of the icon (e.g. tiny, small, medium, large) or an array of parameters including 'size'
Returns
string

Definition at line 498 of file EntityIconService.php.

Elgg\EntityIconService::getSizes ( string  $entity_type = null,
string  $entity_subtype = null,
  $type = 'icon' 
)

Returns a configuration array of icon sizes.

Parameters
string$entity_typeEntity type
string$entity_subtypeEntity subtype
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
Returns
array
Exceptions
InvalidArgumentException

Definition at line 610 of file EntityIconService.php.

Elgg\EntityIconService::hasIcon ( \ElggEntity  $entity,
string  $size,
string  $type = 'icon' 
)

Returns if the entity has an icon of the passed type.

Parameters
\ElggEntity$entityEntity that owns the icon
string$sizeThe size of the icon
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
Returns
bool

Definition at line 595 of file EntityIconService.php.

Elgg\EntityIconService::hasWebPSupport ( )
protected

Checks if browser has WebP support and if the webserver is able to generate.

Returns
bool

Definition at line 692 of file EntityIconService.php.

Elgg\EntityIconService::prepareIcon ( string  $filename)
protected

Prepares an icon.

Parameters
string$filenamethe file to prepare
Returns
void

Definition at line 259 of file EntityIconService.php.

Elgg\EntityIconService::saveIcon ( \ElggEntity  $entity,
\ElggFile  $file,
string  $type = 'icon',
array  $coords = [] 
)

Saves icons using a created temporary file.

Parameters
\ElggEntity$entityTemporary ElggFile instance
\ElggFile$fileTemporary ElggFile instance
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
array$coordsAn array of cropping coordinates x1, y1, x2, y2
Returns
bool

Definition at line 164 of file EntityIconService.php.

Elgg\EntityIconService::saveIconFromElggFile ( \ElggEntity  $entity,
\ElggFile  $file,
string  $type = 'icon',
array  $coords = [] 
)

Saves icons using a file located in the data store as the source.

Parameters
\ElggEntity$entityEntity to own the icons
\ElggFile$fileAn ElggFile instance
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
array$coordsAn array of cropping coordinates x1, y1, x2, y2
Returns
bool
Exceptions
InvalidArgumentException

Definition at line 132 of file EntityIconService.php.

Elgg\EntityIconService::saveIconFromLocalFile ( \ElggEntity  $entity,
string  $filename,
string  $type = 'icon',
array  $coords = [] 
)

Saves icons using a local file as the source.

Parameters
\ElggEntity$entityEntity to own the icons
string$filenameThe full path to the local file
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
array$coordsAn array of cropping coordinates x1, y1, x2, y2
Returns
bool
Exceptions
InvalidArgumentException

Definition at line 99 of file EntityIconService.php.

Elgg\EntityIconService::saveIconFromUploadedFile ( \ElggEntity  $entity,
string  $input_name,
string  $type = 'icon',
array  $coords = [] 
)

Saves icons using an uploaded file as the source.

Parameters
\ElggEntity$entityEntity to own the icons
string$input_nameForm input name
string$typeThe name of the icon. e.g., 'icon', 'cover_photo'
array$coordsAn array of cropping coordinates x1, y1, x2, y2
Returns
bool

Definition at line 57 of file EntityIconService.php.


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