Changelog

CHANGELOG — pkg_rca_masonrywall (RCA Masonry Wall)

Current retail release:1.2.25 (2026-10-31) — install/upgrade only via pkg_rca_masonrywall_1.2.25.zip (pro feed pkg_rca_masonrywall).

1.2.25 — 2026-10-31

Fixed

  • Category line — shared Documents URL (hub pages): On documentation masonry grids (Joomla Categories mode), the detail box “in …” link used the parent Documents category id. loadPrimaryArticleInCategory() on that parent always returned the same first article in the tree (demo: J2C Direct Download docs), so every card pointed at one URL. The category line now uses each card’s doc category (label + link id). MasonrywallLibContentRoute::routeCategoryLine() routes the context article when its category matches the linked id or sits under it in the content tree; otherwise it uses the primary published article in that category only, then a dedicated category menu / core category route.
  • Articles mode (same resolver): Category lines on article cards pass the card article into routeCategoryLine() so nested doc categories under Documents resolve per card, not via the parent bucket.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.25. Verified on demo documentation hub after install.

1.2.24 — 2026-10-31

Fixed

  • Category line SEF (Content source, all layouts): Product doc sections use article menu items, not view=category menus. Category lines moved to routeCategoryLine() (article menu-first, same family as title/read-more).

Note

  • Superseded for Documents hub: Parent-category primary-article routing could still collapse every card to one URL until 1.2.25.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.24. Install/upgrade only via pkg_rca_masonrywall_1.2.24.zip.

1.2.23 — 2026-10-31

Fixed

  • Category line SEF (Content source): Detail box category links still used /component/content/category/ when the hub page Itemid was active. Shared resolver MasonrywallLibContentRoute added: menu lookup by query view/id (including layout=blog menus), article routes aligned with Joomla 6 core patterns.

Note

  • Itemid / route behavior refined in 1.2.24 and 1.2.25; stay on 1.2.25 for documentation hubs.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.23. Install/upgrade only via pkg_rca_masonrywall_1.2.23.zip.

1.2.22 — 2026-10-31

Added

  • Detail box element text colors: Global and per-layout (Big, Landscape, Portrait, Small, Columns) color fields for title, introtext, date, category, and read more. Accept #hex, rgb(), and var(--rca-*) via the existing csscolor admin field. Frontend CSS overrides legacy detail box tint rules when set.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.22. Install/upgrade only via pkg_rca_masonrywall_1.2.22.zip.

1.2.21 — 2026-10-31

Fixed

  • Content source routing (Articles + Categories modes): Article routes use numeric article id (J6). Category card read-more/title/image links use the first published article in each category when present (documentation sections), otherwise menu-aware category SEF.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.21. Install/upgrade only via pkg_rca_masonrywall_1.2.21.zip.

1.2.20 — 2026-10-31

Fixed

  • Frontend language (AJAX / pagination): Infinite scroll and paginated getContent requests did not load com_rca_masonrywall site language, so cards after the first batch showed raw keys (COM_RCA_MASONRYWALL_READ_MORE, COM_RCA_MASONRYWALL_IN_CATEGORIES). Site view loads the language file at the start of masonry rendering.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.20. Install/upgrade only via pkg_rca_masonrywall_1.2.20.zip.

1.2.19 — 2026-10-31

Fixed

  • Article read-more and title links (Content source): Links no longer use legacy compound catslug routing that pinned the hub page Itemid (e.g. on documentation pages). Resolves each article’s dedicated menu item when present, then Joomla 6 core article route with language.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.19. Install/upgrade only via pkg_rca_masonrywall_1.2.19.zip.

1.2.18 — 2026-10-26

Fixed

  • Detail box typography (frontend): Per-layout override loop reused the variable $layout for both the layout key and the readGroup() array, so appendGroupRules() received an array instead of a string (fatal on Columns/Vertical when any layout override such as line height was set).

Release

  • Suite lockstep: Package and every child ZIP are 1.2.18. Install/upgrade only via pkg_rca_masonrywall_1.2.18.zip.

1.2.17 — 2026-10-26

Fixed

  • Detail box typography form: Global and per-layout typography used twelve fields with identical labels, so three groups looked like duplicates. Form now separates title, introtext, and meta lines with headings, an explanatory note, and labels such as “Title — font size” and “Meta lines — font weight”. Pagination and filters tabs use distinct section titles.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.17. Install/upgrade only via pkg_rca_masonrywall_1.2.17.zip.

1.2.16 — 2026-10-26

