Collections & Image+ против MIGX's ResourceMediaPath

Добрый день, уважаемые коллеги!

Ситуация следующая. Как известно, в Collections для отображения миниатюры ресурса, сделанной с помощью Image+, нужен кастомный рендерер...
Collections.renderer.imageplus = function(value, metaData, record, rowIndex, colIndex, store) {
    if (value != '' && value != null) {
        var data = Ext.decode(value);
        var url = MODx.config.connectors_url + 'system/phpthumb.php?imageplus=1';
        
        var params = {};
        params.src = MODx.config['collections.renderer_image_path'] + data.sourceImg.src;
        params.w = 100;
        if (data.sourceImg.src.indexOf('.png') !== -1) {
            params.f = 'png';
        }
        
        for (var i in params) {
            url += '&' + i + '=' + params[i];
        }
        
        return '<img alt="" src="' + url + '" width="' + (params.w || 80) + '">';
    }
}
Проблема в том, что если мы используем потрясающе удобную штуку — MIGX'овый ResourceMediaPath
[[!migxResourceMediaPath? &pathTpl=`resourceimages/{id}/` &createFolder=`1`]]
в качестве источника и для Image+ (а это тоже круто), то Collections не может её найти, так как для рендерера она находится в корне, и именно этот адрес он сообщает для imageplus (улика прилагается)
/connectors/system/phpthumb.php?imageplus=1&src=MG_4040-e1453303393690.jpg&w=100
Подскажите пожалуйста, как сделать так, что бы всё было как надо — что бы рендерер находил картинку, она отображалась в Collections и настало наконец счастье.
Серый
24 января 2018, 19:44
modx.pro
1 322
0

Комментарии: 6

Алексей Ерохин
25 января 2018, 10:37
0
В системных настройках пропишите collections.renderer_image_path = resourceimages/
Ну или другую настройку создайте в namespace collections и кастомный рендерер еще сделайте, чтобы стандартный остался

В рендерер как вы видите попадает record — эта вся строка из грида, в том числе и id (если вы конечно в настройках коллекции не удалили колонку id)

params.src = MODx.config['collections.renderer_image_path'] + record.id + '/' + data.sourceImg.src;
З.Ы. Не проверял.
    Серый
    25 января 2018, 13:41
    0
    Спасибо, помогло! Сделал вот такой кастомный рендер, где просто руками прописал путь к папке, где хранятся эти MIGX'ные ресурсные фотки:
    Collections.renderer.imageplusmigx = function(value, metaData, record, rowIndex, colIndex, store) {
        if (value != '' && value != null) {
            var data = Ext.decode(value);
            var url = MODx.config.connectors_url + 'system/phpthumb.php?imageplus=1';
            
            var params = {};
            params.src = 'resourceimages/' + record.id + '/' + data.sourceImg.src;
            params.w = 100;
            if (data.sourceImg.src.indexOf('.png') !== -1) {
                params.f = 'png';
            }
            
            for (var i in params) {
                url += '&' + i + '=' + params[i];
            }
            
            return '<img alt="" src="' + url + '" width="' + (params.w || 80) + '">';
        }
    }
    Через настройку никак не выходило, да и не больно-то хотелось)))
    Еще раз спасибо!
      Серый
      25 января 2018, 14:06
      0
      Хотя, я вот тут вижу, что картинка-то некропнутая выводится… Как же так?((
        Серый
        25 января 2018, 16:48
        0
        Коллега, прошу прощения за беспокойство, вот что обнаружил — кропнутым выводит, но почему-то только старые ресурсы, рендерер для Image+ от MIGX, и он к URL приписывается вот такое:
        &sw=598&sh=598&sx=0&sy=23
        в результате чего получается кропнутая картинка.
        Как мне можно эти данные для кропа добавить в этот наш путь
        params.src = 'resourceimages/' + record.id + '/' + data.sourceImg.src;
        ?
          Алексей Ерохин
          25 января 2018, 16:59
          0
          params.sw = data.crop.width;
                  params.sh = data.crop.height;
                  params.sx = data.crop.x;
                  params.sy = data.crop.y;
          Вставить перед
          for (var i in params) {
            Серый
            25 января 2018, 18:09
            0
            оспаде, как же хорошо-то, когда всё хорошо…
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6