Плагин «QR-Code Avatar»



Если у пользователя нет аватара — отображается QR-Code с ником пользователя. По мотивам плагина Gravatar, но отличается от него тем, что пользователями предварительно не нужно загружать аватарку на сервер граватара. Здесь в любом случае у каждого будет свой уникальный аватар. Идейный вдохновитель — daglex . Ну может хоть кому-то пригодится.

Можно сделать кучу модификаций Плагина «RetroAvatar» .

Плагин «RetroAvatar»

Если у пользователя нет аватара — отображается RetroAvatar. По мотивам плагина Gravatar, но отличается от него тем, что пользователями предварительно не нужно загружать аватарку на сервер граватара. Здесь в любом случае у каждого будет свой уникальный аватар.Идейный вдохновитель — next321 , он же первым и раскритиковал данное решение. Ну может хоть кому-то пригодится.

Не всегда удаляются файлы аватаров

Писал функцию работы с аватарами для своего модуля. В качестве основы использовал работу с аватарами из класса Blog. Долго не мог понять почему не работает и нашел ошибку в функции.

Файл classes/modules/blog/entity/Blog.entity.class.php

public function getAvatarPath($iSize=48) {
        if ($sPath=$this->getAvatar()) {
                return preg_replace("#_\d{1,3}x\d{1,3}(\.\w{3,4})$#",(($iSize==0)?"":"_{$iSize}x{$iSize}\\1"),$sPath);
        } else {
                return Config::Get('path.static.skin').'/images/avatar_blog_'.$iSize.'x'.$iSize.'.gif';


Вместо кода (($iSize==0)?"":"_{$iSize}x{$iSize}\\1",
должно быть (($iSize==0)?"\\1":"_{$iSize}x{$iSize}\\1"

В результате ошибки при размере аватара 0, отрезается расширение файла, и функция удаления получает неправильное имя из-за чего файл не удаляется. Потом приходится запускать всякие пылесосы и т.д.

Аналогичный код нашел в функции getProfileAvatarPath класса User.entity.class.php

Наличие бага не проверял, но по логике должен быть результат аналогичный блогам.