Added

  • Widget typography (admin): Global font settings on the Detail box tab (title, introtext/description, date/meta/read more). Per-layout overrides on Big, Landscape, Portrait, Small, and Columns/Vertical tabs — non-empty layout values override global for that layout. Pagination and Filters & Sorting tabs include font size, line height, family, and weight. Empty fields keep default rca_masonrywall.css / template inheritance.

Fixed

  • Admin language strings:admin/language/en-GB/com_rca_masonrywall.ini used a # comment containing parentheses on the typography block. PHP parse_ini_file() treats that as a syntax error, so Joomla loaded zero strings and the backend showed raw COM_RCA_MASONRYWALL_* keys. Comment corrected to ; form without parentheses.
  • Package install (rebuild): Child extensions must live only under pkg_rca_masonrywall/zips/ per manifest <files folder="zips">. A bad 1.2.16 build put children at the assembly root and bundled stale ZIPs, so Joomla could not find zips/com_rca_masonrywall_1.2.16.zip (Install path does not exist). Rebuilt with build/assemble_child_zips.sh (flat child ZIP layout) and a clean package archive.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.16. Install/upgrade only via pkg_rca_masonrywall_1.2.16.zip.

1.2.15 — 2026-10-26

Fixed

  • Broken article images after media path moves:resolveContentImageUrl() strips #joomlaImage:// fragments and remaps missing /images/rca/rca-{folder}/ to /images/rca/{folder}/ when the file exists (Joomla articles + crop pipeline).
  • Frontend JS: Removed on-page “Image not found” banner; broken images are retried (clean URL / path remap) or hidden without aborting layout. arrangeIfReady() prevents Cannot read properties of undefined (reading 'arrange') on resize when Isotope is not ready.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.15. Install/upgrade only via pkg_rca_masonrywall_1.2.15.zip.

1.2.14 — 2026-10-26

Fixed

  • Columns layout (4-col / 98o): First item of each new row was positioned under the previous row’s last column (left: 975px etc.) because Isotope used packery (shortest-column). Columns grid now always uses fitRows so each row starts at left: 0 and tiles flow left-to-right. Layout mode control hidden for columns grid (not applicable).

Release

  • Suite lockstep: Package and every child ZIP are 1.2.14. Install/upgrade only via pkg_rca_masonrywall_1.2.14.zip.

1.2.13 — 2026-10-26

Fixed

  • Frontend (article / responsive CSS):textColorValue(): Argument #1 ($color) must be of type string, null given — loadResponsiveMasonry() now sets $db_color_src via widgetColorParam() (was undefined in that method). Color helpers accept null and coerce to inherit.
  • Admin csscolor: Color swatch moved to the left of the text input (after the field label), matching the original color-field layout.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.13. Install/upgrade only via pkg_rca_masonrywall_1.2.13.zip.

1.2.12 — 2026-10-26

Fixed

  • Frontend fatal:Class "MasonrywallLibResponsive" not found — responsive.php class renamed from legacy MinitekWallLibResponsive to match JLoader prefix and MasonryModel.
  • Admin csscolor field: Correct utilities.php path on save; removed HTML5 pattern so empty values validate.

Changed

  • Empty widget colors = inherit: Detail box, hover box, and related styling params may be left blank; frontend emits inherit so cells use active template/CMS text and background. No forced hex defaults on read when param is empty. New widgets default empty on bg/text color fields (existing saved colors unchanged).

Release

  • Suite lockstep: Package and every child ZIP are 1.2.12. Install/upgrade only via pkg_rca_masonrywall_1.2.12.zip.

1.2.11 — 2026-10-26

Added

  • Widget styling — CSS variables: Admin color fields accept #hex and var(--rca-*) tokens (new csscolor form field). Generated CSS uses backgroundColorValue() / textColorValue() so theme variables work on detail boxes, hover overlays, and responsive breakpoints — not only hex via hex2RGB().

Release

  • Suite lockstep: Package and every child ZIP are 1.2.11. Install/upgrade only via pkg_rca_masonrywall_1.2.11.zip.

1.2.10 — 2026-10-26

Fixed

  • Frontend (module / category pages):Mwall is not defined — WAM now loads rca_masonrywall.js / rca_masonrywall.css (renamed from legacy Minitek filenames on disk). Widget init inline script is registered via WAM with a dependency on the main script so load order is correct.
  • Media / WAM: Removed minitek from shipped asset filenames; admin bundle is admin-rca_masonrywall.* with asset name com_rca_masonrywall.admin.

