Обновлено: 27 декабря 2014, 21:26
 Marabar

ERROR @ /connectors/system/phpthumb.php

Как известно, в MODX revolution, начиная с версии 2.3 появился в админке аватар пользователя — круто!.. Через какое-то время аватар пропал, вернее не пропал — формировалась битая ссылка, а в логах MODX появились ошибки, например: (ERROR @ /connectors/system/phpthumb.php) phpThumb was unable to generate a thumbnail for: /путь/до/корневого/каталога/сайта/core/cache/phpthumb/ site.ru__src32e311b0df1_par397317456f3_dat0.jpeg. Т.е. phpThumb не смог создать миниатюру и путь до этой миниатюры. Конечно же в корне сайта нет никакой миниатюры.

Попутно генерируется и такая ошибка: (ERROR @ /путь/до/корневого/каталога/сайта/core/model/phpthumb/phpthumb.class.php: 1596) PHP warning: getimagesize(/путь/до корневого/каталога/сайта/11412207488.jpg): failed to open stream: No such file or directory. Я знаю, что у меня в корне сайта нет такого файла. Такие названия файлам я присваиваю загруженным аватарам и хранятся они в базе данных. Тут то мне и вспомнился мой пропавший аватар)).

Ладно, полез в исходники и обнаружил в файле: /manager/controllers/default/header.php, в функции getUserImage следующее:
$userProfile = $this->modx->user->getOne('Profile');

    // Default to FontAwesome
    $userImage = '<i class="icon icon-user icon-large"></i> ';

    if ($userProfile->photo) {
        // First, handle user defined image
        $src = $this->modx->getOption('connectors_url', MODX_CONNECTORS_URL)
            .'system/phpthumb.php?zc=1&h=128&w=128&src='
            .$userProfile->photo;
        $userImage = '<img src="' . $src . '" />';
    }
Если есть значение в колонке photo таблицы modx_user_attributes — формируем путь до корня сайта, добавляем фото, генерируем превьюшку и отдаём. А что делать, если в БД хранятся только названия файлов без пути к этому файлу?
Не плохо было бы, добавить возможность указания пути в системных настройках к директории с аватарами. Хранить в таблице полный путь не считаю правильным по многим причинам. Для себя, пока, сделал следующее:
$src = $this->modx->getOption('connectors_url', MODX_CONNECTORS_URL)
    .'system/phpthumb.php?zc=1&h=128&w=128&src='
    .'assets/images/uploads/avatars/'
    .$userProfile->photo;
$userImage = '<img src="' . $src . '" />';
Не знаю, баг это, не баг, но пожелание оставил.

Зы. Ну что, я так понял, нужно ждать версию MODX 2.4, там эта проблема будет пофиксена.
   Marabar Инструкции 0    2 +1

Комментарии ()




    Вы должны авторизоваться , чтобы оставлять комментарии.

    Marabar 21 сентября 2018, 00:32
    Login в MODX revolution 25
    Marabar 17 мая 2018, 12:22
    Выводим облако тегов в MODX revo 17
    medortex 14 июля 2017, 16:26
    Меню Аккордеон в MODX revo 54
    Madao 16 мая 2017, 18:28
    msMiniCartDynamic 3
    Семён 05 мая 2017, 23:30
    Создание ресурсов из фронтенда 41
    Филитович Владимир 26 февраля 2017, 22:25
    Apache 2.2.22, установка и настройка 41
    valery 30 ноября 2016, 15:51
    phpMyAdmin 3.5.1, установка и настройка 3