#1541 Posted in ‘Showtime Image Gallery’

Latest post by Lefteris Kavadas on Monday, 31 August 2026 19:34 EEST

Jip Jonker

Hi Lefteris,

We're using Showtime Image Gallery (v1.10.1) on a Joomla 6 site that also has its own separate PhotoSwipe-based lightbox for regular article images (a custom system plugin, unrelated to Showtime). When a Showtime gallery (renderer: PhotoSwipe, layout: Wall) and one of our own popup images appear on the same page, we run into two issues:

1. CSS/icon conflict between two PhotoSwipe versions

Showtime's PhotoSwipe renderer bundles PhotoSwipe 4.1.2 (media/showtime/vendor/photoswipe/), while our own integration uses the current PhotoSwipe 5.x (ESM build). Both use the same .pswp/.pswp__* class names — that's expected, since it's PhotoSwipe's own convention — but the CSS rules and DOM structure differ significantly between the two major versions (e.g. v4's sprite-based icons via default-skin.css/png/svg vs. v5's inline SVG icons). When both stylesheets load on the same page, they visibly clash: broken/duplicated icons in both the Showtime modal and our own modal.

Would you consider updating the bundled PhotoSwipe renderer to the current PhotoSwipe 5.x release? That would align it with the version most sites are standardizing on now, and would remove the version-mismatch as a source of conflicts for anyone running a second PhotoSwipe integration alongside Showtime.

2. jQuery is loaded even though it isn't needed

We noticed plugins/showtime/photoswipe/photoswipe.php (initialize(), around line 24) unconditionally calls HTMLHelper::_('jquery.framework'), even though PhotoSwipe itself doesn't require jQuery. We checked all seven bundled renderers — they all make this same call, presumably copied across from the renderers that genuinely need it (Fancybox, Magnific, Swipebox). We also confirmed the "Wall" layout itself (macy.js) has no jQuery dependency at all.

For sites that have deliberately removed jQuery elsewhere, this means enabling the Showtime module reintroduces it — solely because of this one line, not because PhotoSwipe or the Wall layout actually need it. Would it be possible to drop the jquery.framework call from the PhotoSwipe (and lightGallery, which has the same situation) renderer specifically? That alone would let sites use Showtime with the PhotoSwipe renderer without pulling in jQuery.

Happy to provide more detail or test a patch if useful. Thanks for considering these!

Best regards,
Jip Jonker

Lefteris Kavadas

Hi Jip,

Thanks for the detailed report.

We definitely plan to update all bundled lightboxes to their latest versions. However, this was originally planned for the next major version of Showtime.

Regarding PhotoSwipe specifically, I’m currently considering whether it would be better to upgrade the existing PhotoSwipe renderer from v4 to v5, or introduce PhotoSwipe 5 as a separate renderer while keeping the existing one for backward compatibility.

Since you’re already working with PhotoSwipe 5 and have looked into the differences between the two versions, I’d be interested to hear your take on this. Do you see any reason why replacing the existing PhotoSwipe 4 renderer with v5 could cause compatibility issues for existing Showtime users, or would you consider a direct upgrade the better approach?

Regarding jQuery, you’re correct that it shouldn’t be loaded by renderers that don’t actually depend on it. I’ll review this and remove the dependency from PhotoSwipe and lightGallery where it isn’t needed.

Thanks again for taking the time to investigate this and provide such detailed feedback.

Best regards,
Lefteris

Jip Jonker

Hi Lefteris,

Thanks for the quick and thoughtful response!

On the PhotoSwipe 4 vs. 5 question: I'd lean toward introducing v5 as a separate renderer rather than replacing v4 in place. The two versions are quite different in structure — v5 uses an ESM build with inline SVG icons and a different DOM layout, while v4 relies on a sprite-based skin and a jQuery-style initialization. Any Showtime user who has written custom CSS targeting the v4 DOM (e.g. .pswp__button--arrow--left + custom backgrounds) or custom JS that hooks into PhotoSwipe's v4 API would silently break on a direct upgrade.

A separate "PhotoSwipe 5" renderer entry keeps v4 working for existing installations, lets new users opt into v5 directly, and gives you a clean deprecation path for v4 when the timing is right.

The one thing worth noting for a v5 renderer: PhotoSwipe 5 expects to own the .pswp container and its CSS globally. If you bundle the v5 CSS inside Showtime's own stylesheet scope, it'll still conflict with any other v5 integration on the same page (including ours). Loading it as a separate asset that the browser deduplicates — ideally registered via Joomla's Web Asset Manager so $document->getWebAssetManager()->useStyle('photoswipe') prevents double-loading — would solve that cleanly.

Happy to test a dev build if that's useful.

Best regards,
Jip

Lefteris Kavadas

Hi Jip,