Release

  • Suite lockstep: Package and every child ZIP are 1.2.10. Install/upgrade only via pkg_rca_masonrywall_1.2.10.zip.

1.2.9 — 2026-10-26

Fixed

  • Joomla articles widget — Categories (permanent): Widget save now always upserts #__rca_masonrywall_widgets_source when the widget has a source_id (removed brittle source_type gate that skipped writes). getItem() always hydrates stored source_params and normalizes legacy source_typejoomla → content. Save merges posted jform[source_params] with validated data and existing DB values so category IDs are not wiped when showon-disabled fields are omitted from POST. Defaults joomla_mode to ja for the content source. Raw POST is read via input->post (not filtered get()).

Release

  • Suite lockstep: Package and every child ZIP are 1.2.9. Install/upgrade only via pkg_rca_masonrywall_1.2.9.zip.

1.2.8 — 2026-10-26

Fixed

  • Joomla articles widget — Categories: Selected categories (e.g. Free Extensions) now persist after save. WidgetModel merges posted jform[source_params] with validated data so fancy-select category IDs are not dropped. Content source form uses Joomla 6 filter="intarray" on category/tag multi-selects; IDs normalized on load/save.

Release

  • Suite lockstep: Package and every child ZIP in pkg_rca_masonrywall are 1.2.8. Install/upgrade only via pkg_rca_masonrywall_1.2.8.zip — not individual child packages.

1.2.7 — 2026-10-26

Fixed

  • Widgets (Joomla articles source): Saving a widget no longer fatals with array_key_exists(): Argument #2 ($array) must be of type array, null given when validated form data omits source_params. Posted jform[source_params] is merged on save; widgets_source insert vs update uses row existence instead of stale id in $data.

1.2.6 — 2026-10-17

Fixed

  • Dashboard / widget module step: Public links use official product slug rca-masonry-wall (not legacy rca-wall / rca-wall-pro). Canonical URLs centralized in MasonrywallHelper.
  • Dashboard: Removed JED review card until RCA Masonry Wall is listed on JED.

1.2.5 — 2026-10-17

Fixed

  • Custom Items → New:ItemModel::getItem() no longer passes NULL images / urls into Registry::loadString() (J6 type error on add form).
  • Custom Items save:use Joomla\CMS\String\PunycodeHelper for external URL fields (was unqualified class on save).
  • Widgets: NULL-safe Registry::loadString() for masonry_params / source_params when DB values or rows are missing.

1.2.4 — 2026-10-17

Fixed

  • Custom Grids / Custom Items: J3 CMSObjectget()/set() on stdClass from getItem() — GridModel, Grid/HtmlView, ItemModel, Item/HtmlView (same class of bug as widget 1.2.1).
  • Widget edit:$item->source_id instead of $item->get('source_id') in WidgetModel::getItem().
  • J6 table API:GroupTable / WidgetTable duplicate-name check uses new static($this->getDatabase()) instead of Table::getInstance() (removed J7).
  • Content source plugin: Joomla tags via TagTable + Factory::getDbo() instead of legacy TagsTable factory.
  • Admin DB access:Factory::getDBO() → Factory::getDbo() across component PHP.

Note (audit — deferred, not runtime blockers on J6)

  • Source helpers still use JLoader::register / registerPrefix for MasonrywallLibUtilities and site libraries/ (Minitek-era); migrate to PSR-4 in a later pass.
  • Categories::getInstance() in content source helper (deprecated; still works J6).
  • Non-namespaced RcaMasonrywallContentSource and legacy site library classes unchanged.

1.2.3 — 2026-10-17

Fixed

  • Widget Settings tabs: load component and all plg_content_rca_masonrywall* administrator language files so Data source and Layout labels render (not raw PLG_* / COM_* keys).
  • Layout grid selector: register Web Asset Manager styles/scripts as admin-minitekwall (files on disk); fixes missing tile grid CSS/JS.
  • Dashboard update available banner when package 1.2.x is installed but component manifest lagged: localVersion() uses the highest version from component manifest and #__extensions (component + package).
  • Source picker: VirtueMart and JomSocial titles in component language file.

1.2.2 — 2026-10-16

Fixed

  • Data source tab empty while source plugins are enabled: merge forms/{source}.xml from the active plugin in WidgetModel::preprocessForm() (not only onContentPrepareForm); bind wizard source_id in loadFormData(); template fallback via getGroup('source_params').

1.2.1 — 2026-10-16

Fixed

  • Widget settings after type/source select: Cannot use object of type stdClass as array in WidgetModel::loadFormData() when binding wizard widget_type (1.2.0 regression).

