philvdb/avatar-bundle

Allows upload and administration of avatars (profile pictures) for Contao members and users

Installs: 312

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 8

Type:contao-bundle

2.0.5 2023-05-16 11:12 UTC

README

Introduction

The Avatar Contao extension allows for (frontend) members and (backend) users to have avatar images associated with them that can be administrated by the users themselves as well as authorized backend users.

Technical information

This bundle has been forked from terminal42/contao-avatar, it has been largely rewritten and updated to work with Contao > 4.9 and PHP > 8.0.

It should be compatible with existing avatar folders created by the original extension and insert tag syntax for existing tags has been preserved.

Most of the settings of the original extension have been removed, the only settings to be done in Contao are the sizes avatar images are resized to for members and users as well as the selection of default images for missing avatars.

Resizing of avatars now happens on the client browsers, server-side responsibility has been greatly reduced. Despite this, jQuery is also not required anymore. This extension now relies on Dropzone (which is bundled with the Contao Core anyway) and Croppie. Contrary to the original extension, avatars are now instantly saved (overwritten) on upload, there is no concept of temporary files until form submission anymore.

Usage

Avatars can be uploaded in the frontend by adding the avatar field to a personal data module. In the backend, avatars are administered in the member/user settings.

Get avatar in the frontend using insert tags:

{{avatar::member_current}} - current member
{{avatar::member_current::100x100}} - current member 100x100

{{avatar::member::ID}} - member ID
{{avatar::member::ID::100x100}} - member ID 100x100

{{avatar::user::ID}} - user ID
{{avatar::user::ID::100x100}} - user ID 100x100.

{{avatar_url::xx}} - return URL to asset image only
{{avatar_url_nodefault::xx}} - return empty string instead of default image if no personal avatar available

Rough concepts for developers:

  • MemberAvatarService and UserAvatarService deal with Files as inputs and outputs, see AbstractAvatarService for a list of public methods.
  • AvatarController will deal with uploads and deletion requests as well as provide rendered HTML when provided with a File (usually from an AvatarService)