3. Case study: one Article, six image sources
Joomla's own com_content Article is a good stress test, because a single article can reference images through six genuinely different mechanisms:
- Intro Image —
imagesJSON column, keyimage_intro - Full (Main) Image —
imagesJSON column, keyimage_fulltext - Link A —
urlsJSON column, keyurla(Article's Links tab; a link field can point directly at an image or document asset) - Link B —
urlsJSON column, keyurlb - Link C —
urlsJSON column, keyurlc - Images embedded in the body —
<img>tags,srcset, inline CSSurl(...), etc., anywhere inside theintrotext/fulltextHTML the editor produces
Using the Custom Analyzer Builder, sources 1 through 5 are each reachable — but only as five separate Custom Analyzer definitions, since each definition is limited to one column/JSON-key. That already means five separate rows per article showing up across the audit screens, rather than one clean "Article" entry.
plg_mat_content exists as a coded plugin: its extractRefsFromHtml() method DOM-parses introtext and fulltext for src, href, poster, srcset, and inline-style url(...) references — something no amount of Builder configuration can replicate.The actual shipped plg_mat_content plugin handles all six sources from one coded plugin, in one method chain, and reports every image an article references as fact records tied to a single owner — the article itself — with metadata.source_field distinguishing which of the six sources each reference came from.