Перегенерация аватарок

Доброй ночи.
Интересует перегенерация автарок пользователей, осуществляю обновление с версии 1.0.10.2 До 1.17, от шаблона пришлось отказаться т.к. сам я еще не в силах осилить сделать свой собственный, остановился на очень крутом шаблоне Experience Simple v.1.0.0 и столкнулся с проблемой, что нужного размера автарок не существует, можно ли их каким-нибудь образом перегенрировать?
Поиск по сайту не дал результатов.

UPD: Проблема оказалась в том, что аватарок физически не существовало, написал простой скрипт, который удаляет не существующие аватарки.

Похожие статьи


12 комментариев

0
столкнулся с проблемой, что нужного размера автарок не существует
Проблема явно в чем-то другом. Движок достаточно умный, чтобы нагенерить аватарок нужных размеров на лету. Но только в том случае, конечно, если он а) может получить загруженные аватарки; б) может записать новые аватары на диск.

Проверьте для начала логи — нет ли там ошибок. А затем надо смотреть, какие пути прописываются у аватар
0
В принципе вы правы, движок действительно умный, проблема была в доступе к файлам, можно ли как то проверить на существование аватарки и если её нет то отдать стандартную?
Знаю что можно сделать подобной конструкцией, но не знаю как сформировать локальный локальный путь для проверки существования файла:

{if file_exists('../avatar.jpg')}
{($oUser->getAvatarUrl('small'))}
{else}
Путь до дефолтной аватарки
{/if}
Отредактирован:
0
можно ли как то проверить на существование аватарки и если её нет то отдать стандартную?
Собственно, сейчас так движок и работет — если аватарки нет, то отдает стандартную. Но когда аватара на самом деле есть, но возникают проблемы с доступом, это немного другая песня.

Теоретически можно, конечно, и это пытаться анализировать. Но, во-первых, добавляется много лишней логики (а это дополнительная нагрузка), а, во-вторых, сама проблема становится менее очевидной — смотрите страницу и видите дефолтные аватары, и не сразу сообразите, что проблема не в том, что юзеры не загружают свои аватары, а в правах доступа к уже загруженным.
0
Однажды под рутом я удалил каталог сайта и как назло не было актуального бэккапа, после чего пришлось восстанавливать бэккап одно месячной давности и все аватарки пользователей за данный период пропали, сейчас движок пытается запросить аватар по адресу /uploads/images/00/27/12/2015/01/17/avatar_100x100.jpg-32x32-crop.jpg но папок начиная с /uploads/images/00/27/ уже не существует. Как быть в таком случае?
0
Написать на коленке скрипт, который пройдётся по базе аватарок, проверяя каждый файл на существование и удаляя записи с отсутствующими
0
В принципе думаю над этим.
0
найти в базе ссылки на все эти картинки, и нагенерировать скриптом нужных путей с картинками «извините, картинка потеряна». Нарисуйте ее в фотошопе и поместите под нужными именами по нужным путям.
Удалять из базы ссылки на потерянные картинки не стоит, хотя бы потому, что в этом случае вероятно надо будет пересчитывать сериализованные данные.
Отредактирован:
0
Пересчитывать сериализованные данные? можно по подробней
0
Уж лучше пусть отображается аватарка по умолчанию — если просто ее путь удалить при отсутствии файла.
+2
Спасибо inliquid и shtrih , написал скрипт «на коленке», выложил на GitHub, может кому-нибудь будет полезно.
0
Спасибо, кстати есть один нюанс. Если вы меняете пути на относительные, движок возможно не сможет нарезать аватарки произвольного размера. Именно с аватарками не тестировал, но с превью было так. Там он при определении локальный это файл, или удаленный, корневой URL сайта проверяет.
0
Вас понял. Обязательно это учту. Спасибо!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.