Collections & Image+ против MIGX's ResourceMediaPath
Добрый день, уважаемые коллеги!
Ситуация следующая. Как известно, в Collections для отображения миниатюры ресурса, сделанной с помощью Image+, нужен кастомный рендерер...
Ситуация следующая. Как известно, в 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 и настало наконец счастье. Комментарии: 6
В системных настройках пропишите collections.renderer_image_path = resourceimages/
Ну или другую настройку создайте в namespace collections и кастомный рендерер еще сделайте, чтобы стандартный остался
В рендерер как вы видите попадает record — эта вся строка из грида, в том числе и id (если вы конечно в настройках коллекции не удалили колонку id)
Ну или другую настройку создайте в namespace collections и кастомный рендерер еще сделайте, чтобы стандартный остался
В рендерер как вы видите попадает record — эта вся строка из грида, в том числе и id (если вы конечно в настройках коллекции не удалили колонку id)
params.src = MODx.config['collections.renderer_image_path'] + record.id + '/' + data.sourceImg.src;
З.Ы. Не проверял.
Спасибо, помогло! Сделал вот такой кастомный рендер, где просто руками прописал путь к папке, где хранятся эти 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) + '">';
}
}
Через настройку никак не выходило, да и не больно-то хотелось)))Еще раз спасибо!
Хотя, я вот тут вижу, что картинка-то некропнутая выводится… Как же так?((
Коллега, прошу прощения за беспокойство, вот что обнаружил — кропнутым выводит, но почему-то только старые ресурсы, рендерер для Image+ от MIGX, и он к URL приписывается вот такое:
Как мне можно эти данные для кропа добавить в этот наш путь
&sw=598&sh=598&sx=0&sy=23
в результате чего получается кропнутая картинка.Как мне можно эти данные для кропа добавить в этот наш путь
params.src = 'resourceimages/' + record.id + '/' + data.sourceImg.src;
? 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) {
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.