Помогите разобраться с увеличением аватаров

Как правильно и в каких ещё местах надо изменить значения, чтобы увеличить размер аватара? У меня все размеры аватаров становятся 120x120. Объясните, как действует эта хитрая система, как сделать нормально, чтобы самый большой размер по стандарту был 120 и меньшие размеры оставались.

В конфиге есть размеры. Меняю там 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 комментариев

avatar
Ребята, давайте, заплачу кто нормально под 120 модифицирует эту часть кода.
avatar
Пиздец, добились отменой минусов благоденствия
меняешь в config/config.php $config['module']['user']['avatar_size'] = array(120,100,64,48,24,0); // Список размеров аватаров у пользователя. 0 — исходный размер
перезаливаешь аватар и везде где требуется правишь $oUser->getProfileAvatarPath(120)
У тебя выше все это написано, неужели трудно?
avatar
При загружке аватара Ajax всё равно всегда 100 выдаёт.

$oUser->getProfileAvatarPath(120)


по сути костыльный вариант, пока загружаешь показывает 100 сразу после загрузки, если обновиться страницу уже 120.

Я интересуюсь, как 100 завязано в скриптах, почему при замене 100 на 120. Не показываются аватары других размеров, а везде 120 выходит.
avatar
Какого аякса? Вы скажите точнее, потому что аякс может отдавать часть шаблона в которой и явно указан метод $oUser->getProfileAvatarPath(100) либо просто $oUser->getProfileAvatarPath() т.к по умолчанию там 100
public function getProfileAvatarPath($iSize=100) {


Выше написали что делать, вы же костыли не инвалиду даете.
avatar
Когда выбираешь изображение в настройках профиля. Выбрал, оно начинает грузится, после загрузки становится 100. Если перезагрузить страницу тогда 120.
avatar
Путано вы все таки вопросы задаете

\classes\actions\ActionSettings.class.php
306 строка
$this->Viewer_AssignAjax('sFile',$this->oUserCurrent->getProfileAvatarPath(100));
avatar
Вот это помогло для исправления отображения при загрузке Аякса. Спасибо.

К основному вопросу темы ещё. У меня сейчас в конфиге стоит

$config['module']['user']['avatar_size'] = array(120,48,24);


Но на сервере создаются и остаются ещё 100x100 изображения, которые я не использую. Я пробывал, как описал в шапке менять значения 100 на 120 в User.class.php, User.entity.class.php. После этого вместо маленьких аватаров (24 и 48) на сайте начинают выводится 120.

Видно где-то ресайз заточен под 100 и сбивается, когда на 120 меняю. Я на самом деле не могу понять причину, почему так происходит.

По сути мой вопрос: как убрать полностью размеры 100, чтобы на сервере ничего не появлялось, не создавало 100. Чтобы оно 120 делало, и с него ресайзило остальные. Проблема, с которой я столкнулся, в том, что когда изменяю размеры во всех найденных функций мною, перестают создаваться маленькие аватары.

В шапке описано, что я менял. Не знаю, возможно, я что-то упустил, прошу, кто знает подскажите.
avatar
Верните все на свои места и удалите из конфига 100.
А те изображения с размером 100 которые уже создались великий фреймворк ls не удалит.

Многие люди бесятся когда видят такую не сообразительность, в их числе и я :)
avatar
В экшене настроек конечно же 120 нужно оставить, а то что вы сделали с сущностью и модулем User это кощунство.
avatar
Но у меня тестовый сайт) Я проверяю, что происходит в папках при создании именно новых аватар. Почему-то упорно создаются и сохраняются на сервер 100x100. Я перед тем, как писать, проверяю всё.

Открыл в хроме incognito табу, зарегистрировал нового пользователя, загрузил аватару. В developer tools посмотрел, в какую папку сохранилась аватара размером 120. Захожу в эту папку, там лежат аватары: 100, 120, 24, 48.

Вот, я почему спрашиваю. В конфиге убрано, а они появляются, поэтому я думал, что надо ещё менять в модуле User.
avatar
Вам мешает именно эта строка, т.к она создает аватарку 100х100
github.com/livestreet/livestreet/blob/master/classes/modules/user/User.class.php#L1116
avatar
Её лучше удалить или изменить как-то?

Как правильно удалить, чтобы сам ресайз оставить работоспособным?
avatar
Я это менял, в шапке описано эта замена. Ниже AlikMis правильно подсказал, что поменять для отображения в Аяксе.
avatar
Ну объясните же принцип работы ресайза, как вырезать нормально сотки, чтобы они вообще не создавались, и при этом другие аватары создавались.
avatar
Это последнее, что меня держит перед полноценным запуском сайта.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.