MoreGallery TV - Images with resource specific path return wrong resource id inside path

I’m running moregallery1.16.0 on MODX3.0.4.

Setting up a new project, I started running into problems with a resource specific image paths.

This is my setting for moregallery.source_relative_url: assets/resources/[[+resource]]/gallery/

All images get stored like it is supposed to be:

Problem 1:
I have collection (8) with multiple moregallery child resources (27,28,29,30).

Inside the collection there is a MoreGallery TV where you are supposed to pick a gallery image from each child gallery.

The first image is always displayed, but the following images are always broken because the id part is fixed to the resource id of the first image.

Example:
This is how it looks like in the manager:

/assets/resources/29/gallery/_thumbs/113_69db9a7d6600c386b22cc30037deeada.jpg
/assets/resources/29/gallery/_thumbs/108_71d15323441ef4e648be46aba9bcb078.jpg
/assets/resources/29/gallery/_thumbs/106_1e9dc4fca40cd60c94c9412afac36fb5.jpg
/assets/resources/29/gallery/_thumbs/100_0a4422cc4ebaa98b39545f6a44283f49.jpg

This is how it should look like:
/assets/resources/29/gallery/_thumbs/113_69db9a7d6600c386b22cc30037deeada.jpg
/assets/resources/27/gallery/_thumbs/108_71d15323441ef4e648be46aba9bcb078.jpg
/assets/resources/28/gallery/_thumbs/106_1e9dc4fca40cd60c94c9412afac36fb5.jpg
/assets/resources/30/gallery/_thumbs/100_0a4422cc4ebaa98b39545f6a44283f49.jpg

Problem 2:
Exactly the same happens when I use mgGetImages to retrieve a couple of images by image id that have different resourde ids.

As I normally rewrite the whole paths inside a snippet (it never works like it is supposed to be), this is not really a problem, but inside the manager this is not an option.

Regards, Patrick

Another place where this pops up, but with a twist.

I’m using a snippet to render thumbnails inside a collection:

<?php
/*
    display moregallery thumbnail tv
    gallery_thumbnail_imageTpl   = "..[[+mgr_thumb]]"
    gallery_thumbnail_wrapperTpl = "[[+output]]"
*/


if(empty($value)) return "../assets/tpl/images/placeholder-image.png";

$value = explode(',',$value);

$img1 = $value[0];

$thumb = $modx->runSnippet(
    'mgGetImages',
    array(
        'images' => $img1
        ,'sortBy' => 'selection'
        ,'imageTpl' => 'gallery_thumbnail_imageTpl'
        ,'wrapperTpl' => 'gallery_thumbnail_wrapperTpl'
        ,'limit' => '1'   
    )
);

return $thumb;

This is the result:

All the broken images contain the id of the image that works (42).

BUT here comes the twist:

There is one collection that works:

It has the same template, collection settings, etc. I can’t see any difference to the other collections.

Theories whats going on here a are very welcome.

Cheers,

Patrick

Another update. The exception “healed” itself and now it also doesn’t work. I did nothing in the meantime, just reloaded the page the nth time and now it is broken too:

This is the reason for the weird behavior. It was never intended to put placeholders there, though I guess that would’ve worked (sorta by accident) until we made it possible to retrieve images from different resources in a single call.

To get it to work we’ll need MoreGallery to switch resources internally any time it uses the source relative url to make sure it parses that with the right variables. I’m not immediately sure what the side effects of that will be, but I’ve logged an issue (#260) and we’ll look into it.