Не всегда удаляются файлы аватаров
3
Писал функцию работы с аватарами для своего модуля. В качестве основы использовал работу с аватарами из класса Blog. Долго не мог понять почему не работает и нашел ошибку в функции.
Файл classes/modules/blog/entity/Blog.entity.class.php
Вместо кода (($iSize==0)?"":"_{$iSize}x{$iSize}\\1",
должно быть (($iSize==0)?"\\1":"_{$iSize}x{$iSize}\\1"
В результате ошибки при размере аватара 0, отрезается расширение файла, и функция удаления получает неправильное имя из-за чего файл не удаляется. Потом приходится запускать всякие пылесосы и т.д.
Аналогичный код нашел в функции getProfileAvatarPath класса User.entity.class.php
Наличие бага не проверял, но по логике должен быть результат аналогичный блогам.
Файл 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
Наличие бага не проверял, но по логике должен быть результат аналогичный блогам.
Предлагаю скинуться на уборщицу!
2
Здравствуйте. Хочу подкинуть идейку о коллективном заказе модуля для сборки мусора.Сейчас появилось уйма модулей позволяющих грузить файлы на сайт. Разумеется, некоторые материалы будут не желательны. Возможно, что кто-то захочет позаливать на сайт кучу вайлов, но потом так и не решится опубликовать материал вместе с ними(или же он окажется не нужным). Чаще всего темы удаляются только в базах. В итоге получаем кучу хвостов. Для того, чтобы полностью избавиться от мусора придется через фтп лезть «туду где оно лежит» и рыться по непонятным папкам.
Предлагаю скинуться всем коллективом и заказать комсомолку-уборщицу. Которая в назначенное время, будит ударно делать за нас всю грязную работу. А именно проверять файлы в папке uploads/ на актуальность. К примеру, если некий файл был залит N дней/часов/минут/секунд назад, но не был вставлен ни в один материал, то мы от него избавляемся. И так каждые T дней. Нечто подобное уже было для ЛС 0.2
UPD. Кто мог бы заняться, сколько оно может стоить и есть ли такие, кому это необходимо?
- 0
- 03 декабря 2010, 20:42
- deputydeath
- 27