Помогите разобраться с увеличением аватаров
Как правильно и в каких ещё местах надо изменить значения, чтобы увеличить размер аватара? У меня все размеры аватаров становятся 120x120. Объясните, как действует эта хитрая система, как сделать нормально, чтобы самый большой размер по стандарту был 120 и меньшие размеры оставались.
В конфиге есть размеры. Меняю там 100 на 120.
User.class.php
меняю все 100 на 120 тут
и тут
и в User.entity.class.php
В конфиге есть размеры. Меняю там 100 на 120.
User.class.php
меняю все 100 на 120 тут
if ($sFileAvatar=$this->Image_Resize($sFileTmp,$sPath,'avatar_100x100',Config::Get('view.img_max_width'),Config::Get('view.img_max_height'),100,100,false,$aParams)) {
$aSize=Config::Get('module.user.avatar_size');
и тут
/**
* Если аватар есть, удаляем его и его рейсайзы
*/
if($oUser->getProfileAvatar()) {
$aSize=array_merge(Config::Get('module.user.avatar_size'),array(100));
и в User.entity.class.php
/**
* Возвращает полный веб путь до аватара нужного размера
*
* @param int $iSize Размер
* @return string
*/
public function getProfileAvatarPath($iSize=100) {
if ($sPath=$this->getProfileAvatar()) {
return str_replace('_100x100',(($iSize==0)?"":"_{$iSize}x{$iSize}"),$sPath."?".date('His',strtotime($this->getProfileDate())));
} else {
return Config::Get('path.static.skin').'/images/avatar_'.($this->getProfileSex()=='woman' ? 'female' : 'male').'_'.$iSize.'x'.$iSize.'.png';
}
}
15 комментариев
меняешь в config/config.php $config['module']['user']['avatar_size'] = array(120,100,64,48,24,0); // Список размеров аватаров у пользователя. 0 — исходный размер
перезаливаешь аватар и везде где требуется правишь $oUser->getProfileAvatarPath(120)
У тебя выше все это написано, неужели трудно?
по сути костыльный вариант, пока загружаешь показывает 100 сразу после загрузки, если обновиться страницу уже 120.
Я интересуюсь, как 100 завязано в скриптах, почему при замене 100 на 120. Не показываются аватары других размеров, а везде 120 выходит.
Выше написали что делать, вы же костыли не инвалиду даете.
\classes\actions\ActionSettings.class.php
306 строка
$this->Viewer_AssignAjax('sFile',$this->oUserCurrent->getProfileAvatarPath(100));
К основному вопросу темы ещё. У меня сейчас в конфиге стоит
Но на сервере создаются и остаются ещё 100x100 изображения, которые я не использую. Я пробывал, как описал в шапке менять значения 100 на 120 в User.class.php, User.entity.class.php. После этого вместо маленьких аватаров (24 и 48) на сайте начинают выводится 120.
Видно где-то ресайз заточен под 100 и сбивается, когда на 120 меняю. Я на самом деле не могу понять причину, почему так происходит.
По сути мой вопрос: как убрать полностью размеры 100, чтобы на сервере ничего не появлялось, не создавало 100. Чтобы оно 120 делало, и с него ресайзило остальные. Проблема, с которой я столкнулся, в том, что когда изменяю размеры во всех найденных функций мною, перестают создаваться маленькие аватары.
В шапке описано, что я менял. Не знаю, возможно, я что-то упустил, прошу, кто знает подскажите.
А те изображения с размером 100 которые уже создались великий фреймворк ls не удалит.
Многие люди бесятся когда видят такую не сообразительность, в их числе и я :)
Открыл в хроме incognito табу, зарегистрировал нового пользователя, загрузил аватару. В developer tools посмотрел, в какую папку сохранилась аватара размером 120. Захожу в эту папку, там лежат аватары: 100, 120, 24, 48.
Вот, я почему спрашиваю. В конфиге убрано, а они появляются, поэтому я думал, что надо ещё менять в модуле User.
github.com/livestreet/livestreet/blob/master/classes/modules/user/User.class.php#L1116
Как правильно удалить, чтобы сам ресайз оставить работоспособным?