Designing Image Galleries for Multilingual Sites
How to handle gallery captions, localized image descriptions, and output logic when one gallery must work across multiple languages.
Practical how-to articles, migration notes, implementation walkthroughs, and focused recipes.
How to handle gallery captions, localized image descriptions, and output logic when one gallery must work across multiple languages.
How to stop Ditto pagination from sending multilingual visitors back to the default language when using YAMS.
How to make AjaxSearch find documents by both title and numeric ID when content names are too similar to use alone.
Why product thumbnails can disappear during Shopkeeper cart recalculation and how to keep EvoGallery image paths stable.
Why an accordion menu can fail to open the current branch when visitors arrive from internal links, and how to make Wayfinder output the right active classes.
How to store a list of resource IDs in a TV and feed that list directly into Ditto for controlled cross-template output.
Several reliable ways to pull TV data from a known resource and reuse it in the current template without duplicating content manually.
A practical way to decide between TV-based filters, structured attribute storage, and hybrid catalog filters in Evolution CMS stores.
Why AjaxSearch highlights the keyword in the results list but not on the destination page, and what to preserve so the target resource can still highlight the query.
A small ManagerManager patch that lets mm_requireFields validate dropdown fields the same way it already validates text inputs and textareas.
If one attachment works but two break the whole form, the mail and upload pipeline probably still assumes a single-file field.
A good recent-comments block needs more than a raw query — it needs truncation, links back to the article, and predictable formatting for old comment data.
If mFilter builds the filter form but the listing comes from another snippet, the two sides need a shared understanding of the current result set and parameters.
Small redirect helpers are useful when a page should exist only as a routing entry point into the actual document tree.
Geotargeting starts as a city-detection feature, but quickly becomes a content, cache, and fallback problem if the site depends on it heavily.
When one product has several variants with separate prices and quantities, the cart model needs to represent the variant explicitly instead of treating the item as one flat product row.
If new users should start working immediately after signup, the registration flow has to switch from activation-first to trusted or moderated onboarding.
A recent-comments block works best when the comment source scope is explicit — otherwise the widget can quietly fall back to comments from everywhere.
Because TV values are stored as text, numeric comparisons need explicit ordering logic if you want true maximum and minimum results.
A catalog with 1,000–1,500 items needs more than a simple list snippet — it needs a content model that stays manageable as filters, images, and prices grow.