Размер аватара блога на странице со списком блогов

Смысл в том, чтобы на странице со списком блогов, например livestreet.ru/blogs, сделать аватары блогов размером 100x100px. Сделано было многое, о чём более подробно расписано под катом. На ЛС была похожая проблема, но решения автор не дождался. Господа разработчики, быть может у кого то была подобная задача, надеюь на вашу помощь.

Кто знает как исправить проблему, пишите в личку, дам пару ВМЗ на пиво.

Для начала я в конфиге заменил:
$config['module']['blog']['avatar_size'] = array(24,0);

на
$config['module']['blog']['avatar_size'] = array(100,64,48,24,0);

Затем в файле, который как мне кажется отвечает за вывод аватар, classes/modules/blog/Blog.class, пытался копать:
if ($oImage && $sFileAvatar=$this->Image_Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}_48x48",Config::Get('view.img_max_width'),Config::Get('view.img_max_height'),48,48,false,$aParams,$oImage)) {
			$aSize=Config::Get('module.blog.avatar_size');
			foreach ($aSize as $iSize) {
				if ($iSize==0) {
					$this->Image_Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}",Config::Get('view.img_max_width'),Config::Get('view.img_max_height'),null,null,false,$aParams,$oImage);
				} else {
					$this->Image_Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}_{$iSize}x{$iSize}",Config::Get('view.img_max_width'),Config::Get('view.img_max_height'),$iSize,$iSize,false,$aParams,$oImage);
				}
			}

и
public function DeleteBlogAvatar($oBlog) {
		/**
		 * Если аватар есть, удаляем его и его рейсайзы
		 */
		if($oBlog->getAvatar()) {		
			$aSize=array_merge(Config::Get('module.blog.avatar_size'),array(48));
			foreach ($aSize as $iSize) {
				@unlink($this->Image_GetServerPath($oBlog->getAvatarPath($iSize)));
			}		
		}
        }

В файле Blog.entity.class.php смотрел код:
public function getAvatarPath($iSize=48) {   
    	if ($sPath=$this->getAvatar()) { 	
        	return str_replace('_48x48',(($iSize==0)?"":"_{$iSize}x{$iSize}"),$sPath);;
    	} else {
    		return Config::Get('path.static.skin').'/images/avatar_blog_'.$iSize.'x'.$iSize.'.gif';
    	}
    }

Получилось заменить везде на 100x100px, а задача стоит в том, чтобы заменить аватары только на странице со списком блогов. Пока без результата. Буду благодарен любому содействию в решении проблемы.

UPD 1
Забыл сказать, что аватары заменяются на 100x100px, прописывается путь .../avatar_blog_news_100x100.jpg но качество этой аватары ОЧЕНЬ плохое, такое ощущение что просто 48x48px картинка была растянута.

UPD 2
Вот, что я загружаю:

А вот как выводится:

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

avatar
ммм. а просто отредактировать конфиг и вывести в шаблоне blog_list.tpl

{$oBlog->getAvatarPath(100)}

было недостаточно?
avatar
В том то и дело, что не выходит. Обновил топик, посмотрите как выглядит.
комментарий был удален
avatar
тоже интересует данный вопрос
avatar
$config['module']['image']['default']['jpg_quality']          = 100;  // Число от 0 до 100

а это изменяли?
avatar
Нет, по умолчанию 100 стоит, я ничего не трогал.
avatar
Вот так все отлично работает
$config['module']['blog']['avatar_size']		= array(64,48,24,0);

if ($oImage && $sFileAvatar=$this->Image_Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}_100x100",Config::Get('view.img_max_width'),Config::Get('view.img_max_height'),100,100,false,$aParams,$oImage)) {

$aSize=array_merge(Config::Get('module.blog.avatar_size'),array(100));
комментарий был удален
avatar
Да, это у меня и вышлов самом начале. Только вот на странице блога, типа: livestreet.ru/blog/paidorders/
размер аватара тоже увеличивается. Конечно ему в html можно прописать высоту и ширину, но хотелось бы не выйти из положения, а сделать по уму. Понимаете?)
avatar
Чтобы обрезалось и вставлялось только там где нужно, а не везде.
avatar
качество улучшить получилось?
avatar
Ort тикет создал, сказал что проблема решается: trac.lsdev.ru/livestreet/ticket/220
avatar
Проблемы то вроде как и нет. Во всяком случае я ее не увидел, когда делал аватары 100х100 на блогах. Видимо и не заметил ее deniart при создании шаблона social.
avatar
Я ещё раз говорю, что её можно обойти. Заменить размеры в Blog.class и всё отлично, но тогда все аватары блогов на всех страницах сайта меняются на размер 100x100px. Опять же и это можно обойти, в css свойствах прописать width и height и всё.

Смысл в том, чтобы исправить этот баг на уровне движка.
avatar
{$oBlog->getAvatarPath(РАЗМЕР_КОТОРЫЙ_НАМ_НУЖЕН)}

Вот так не пробовали? и ксс не стоит дергать. По моему вы сами себе проблему придумали
avatar
Хочу размер например 150х75, а мне вырезает 150х150 т.е. квадратом. А если получается убрать вырезку квадратом т.е. задавать только ширину (без высоты), качество становится ужасным.
avatar
Это тут причем?
avatar
Да работает все, только качество ужасное. Я привёл скрины, взгляните внимательно пожалуйста))
avatar
Удивительно
avatar
  • ort
  • 0
avatar
как сделать чтобы вырезало не квадратом, подскажите пожалуйста, например размеров 150х75
avatar
Тоже интересует этот вопрос. Я например загружаю прямоугольную картинку. Система режет края до квадрата. А нужно, чтобы она ничего не резала, а просто ужала до необходимой ширины.
avatar
Это потому что в Block.class.php в UploadBlogAvatar есть
$oImage = $this->Image_CropSquare($oImage);
avatar
Нужно удалить или поменять на что то другое?
avatar
Смысл функции Image_CropSquare — вырезать квадрат в середине или если второй параметр false
$oImage = $this->Image_CropSquare($oImage,false)
то от левого верхнего угла.
Не нужен квадрат — уберите, эксперементируйте.
Но если аватарки будут разнокалиберные — смотреться будет не очень
avatar
Попробовал щас так. Обрезал правую сторону, а нужно, чтобы низ отрезал.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.