Thanks for the detailed feedback. I think your suggestion of introducing PhotoSwipe 5 as a separate renderer makes a lot of sense, and I've already started working on it.

While implementing it, I immediately ran into one limitation of PhotoSwipe 5. The zoom animation doesn't work correctly when the gallery thumbnails use the Crop resize method instead of Fit. Since cropped thumbnails have a different aspect ratio than the original image, the opening animation starts from an incorrect image area and then expands to the full image, which ruins the effect.

To handle this gracefully, I'll detect when cropped thumbnails are used and automatically fall back to the fade animation instead of the zoom animation.

I'll probably have a development build ready tomorrow. I'll send it over so you can test it and let me know if you run into any issues or have any further suggestions.

Thanks again for all the valuable input.

Best regards,
Lefteris

Jip Jonker

Hi Lefteris,

Thanks for the update — good to hear you're already underway.

One thought on the Crop-vs-zoom issue: I'm not 100% sure this applies to your implementation, so take it as a suggestion rather than a fix, but PhotoSwipe 5 has a thumbCropped option that tells it the thumbnail is center-cropped (like object-fit: cover), and it adjusts the opening/closing animation to start from the correct visible sub-area instead of assuming the thumbnail matches the full image.

If that works as I understand it, it might let you keep the zoom animation for Crop thumbnails too, rather than falling back to fade across the board. Worth a quick look before you finalize the approach — but if you've already considered it and fade is simpler/more reliable, no strong opinion from my side.

Best, Jip

Lefteris Kavadas

Hi Jip,

Thanks for the suggestion. I did look into thumbCropped, but unfortunately it only applies to client-side (CSS) cropping.

In that scenario, the thumbnail is still the same image as the full-size image, with CSS simply hiding the outer areas (for example using object-fit: cover). PhotoSwipe knows how to compensate for that and produces the correct zoom animation.

Showtime's Crop resize method is different. The thumbnail is physically cropped server-side and saved as a separate image with different dimensions and content. Because information outside the cropped area no longer exists in the thumbnail, PhotoSwipe can't accurately calculate the zoom transition. The PhotoSwipe documentation also notes that this case isn't supported for the zoom animation.

For cropped thumbnails, I'll therefore fall back to the fade animation, while galleries using the Fit resize method will continue to use the zoom effect.

Thanks again for the suggestion and for taking the time to look into it.

Best regards,
Lefteris

Lefteris Kavadas

Hi Jip,

Just a quick follow-up to let you know that Showtime Image Gallery v1.11.0 was released today.

As discussed, it includes PhotoSwipe 5 as a new renderer, while keeping the existing PhotoSwipe 4 renderer for backward compatibility.

I'd really appreciate it if you could give it a try on your site and let me know your thoughts. Since you've been kind enough to provide feedback throughout the implementation, I'd be especially interested to hear whether you spot any issues or have suggestions for further improvements.

Thanks again for all your valuable input during the development process.

Best regards,
Lefteris

Jip Jonker

Hi Lefteris,

Thanks for the update — I tested v1.11.0 on our site (Showtime gallery combined with our own PhotoSwipe 5 lightbox plugin on the same page) and can confirm the original CSS conflict is resolved.

With the renderer set to PhotoSwipe 5, the gallery now loads only PhotoSwipe 5.4.4 assets — no v4.1.2 files, and no jQuery at all. I also tested a page with both a Showtime Wall gallery and a separately-triggered PhotoSwipe 5 lightbox (our own plugin, unrelated to Showtime) — both work cleanly side by side, no broken/duplicate icons, no console errors.

One small note, not a bug on your end: on our test page the gallery was rendered through a Joomla module instance, which turned out to have its own separate "Renderer" setting, independent from both the item-level display setting and the extension's global default. Took me a moment to find — worth keeping in mind if other users report "I changed the renderer but nothing happens." ;-)

Thanks again for the quick turnaround on this.

Best,
Jip

Lefteris Kavadas

Hi Jip,

Thanks a lot for taking the time to test it so thoroughly.

I'm glad to hear that the PhotoSwipe 5 renderer resolved the original conflict and that it now works cleanly alongside your own PhotoSwipe 5 integration. That's exactly the scenario I was aiming to support.

Thanks as well for pointing out the separate renderer setting in the module. You're absolutely right—that can be easy to overlook. I'll keep that in mind if anyone reports that changing the renderer doesn't seem to have any effect.

I really appreciate all the feedback you've provided throughout this process. Your reports and suggestions helped shape the implementation and made the end result much better.

If you run into anything else or have ideas for further improvements, don't hesitate to let me know.

Best regards,
Lefteris

Note: An active subscription is required in order to get support for our paid extensions. For our free extensions, if you don't have an account, register and then submit your support request.  In case you just want to ask a question, you can also use the contact form .

Firecoders
Are you using our extensions? Please post a review at the Joomla extensions directory!
Post a review