Skip to content

JL Sitemap 2.2.0

Choose a tag to compare

@sergeytolkachyov sergeytolkachyov released this 25 May 11:20
· 2 commits to master since this release

Summary

Prepare JL Sitemap 2.2.0 with safer sitemap generation, Joomla 6 compatibility fixes, corrected multilingual VirtueMart URLs, hardened image sitemap output, and improved administrator AJAX behavior, add German translation.

Fixed Issues

What Changed

Sitemap generation safety

  • Added atomic writes for generated XML/JSON sitemap files.
  • New sitemap files are written to temporary files first and promoted only after successful generation.
  • Existing sitemap files are preserved until the replacement set is ready.
  • Old split sitemap files are deleted only after the new sitemap set is promoted.
  • Removed the local CLI direct-write fallback from production code.

Subdirectory URL handling

  • Fixed duplicated administrator/subdirectory paths in generated URLs.
  • Preserved the leading slash from Uri::root(true) when building site entry URLs.
  • Kept already root-prefixed paths intact in legacy cron URL preparation.

VirtueMart multilingual SEF routing

  • Fixed multilingual VirtueMart URL generation for sites where product/category aliases differ per language.
  • VirtueMart URLs are now routed per target language on multilingual SEF sites.
  • Alternates use the same per-language routing context.
  • Already routed VirtueMart URLs and alternates are marked to avoid central re-routing.
  • Single-language behavior remains unchanged.

Robots handling

  • Empty local robots values now fall back to the global site robots value.
  • noindex checks are normalized and case-insensitive.
  • Menu item robots handling no longer mutates global robots state for later items.

Content image behavior

  • Confirmed article sitemap images are emitted from Joomla images.image_fulltext.
  • Added admin-facing note that article images use the full article image field, not intro image.
  • Verified that disabling article images removes article image entries from generated sitemap XML.

Image sitemap XML output

  • Hardened sitemap text node writing for XML-sensitive values.
  • Fixed the public validator failure where an image URL containing raw & could become a self-closing <image:loc/>.
  • Sitemap text values are now XML-escaped before SimpleXMLElement::addChild().
  • Verified generated image URLs with query strings are written as escaped XML, for example &amp;.

Administrator AJAX actions

  • generate and remove XML sitemap actions are ajax-based now

Minimum platform requirements

  • Raised the package minimum Joomla requirement to 5.0.0.
  • Raised the package minimum PHP requirement to 8.1.0.
  • Updated the release package filename from j4_j6 to j5_j6.
  • Updated README support text to Joomla 5 and 6.

Scheduler CLI provider output

  • Fixed PHP 8.3 warning from incomplete multilingual association groups in the content sitemap provider.
  • Empty or null-date publish_up now means no scheduled start limit instead of excluding otherwise published articles.
  • Verified Scheduler CLI generation includes provider URLs, not only menu URLs.

Scheduler CLI multilingual routing

  • Fixed multilingual Scheduler CLI generation where provider URLs could collapse to home or language-home URLs such as /?lang=en-GB and /?lang=ru-RU.
  • CLI generation now prepares Joomla site routing context without making a frontend HTTP request.
  • When multilingual mode is enabled, the runtime context enables the site language filter state and attaches system/languagefilter build rules to SiteRouter if they are missing.
  • Single-language behavior remains unchanged because the new routing preparation exits early when multilingual mode is disabled.

Notes

  • #65 is intentionally not changed. The legacy system cron plugin is treated as deprecated because the Scheduler task plugin replaces it.
  • No live subdirectory stand was available for #78/#103; verification for that defect class is source/package-level.