1.2.0 — 2026-10-16

Fixed

  • Select Type / Select Source: Wizard forms use id="adminForm" so Joomla.submitbutton() no longer throws Cannot read properties of null (reading 'task').

Added

  • Slider layout type in the type step (stored as widget_type; DB column added on upgrade).
  • Minitek-style source catalog: Joomla, Custom Items, Image folder, VirtueMart, JomSocial, RSS feed, RCA Social (coming soon). K2, EasyBlog, and EasySocial are excluded from the wizard.
  • Content plugins VirtueMart and JomSocial (admin forms + package children; frontend loaders stubbed until API wiring).

1.1.9 — 2026-10-16

Added

  • New widget wizard aligned with Minitek Wall Pro: Select Type → Select Source → Settings (TYPE / SOURCE / SETTINGS header on the settings step).

Fixed

  • Data source tab empty: import content plugins in WidgetModel::preprocessForm() so source plugin XML (e.g. Joomla Articles / Categories) merges into the widget form.
  • General tab: show widget Title (name) and Status like Minitek (was description-only with broken title layout).
  • Data source fields render from {source_id}_source fieldset even when the event list is empty.

Note

  • Scroller type is shown for parity with Minitek J3 but is not supported in RCA Masonry Wall J4/5/6 (schema and frontend are masonry-only).

1.1.8 — 2026-10-16

Fixed

  • Widget edit after source select: PHP 8 in_array() on null ignoreFieldsets (ensure source[key] and ignore arrays are always defined).

1.1.7 — 2026-10-16

Fixed

  • New widget / source picker: Import content plugins before onWidgetPrepareSource so enabled source plugins show green Select (they were treated as inactive in admin). Source form POST includes view=widget. Enable plugin links open the plugin list filtered by element (avoids Joomla “not permitted to use that link (#…)” on direct plugin edit URLs).

1.1.6 — 2026-10-16

Fixed

  • Package update: disabled legacy Minitek script.php postflight that called InstallModel::install() without a local package path (could surface Install path does not exist during package updates). Child extensions are only installed via pkg_rca_masonrywall child ZIPs.
  • Build: assemble_child_zips.sh verifies every child ZIP listed in the package manifest exists before release.

1.1.5 — 2026-10-16

Fixed

  • Widget source picker: disabled source plugins no longer link to bogus RCA Source - {type} plugin searches; Enable plugin opens the correct com_plugins edit screen for rca_masonrywallcontent, rca_masonrywallfolder, etc. (same tab). Green Select appears once the plugin is enabled.

1.1.4 — 2026-10-16

Fixed

  • Admin/site controllers: protected $option = 'com_rca_masonrywall' (and FormController view_item/view_list) so New Widget / New Custom Grid no longer redirect to non-existent com_masonrywall (404 Component not found).

1.1.3 — 2026-10-16

Fixed

  • Dashboard: read version from com_rca_masonrywall.xml (not legacy rca_masonrywall.xml); version check uses RCA pkg_rca_masonrywall feed; remove Minitek installer auth prompts.
  • Source plugins: correct PLG_CONTENT_RCA_MASONRYWALL* language keys (fork typo MASONRYWALLE*); manifest <name> uses language constants for Extension Manager labels.

1.1.2 — 2026-10-16

Fixed

  • Admin bootstrap: services/provider.php uses Joomla\CMS\HTML\Registry for setRegistry() (fixes “Resource Joomla\\Registry\\Registry has not been registered with the container” on J6).

1.1.1 — 2026-10-16

Fixed

  • Site module install: mod_rca_masonrywall.xml language paths now use folder="language" and en-GB/mod_rca_masonrywall.ini (fixes JInstaller missing INI at package extract root).

1.1.0 — 2026-10-16

Added

  • Protocol fork: RCA install elements (com_rca_masonrywall, mod_rca_masonrywall, plg_content_rca_masonrywall*), namespace RCA\Component\Masonrywall, tables #__rca_masonrywall_*.
  • Source plugins renamed to rca_masonrywallcontent, rca_masonrywallcustom, etc.; loader and helper wiring updated.
  • JED-facing manifests: ReCreatingAnew author, no Minitek update servers, THIRD_PARTY_NOTICES.txt for upstream attribution.

Removed

  • Do not use 1.0.0 — upstream Minitek element names; withdrawn before retail install.

1.0.0 — 2026-10-16 (withdrawn)

  • Superseded by 1.1.0 RCA fork. Never install on production/demo.