divad942 / yii2-avatar
Avatar management module
Installs: 23
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 3
pkg:composer/divad942/yii2-avatar
Requires
- php: >=7.0.0
 - yiisoft/yii2-imagine: ^2.1.1
 
This package is auto-updated.
Last update: 2025-10-29 00:33:05 UTC
README
1.0.0 ALPHA
Allows upload of a custom avatar without dependency on any extension rather than yii2. Includes a widget to manage upload by users and management by admins.
The intention of this library is add the ability to upload a profile picture via a simple widget.
It must not be dependent from another user management library.
Usage
Add the module to your configuration like follows:
'modules' => [ 'avatar' => [ 'class' => 'eseperio\avatar\Module', 'adminPermission' => 'admin', ] ]
Now place the included widget where you want to display the avatar.
<?= \eseperio\avatar\widgets\Avatar::widget([ 'avatarId' => Yii::$app->user->id ]) ?>
Advanced configuration
| Param | Default | Description | 
|---|---|---|
| $avatarFileName | null | The name to be used on generated files. If null then id property from userComponent will be used. If it is a string then will be considered like a route to a property within userComponent. If can be also a closure or a reference to a class method. Signature of method must be function($id, $module){}. See source code for more information. | 
| userComponent | 'user' | 
component to be used when generating avatar id. Ignored if $avatarFilename is a closure | 
| defaultImage | false | 
array the path to default image | 
| createDirectories | true | 
whether create the target directories if they do not exists. | 
| thumbWidth | 250 | 
size of thumbnail size | 
| thumbHeight | 250 | 
size of thumbnail size | 
| outputFormat | 2 (jpeg) | 
Format for generated images | 
| keepOriginal | true | 
whether keep the original uploaded file | 
| originalSuffix | 'or' | 
suffix to be appended to original files. If keep original enabled | 
| uploadDir | '@app/uploads' | 
directory to store thumbs generated without trailing slash. You can set a non web visible folder and get the pictures via link to ['/avatar/default/picture','id'=> $id ]. | 
| thumbsDir | '@app/images/thumbs' | 
directory where the files will be uploaded without trailing slash | 
| attributeName | 'image' | 
name of the attribute to be used on forms | 
| imageValidator | see code | name of the attribute to be used on forms validator to be used for image uploaded | 
| mimeTypes | see code | list of allowed mimetypes | 
| glue | '_' | 
to be used when joining avatar name parts | 
| adminPermission | null | 
users with this permissions will be able to update avatars from other users. | 
Events
There are available some events.
| Event | Description | 
|---|---|
UploadEvent::EVENT_AFTER_UPLOAD | 
Triggered just after saving original image. Use this event to generate thumbnails in other sizes. | 
JqueryPlugin
This module includes a custom made jquery plugin to manage the upload process.
You can configure it via widget through pluginOptions
There are many events available in the plugin. All events must return a boolean and have access to all the params of the parent function. See code to know more.
Available events in jQuery plugin
| Name | Description | 
|---|---|
| beforeUpload | Triggered on the beforeSend event | 
| afterUpload | Triggered when ajax response is full ok (status code and server response) | 
| onFail | Triggered when status code is 200 but server response is not ok | 
| onAjaxFail | Triggered when communication with server fails |