Как настроить вывод аватарки в панели управления ModX Revo?
В панели управления есть иконка пользователя. Так вот, когда туда загружаешь картинку, то иконка не выводится. Вернее так, она отображается с ошибкой. В журнале ошибок создается запись:
В чем может быть ошибка?
[2018-09-26 17:45:21] (ERROR @ E:\OSPanel\domains\lp\core\model\phpthumb\modphpthumb.class.php: 144) phpThumb was unable to generate a thumbnail for: E:\OSPanel\domains\lp\core\cache\phpthumb\lp.local__src8316ee7be845a13238eba20a97b23757_par397327b300e2532553c171cb19a456f3_dat0.jpegСобственно файла E:\OSPanel\domains\lp\core\cache\phpthumb\lp.local__src8316ee7be845a13238eba20a97b23757_par397327b300e2532553c171cb19a456f3_dat0.jpeg по факту нет, но там ест другие файлы, которые нарезаются с оригинала при нажатии кнопки Сохранить в профиле (если указана картинка аватарки).
В чем может быть ошибка?
Комментарии: 5
возможно вы загружаете аватарку в свой медиасорс, попробуйте создать настройку photo_profile_source и указать в нем id источника.
К сожалению данный вариант не сработал…
Получилось, спасибо. Более детально описал ниже.
Присоединяюсь к вопросу. Та же проблема.
Указываю jpg-файл, а система генерит в core\cache\phpthumb\
png-файлы. Но в линке на аватарку на странице админки остаётся
modx/connectors/system/phpthumb.php?zc=1&h=128&w=128&src=C%3A%2Fwww%2FOSPanel%2Fdomains%2Fmodx%2Fusr%2F128.jpg
Указываю jpg-файл, а система генерит в core\cache\phpthumb\
png-файлы. Но в линке на аватарку на странице админки остаётся
modx/connectors/system/phpthumb.php?zc=1&h=128&w=128&src=C%3A%2Fwww%2FOSPanel%2Fdomains%2Fmodx%2Fusr%2F128.jpg
Возможное решение:
Решение не совсем правильное, так как если выгрузить на хостинг ошибка пропадает, зато если разработка ведётся локально, то напрягает, поэтому временно идём в Медиа > Источники файлов, там ставим в графах basePath & baseUrl полный путь с диска до корня, например: E:\OSPanel\domains\site.ru\
Ошибка пропадает, изображение грузится ОК, но при этом выбор файла не доступен. Удачных разработок и перед выгрузкой на хостинг ставим медиа источник обратно.
Лирика:
Конечно времени ездить по файлом почти ни у кого нет core\model\phpthumb\phpthumb.class.php:3474 функция SetCacheFilename(), там есть такой код:
Скорей всего в новых версиях ModX >= 3 это уже исправят.
Решение не совсем правильное, так как если выгрузить на хостинг ошибка пропадает, зато если разработка ведётся локально, то напрягает, поэтому временно идём в Медиа > Источники файлов, там ставим в графах basePath & baseUrl полный путь с диска до корня, например: E:\OSPanel\domains\site.ru\
Ошибка пропадает, изображение грузится ОК, но при этом выбор файла не доступен. Удачных разработок и перед выгрузкой на хостинг ставим медиа источник обратно.
Лирика:
Конечно времени ездить по файлом почти ни у кого нет core\model\phpthumb\phpthumb.class.php:3474 функция SetCacheFilename(), там есть такой код:
if ($this->md5s) {
// source image MD5 hash provided
// do not source image modification date --
// cached image will be used even if file was modified or removed
} elseif (!$this->config_cache_source_filemtime_ignore_remote && preg_match('#^(f|ht)tps?\://#i', $this->src)) {
$this->cache_filename .= '_dat'.intval(phpthumb_functions::filedate_remote($this->src));
} elseif (!$this->config_cache_source_filemtime_ignore_local && $this->src && !$this->rawImageData) {
$this->cache_filename .= '_dat'.intval(@filemtime($this->sourceFilename));
}
Можно увидеть, что в строке есть функция filemtime(), которая отдаёт 0, почему? Потому, что если убрать ссылку @ от функции, то вы увидите в журнале не корректный путь, который конечно можно перезапрограмировать в этой строке:$this->cache_filename .= '_dat'.intval(@filemtime($this->sourceFilename));
Надеюсь помог, и не забываем про обратный слэш \/Скорей всего в новых версиях ModX >= 3 это уже исправят.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.