Серый

Серый

С нами с 17 марта 2016; Место в рейтинге пользователей: #206
Серый
18 июля 2018, 15:34
2
+1
Вай-бай-бай, какая же красотища у нас с вами получилась, уважаемые коллеги! :-D


Код использовал уот такой:
<?php
return $modx->runSnippet('getImageList', array(
    'docid' => $scriptProperties['row']['id'],
    'tvname' => 'stockList_MIGX',
    'tpl' => '@CODE:<div style="background-image: url(/[[+image]]);background-position: top center;background-size: cover;background-repeat: no-repeat;width:50%;float:left;padding-bottom:50%;border:1px solid #fff;box-sizing: border-box;"></div>',
    'limit'=> 4
));

Категорически огромное вам человеческое спасибо!
Серый
18 июля 2018, 09:52
0
Ур-ра! Зарабо-отало! (голосом кота Матроскина)
Итак, в итоге:
<?php
$obj = json_decode($value);

return 'stock-photo/' . $scriptProperties['row']['id'] . '/' . $obj[0]->image;
а для строки в столбцах Collection помимо сниппета, еще добавил Collections.renderer.image

Рендерит шустро!
Но вот если бы еще можно было сделать через getImageList, да с tpl'кой!
Я б там зараз 4 штуки красиво запузырил бы квадратиком 2х2)))
Серый
18 июля 2018, 08:39
0
Плейсхолдер — где?) Плейсхолдер — куда?) Плейсхолдер — откуда?)
Картинки загружаются в свой отдельный источник файлов, который генерируется MIGX:
[[!migxResourceMediaPath? &pathTpl=`stock-photo/{id}/` &createFolder=`1`]]
Таким образом для каждого ресурса из таблицы Collections есть свой id, вот его плейсхолдер для написания пути к файлу я не могу подобрать. Он мне файл выводит, но просто имя, без пути. Могу папку написать, но как оформить id — не знаю. Безрезультатно перепробовал эти: [[+id]], [[*id]], [[+docid]], [[+record.id]]
Например:
<?php
return $modx->runSnippet('getImageList', array(
    'value'=> $value,
    'tpl' => '@CODE: <img src="/stock-photo/[[+record.id]]/[[+image]]" />',
    'limit'=> 1
));
Спасибо
Серый
17 июля 2018, 21:24
0

(((

Collections.renderer.migximage = function (value, metaData, record, rowIndex, colIndex, store) {
if (value != '' && value != null) {
var jsonString = value;
var jsonData = JSON.parse(jsonString);
var link = jsonData[0].stockList_MIGX;
return '';
}
};
Может что-то не так прописал?
Серый
17 июля 2018, 21:22
0
Да, надо что-то дописать, и никак не могу нагуглить плейсхолдер для id ресурса. Безрезультатно перепробовал эти: [[+id]], [[*id]], [[+docid]], [[+record.id]]
А еще страница с этим Collections загружается просто адски долго! Это норма?
Серый
10 июля 2018, 21:17
0
Дело было в моих комментариях. Я блок скриптов отделяю в верстке вот таким комментарием:
<!-- scripts + </body></html> -->
Вот перед этим у меня и вклинивался скрипт pdoPage. Тяжко быть нубом((
Серый
08 июля 2018, 13:11
0
Коллега, тысяча извинений, но я такой нуб, что у меня даже гипотезы нет, на что это менять(((
Выручайте пожалуйста…
Кстати, скажите, а это нормально, что pdoPage добавляет скрипт в конец страницы закомментированным, и в итоге он не работает? А то я просто беру его из кода страницы и вручную вставляю в свой чанк скриптов, но мне кажется здесь какой-то подвох…
Серый
07 июля 2018, 19:42
0
«Ну, дяденька, я же не настоящий сварщик...»)))
По каких словам хотя бы гуглить?
Серый
07 июля 2018, 12:09
0
Еще если можно, подскажите, можно ли как-то прицепить спиннер (индикатор загрузки), что бы пользователь видел, что скоро догрузится контент. Ну и пусть он всегда после крайней страницы будет, а как загрузщит всё — что б исчез. Я так понимаю, такое с кнопкой прокатит, но что делать при загрузке скроллом?
Серый
07 июля 2018, 11:41
0
UPD
Осенило вставить этот код без комментариев вручную в конец страницы. Заработало! Правда каждый раз при переключении режимов «кнопка»/«скролл» надо новый код перевставлять, так что я надеюсь, что где-то можно обойтись без этих костылей?
Заметил. что аякс не подгружает в анонимном режиме ни в ГуглХроме ни в Огнелисе.
Еще конечно мечтаю узнать способ как сделать что бы подгружалось ни при прокрутке, а просто в фоне, пока человек разглядывает текущий блок, там тихой сапой подгружаются остальные…

ЗАРАНЕЕ БЛАГОДАРЮ ЗА СОВЕТ!
Серый
25 февраля 2018, 13:46
0
Сори за неточность, подправил тему, добавил скриншот для ясности))
Серый
29 января 2018, 00:00
0
О, ребята! Какое спасибо вам за этот топик! Мне как раз нужно было сделать элемент, на котором выведется одна дата ближайшего события. Пощу свой вызов, который сработал (ну вдруг тут какой еще более зеленый нуб, чем я найдется)
[[!pdoResources?
	&parents=`2`
	&tpl=`event_tpl`
	&sortby=`date`
	&limit=`1`
	&includeTVs=`date`
	&where=`["date >= NOW()"]`
	&sortdir=`ASC`
]]
Серый
25 января 2018, 18:14
1
0
Вобщем, вот он, вот он рендер моей мечты:

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';
        }
        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) {
            url += '&' + i + '=' + params[i];
        }
        return '<img alt="" src="' + url + '" width="' + (params.w || 80) + '">';
    }
}
Большое человеческое спасибо Алексею Ерохину!


Серый
25 января 2018, 18:09
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, 14:06
0
Хотя, я вот тут вижу, что картинка-то некропнутая выводится… Как же так?((
Серый
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, 10:45
+1
Братан, я сам нуб, но сдается мне расширение файла должно быть tpl))
&tpl=`@FILE chunks/sidebar/side_category.tpl`
Серый
24 января 2018, 22:52
0
А если используешь MIGX'освский автоматическую папку для изображений ресурса? Как можно в код рендерера добавить переменную id ресурса?
Серый
20 января 2018, 00:12
0
Павел, это офигенно! Вы большой молодец! Пожалуйста, добавьте таймер — просто выбор даты и времени рядом с галкой и это будет просто бомба!!! Куплю всё! Ждём с нетерпением также плугинки для Одноглазников))