Changelog

RCA Feed Factory Changelog

6.0.20 — 2026-10-03

Changed

  • Scope 3C admin UI: SR4 docblocks and toolbar help URLs on HtmlView classes; tmpl/layout header alignment; removed unused view $sidebar properties.
  • Admin feed edit: feed.js and factoryajaxlink.js refactored off jQuery (Bootstrap 5 + fetch); WAM asset dependencies updated.

6.0.19 — 2026-08-08

Fixed

  • Feeds list Last refresh story count: badge used Bootstrap 4 classes (badge-secondary badge-pill), which rendered the number as white-on-white in J4/J5/J6 admin. Now uses badge text-bg-secondary.

Changed

  • Import2Content feed edit: Helix Format Bridge fieldset loads at the top of the right column (before Relevant stories). Requires System - RCA Helix Format Bridge 1.0.3+ (fieldset import2content_helix_format).

6.0.18 — 2026-08-08

Changed

  • Import2Content feed edit: Helix Format Bridge fieldset loads at the top of the right column (before Relevant stories and Publishing). Empty fieldsets are skipped; fieldset legends prefer the XML label when present.

6.0.17 — 2026-08-08

Added

  • I2C events: onImport2ContentBeforeSave / onImport2ContentAfterSave now pass mutable data, feed, cache, and extracted media (video_url, video_urls, video_index, audio_url, audio_embed, gallery_images) for bridge plugins.
  • RcaFeedFactorySocialMediaFetcher::extractVideoEmbedUrls() / extractPrimaryVideoEmbedUrl($html, $index) / pickVideoUrlByIndex() — ordered embeds (Rumble, BitChute, TikTok, YouTube, Vimeo, Dailymotion, Odysee, known iframes); index is Dom-style 0 = first; index past the end uses the last embed.
  • Enclosure import: image MIME/links (photography/gallery feeds) and audio/podcast enclosures with HTML5 <audio> player; feed switches i2c_enclosure_images / i2c_enclosure_audio.

Changed

  • I2C article payload initializes attribs to {} so format bridges can merge Helix3 / Helix Ultimate keys before save.
  • I2C reads feed param rca_helix_format_video_index when selecting which embed becomes extracted.video_url.

6.0.16 — 2026-08-08

Fixed

  • I2C image download: Cloudflare/WP hosts returned HTTP 403 to bare curl; downloads now use browser User-Agent, Accept image headers, article Referer, shared cookie jar, and magic-byte acceptance when Content-Type is not image/*.
  • Lead og:image injection now runs before image localization so injected heroes are downloaded into images/Y/m/d/.
  • I2C image_intro / image_fulltext: if the body still only has remote https:// imgs after parse, download the first usable remote hero and rewrite it locally so Newsberg list/module layouts (which treat remote URLs as filesystem paths under /j4/) get a real thumb.

Repair existing Showcase articles (GinA)

Articles already saved with remote image_intro (e.g. Art of Healthy Living) will not auto-heal. After installing 6.0.16:

1. Prefer delete + re-import affected I2C stories from the Art of Healthy Living feed (or refresh feed / clear cache then re-run I2C for those items).

2. Or manually clear images + re-save after a feed refresh that recreates articles.

3. Run RCA Media Bridge bulk sync (fill-empty) so Helix/spfeatured match local intro paths.

4. Confirm frontpage Top Stories / Health category cards show local /j4/images/… thumbs and body imgs no longer keep remote srcset.

6.0.15 — 2026-08-06

Fixed

  • Sample favicons misaligned to feed IDs: packaged ico_{md5(1..4)}.png files and fresh-install sample order now match Joomla Security (1) / Good News Network (2) / Art of Healthy Living (3) / FOXBusiness (4).
  • JED Checker: GPL headers on backup/exception/value-object PHP files that lacked a license notice.
  • JED Checker Pattern #21: replace octal/hex character escapes in ICO sniff and style trim with chr() (same bytes, no \x/\0 clusters).

Notes for JED reviewers (warnings, intentional)

  • base64_encode / base64_decode on story enclosure blobs and SimplePie HTTP Basic auth are data transport, not code obfuscation. Do not remove; existing DB rows store base64(serialize(...)).
  • <iframe> markup is used for social embeds (Rumble etc.) and admin story preview. Not injected attacker content.

6.0.14 — 2026-08-06

Changed

  • Fresh-install sample feeds: Joomla Security Announcements, Good News Network, Art of Healthy Living, FOXBusiness Latest Headlines (IDs 1–4 on empty table; removed Wired / Smashing Magazine samples).
  • Sample favicons shipped as media/icos/ico_{md5(1..4)}.png aligned to that ID order (Joomla / GNN / AOHL heart / FOX Business). Installer also attempts a live favicon fetch after each sample insert.

Fixed

  • (Template patch, not in ZIP) Newsberg frontpage thumb slider Undefined property: stdClass::$featured_image — see showcase-j4-patches RCA PATCH 005.

6.0.13 — 2026-08-06

Fixed

  • Add New Feed save failed under MariaDB strict mode with Field 'userid' doesn't have a default value: userid is not on the feed form and was omitted from INSERT. FeedTable::check() now stamps the saving admin’s user id (and normalises cat, NOT NULL text/params/protocol fields).
  • New-feed form ignored Configuration → Default article parameters: I2C Author, Category, Published, publishing period, prepend/append, and access level now prefill from component defaults on Add (and when session state is empty after a failed save). Form XML no longer hard-defaults author/category to 0 or published to No.

6.0.12 — 2026-08-05

Added

  • I2C CSS selector cheatsheet: when/how/why for attribute selectors (^= starts with, *= contains, $= ends with), combined AND form, partial class, and why #id* glob stars fail; clarified #. space >,* and [attr] symbols. Remove examples include numbered-id families such as [id^=between_article_content_].

6.0.11 — 2026-08-05

Fixed

  • Agent SR_ZIP violation on 6.0.10: same-version package rebuild changed L1 ZIP bytes (and SHA256) after a feed had already been written for that version, which produced Joomla updater “checksum verification failed.” Corrected by bumping to 6.0.11 with atomic L1 ZIP + coordinating /dev feed SHA256 (verified match). References updated: Feed Factory 6.0.x = pro; never rebuild same version; never leave L1 without matching feed in the same run.

6.0.10 — 2026-08-05

Fixed

  • Business Standard (and similar Akamai-protected) RSS still returned 0 stories after 6.0.9: SimplePie already sends an Accept header; adding a second Accept via set_curl_options(CURLOPT_HTTPHEADER) produced a duplicate-Accept request that Akamai answered with HTTP 403. Feed fetch now sets only a Chrome-like User-Agent (no extra Accept). Verified SimplePie init() returns items with UA-only; duplicate Accept fails with 403.
  • Package update failed with “Install path does not exist” / error installing com_rca_feedfactory_6.0.9.zip: pkg_rca_feedfactory.xml still listed child ZIP filenames at 6.0.9 while the package contained 6.0.10 ZIPs. Manifest filenames synced to the package version; build script now rewrites those names on each build.

6.0.9 — 2026-08-04

Fixed

  • Import2Content created no com_content articles on refresh: RcaFeedFactoryImageHandler called Joomla\Filesystem\Folder::exists() (removed from the standalone Filesystem package). That throws an Error, which bypassed catch (\Exception) in Import2ContentHelper / Remove rule and aborted article save after stories were cached. Replaced with is_dir(); image download failures are caught so I2C still saves; full-article and Remove rule catches use \Throwable.
  • Downloaded I2C images 404 on subdirectory installs (e.g. site at /j4/): HTML rewrote src to root-absolute /images/… instead of Uri::root(true) + path. Local URLs now use the site base; bare /images/… that already exist on disk are rewritten to the correct web path; remote /images/… paths are no longer skipped as “already local.” Path-relative WP image URLs resolve against the article directory (same approach as 5.0.0 absolute-URL handling).
  • I2C articles left images as empty {}, so Helix full_image Open Graph read undefined image_intro. Import now sets image_intro / image_fulltext (and empty companion keys) from the first local images/… src in the body.
  • Dom Parser / WordPress markup kept width/height/srcset/sizes and figure style="width:…px" after local image download, so blog grids (e.g. newsberg col-sm-4) overflowed. Image processing now strips those layout locks so CSS can scale images to the container.
  • Remove rule: a trailing comma in a multi-selector field (e.g. .a, .b,) made HtmlDomParser::find() match nothing so no junk was removed. Empty segments are stripped before find; cheatsheet/field help warn against a dangling comma.
  • I2C Rules cheatsheet: use case for Newspaper/tagDiv sites where the hero (#td-full-screen-header-image) sits outside div.td-post-content — Remove first, then two Dom Parser rules, with selectors/settings and reasoning; workflow lines updated to match.
  • Feed refresh against CDN-protected RSS: SimplePie used a compatible; … SimplePie User-Agent that Akamai often 403s. Outbound fetch uses a Chrome-like User-Agent; remoteReadUrl() uses the same UA profile for page fetches. (Extra Accept curl headers from an intermediate attempt were removed in 6.0.10 — they duplicated SimplePie’s Accept and caused 403.)

Changed

  • I2C Rules cheatsheet / Details: how to pick selectors (shortest unique class or id); same-element multi-class uses dots not spaces; wrong vs right AddToAny example; Remove before Dom when using Dom Parser; share-button example includes .addtoany_share_save_container.

6.0.8 — 2026-08-04

Added

  • Import2Content Full Article Rules: CSS selector cheatsheet accordion (prefix/syntax, Dom Parser, Remove, Image/YouTube, quick workflow) under the Details help text on the feed edit form.
  • Feed edit retains the active tab (Details / Import2Content / Full Article Rules) across Save, Refresh, Clear Cache, and reload via tab request param, hidden field, and optional URL hash.

Changed

  • I2C Full Article Rules Details help text expanded with Inspect Element guidance and CSS selector prefix rules.

6.0.7 — 2026-08-04

Fixed

  • Feed refresh fatal on Joomla 4: CacheTable::getDatabase() is undefined (Table::getDatabase() exists only from J5.4+). Tables now use a J4/J5/J6-safe getTableDatabase() accessor (getDatabase() when present, else getDbo()). Same fix on ContentTable.
  • Feed refresh fatal: Site\Helper\RcaFeedFactoryCache not found — PSR-4 file was still named RssFactoryCache.php. Renamed site Helper files to match class names (RcaFeedFactoryCache, RcaFeedFactoryCategories, RcaFeedFactoryFeedsHelper, Html\RcaFeedFactoryFeeds).
  • Installer success message showed raw key COM_RCA_FEEDFACTORY_INSTALL_SAMPLE_FEEDS_SEEDED: load admin .sys/.ini language in postflight before Text::_().
  • Clear Cache fatal on Joomla 4: Joomla\CMS\Event\Finder\AfterDeleteEvent is J5+ only. FeedModel / CacheModel now dispatch that event on J5/J6 and use triggerEvent('onFinderAfterDelete', …) on J4.
  • Saving a feed with no Import2Content category selected failed under MariaDB strict mode (Incorrect integer value: '' for column i2c_catid): empty form values are now coerced to 0 in FeedTable::check(), and i2c_catid / i2c_author form fields use filter="integer" with default 0.
  • Install success message language key COM_RCA_FEEDFACTORY_INSTALL_SAMPLE_FEEDS_SEEDED set to: “Sample category and feeds were created successfully.” (admin + sys.ini).

Changed

  • Fresh-install sample feeds: create matching com_content Samples category and assign it to i2c_catid (FF Samples category still on cat).
  • Sample feeds set userid and i2c_author to the installing admin (fallback: first Super User).
  • Sample I2C article state defaults to published (i2c_published=1); I2C remains off (i2c_enabled=0) until configured.
  • Sample I2C access level defaults to Public (i2c_access_level=1), not Guest (5).
  • Removed “This feature is experimental!” from Import2Content Full Article field description.
  • Configuration → Import2Content defaults (install + update): default author = installing admin / Super User; default category = com_content Samples; Insert relevant stories = No; access level Public when unset.

6.0.6 — 2026-08-04

Added

  • Fresh install seeds a Samples category and four demo feeds (Joomla Security Announcements, Good News Network, Wired Top Stories, Smashing Magazine). Skipped when any feed already exists.
  • Installer script class renamed to com_rca_feedfactoryInstallerScript (global namespace) so Joomla actually loads postflight — namespaced Script was never invoked, so categories/menu/sample feeds never seeded.

Fixed

  • Package install File::copy failure on J4 after uninstall: <scriptfile>admin/script.php</scriptfile> tried to copy into administrator/components/com_rca_feedfactory/admin/ (parent never created). Installer script is now package-root script.php.
  • Last Refresh date (and related refresh metadata) not updating after a successful feed refresh on J5/J6: refresh wrote rsserror / last_refresh_stories as PHP false, which DatabaseDriver::quote(false) turns into ''; MariaDB strict mode rejected the UPDATE so stories could refresh while the feed row’s date stayed stale. Metadata is now updated with an integer-typed query.
  • Refresh success message missing for the same reason: metadata UPDATE failure made refresh() return false, and the controller logged an empty error via Log::add (not shown in admin UI) instead of setMessage. Controllers now enqueue success/error messages; model sets error state on metadata failure.
  • Add New Feed form fatal on J4/J5/J6: favicon preview field passed null id into FeedsHtml::icon(int|string) — coerce missing id to 0 and accept null.

6.0.5 — 2026-08-04

Fixed

  • Admin list sorting (column headers + sort/direction dropdowns) on Feeds, Promos, Comments, and Submitted Feeds: removed duplicate filter_order / filter_order_Dir fields so POST no longer overwrote the selected order with the previous hidden values
  • Missing Configuration → License field descriptions: LICENSE_MESSAGE_DESC, LICENSE_CHECKED_AT_DESC
  • Update feed download URLs use private/download.php (Joomla Updater was mangling ?dlkey= into the ZIP filename and failing extract)
  • Update feed download URLs use private/download.php (fixes Joomla Updater mangling ?dlkey= into the ZIP filename)

6.0.4 — 2026-08-04

Added

  • About page edition status: Pro trial (with day), licensed Pro, or Community (free) with upsell to license/buy

6.0.3 — 2026-08-04

Changed

  • Licensed installs re-validate against RCA License Manager at most every 7 days (TTL). Explicit Configuration → Save still validates immediately. If the license server is unreachable during a TTL refresh and status was already valid, Pro is kept and the next retry is scheduled in 1 day.
  • Update packages staged under pro downloads; extension update feeds use private feed URLs (paid/trial product path).

6.0.2 — 2026-08-04

Added

  • Community / Pro entitlement: one package with install/update-timed 14-day Pro trial, then Community until a valid license key is registered (Configuration → License)
  • Sarcastic trial countdown notices in admin (message rotates every 4 days; distinct day-17 notice; no notices after lock)
  • License validation client against RCA License Manager (product=com_rca_feedfactory); buy CTA https://recreatinganew.com/
  • Pro gates: Import2Content, promos, submitted feeds, FTP fetch/test; dashboard hides Pro tiles when locked

Changed

  • Docs / package description: JED-facing copy states 14-day Pro trial only (no other window lengths in public text)
  • License Manager product slug for Feed Factory SKUs: com_rca_feedfactory (aligned with install element)

6.0.1 — 2026-08-03

Fixed

  • Submitted Feeds admin list on Joomla 4: Undefined array key "" in AbstractView::getModel() — default display routes through DisplayController, and J4 never calls prepareViewModel() (J5+). Compound view names (submittedfeeds → SubmittedfeedsModel) failed MVCFactory resolution, so no default model was attached. Remap getModel() for SubmittedFeeds / SubmittedFeed / SubmitFeed on admin DisplayController and related controllers; same remap for site submit-feed display; Submittedfeeds view reads sort fields via get('SortFields') instead of bare getModel().
  • Update feeds: Joomla’s updater SAX parser keeps only the last<targetplatform> — three separate 4/5/6 tags meant J4 sites only evaluated 6.[0-9]+ and never offered updates. Replaced with one combined regex (4|5|6)\.[0-9]+ on all RCA Feed Factory feeds; component feed sets <client>administrator</client> explicitly.

6.0.0 — 2026-08-03

Added

  • Full end-user documentation set under media/com_rca_feedfactory/docs/ (Getting Started, Upgrade, Feed Parsing, Community vs Pro, Import2Content Rules rewrite, Samples, Cron, Frontend/Menus, Modules/Plugins, Backup/Restore, FAQ)
  • Component and package README.txt / rewritten CREDITS.txt with lineage and Andrei / ThePHPFactory permission (28 Apr 2026)
  • About page links to installed documentation

Changed

  • Public major version aligned to Joomla 6 maturity of the continued RSS Factory Pro line (not a 1.0.0 reset)
  • In-app strings: email rule subject and pseudo-cron plugin requirement now say RCA Feed Factory (not “Rss Factory”)

Fixed

  • Carries forward 5.3.35: ONLY_FULL_GROUP_BY-compliant queries; global setSqlMode() removed
  • Carries forward 5.3.x embed/preview/favicon/I2C hardening from the transitional series

Removed / replaced (documented for upgraders)

  • Magpie (removed)
  • Bundled simplepie.inc (Composer SimplePie only)
  • Legacy bundled simple_html_dom.php (Composer voku/simple_html_dom)
  • klogger (Joomla Log::add())
  • Global SQL mode workaround

5.3.35 — 2026-08-03

Fixed

  • B-04 closed: Removed global setSqlMode() / resetSqlMode() workaround from site entry and cron refresh; all feed list/count queries rewritten for ONLY_FULL_GROUP_BY compliance using correlated subqueries (admin Feeds list, tiled feeds, story sort-by-votes/comments, toolbar vote totals)
  • Site FeedsModel and CategoryModel now use the authoritative Administrator\Helper\RcaFeedFactoryFeedsHelper (complete implementation)

5.3.34 — 2026-08-03

Fixed

  • JED hardening: replaced legacy thePHPfactory authorship blocks in 16 admin tmpl partials with SR4 headers
  • Favicon refresh no longer errors when remote fetch fails: copies bundled default.png or writes neutral GD placeholder; tries www/non-www host variants and /favicon.webp
  • About page remote manifest cache uses Joomla cache API instead of raw JPATH_CACHE file writes (DEFER-002)

5.3.33 — 2026-08-03

Fixed

  • Favicon refresh fails on WordPress/Cloudflare sites with empty root /favicon.ico (e.g. 100percentfedup.com): fallback parses homepage <link rel="icon"> / apple-touch-icon hrefs; rejects zero-byte and HTML error-page responses before GD decode

5.3.32 — 2026-08-03

Fixed

  • Preview modal PHP 8 notices: DatabaseQuery::bind() now receives variables for created/expires SQL values (not method return expressions)
  • Leaked Rumble embedJS loader + Rumble("play",…) plain text in Preview Rules when full-page parse succeeds: scrubLeakedPlatformScripts() runs on parsed preview and at end of parseFullArticle(); smart-quote normalization; strip loader IIFE fragments

5.3.31 — 2026-08-03

Fixed

  • Rumble script API embeds (Rumble("play",…)) leaked as plain text after script strip: convert to iframe before strip in parseFullArticle(); convert leaked plain-text calls on RSS fallback
  • TikTok blockquote+embed.js and BitChute/Rumble URL embeds on RSS content:encoded path: normalizeImportBody() runs on I2C import and Preview Rules cached fallback (parity with full-parse processContent())
  • Wired processRumbleEmbeds() and processBitChuteEmbeds() into processVideoEmbeds() pipeline

5.3.30 — 2026-08-03

Fixed

  • Preview Rules modal blank for Ben Garrison (and other Cloudflare-blocked sources): FeedModel::preview() now falls back to cached RSS item_description when parseFullArticle() returns empty — parity with 5.3.29 I2C import path; client-side guard when AJAX returns empty body

5.3.29 — 2026-08-03

Fixed

  • Ben Garrison I2C empty article body (source link only): WordPress cartoon feeds embed the image in RSS content:encoded while description is a plain excerpt — Parser now prefers get_content() when it carries media; Import2ContentHelper no longer overwrites cache with empty parseFullArticle() result when Cloudflare blocks full-page fetch

5.3.29 — 2026-08-03

Fixed

  • Settings save fatal error Call to a member function getForm() on false: ConfigurationController constructor dropped MVC factory injection; restored full BaseController constructor signature; explicit Administrator model prefix; CSRF token check on save

5.3.27 — 2026-08-03

Fixed

  • Ben Garrison I2C empty: restored 5.3.16 parse extraction order (Readability first, DomParser pipeline only when empty); removed 5.3.25–5.3.26 domparser-first/runI2cRulePipeline refactor; I2C downloadImages=true (5.3.16 verified); DomParser outer_html default restored to 1

5.3.26 — 2026-08-03

Fixed

  • Ben Garrison I2C/preview empty (5.3.25 regression): 5.3.25 disabled Readability when DomParser rules were configured; Ben Garrison had succeeded via Readability in 5.3.23 — restored Readability as fallback after DomParser pipeline; DomParser runs first (maxm order); DomParser default outer_html=0 (innertext, maxm parity); normalize I2C rule params from Registry/DB; consistent isI2cRuleEnabled() check

5.3.25 — 2026-08-03

Fixed

  • Ben Garrison / DomParser I2C empty #__content: Readability ran before configured Dom Parser rules and blocked maxm-style div.single-page-content extraction; skip Readability when enabled DomParser rules exist; discard Readability boilerplate when it yields no visible content; I2C import uses downloadImages=false (preview parity); ignore false DomParser rule output

5.3.24 — 2026-08-03

Fixed

  • I2C Ben Garrison / image-only cartoon articles empty in #__content (preview OK): CacheTable::stripTags() now preserves media when allow-list would erase image-only HTML; ReadMore rule skips system-readmore for image-only posts; ContentTable::addReadMore() skips word split when no plain text; lazy-load data-src promoted before image download; I2C retries with absolute URLs when download path yields empty content; ensurePrimaryImagePresent('') fetches og:image

5.3.23 — 2026-08-03

Fixed

  • Preview modal preg_replace(): Unknown modifier '.' — regex used # delimiter with unescaped # in /embed/# pattern (buildEmbedIframeFallback + iframe detect)
  • Ben Garrison / image-only cartoon preview blank — strip_tags() treated image-only extracted HTML as empty; use hasVisibleExtractedContent() (text OR img/media); cartoon selectors in fallback; og:image last resort; preview skips image download (downloadImages=false)

5.3.22 — 2026-08-03

Fixed

  • Refresh favicon PHP 8.4 deprecation persists on update: getSiteIcon() tries GD imagecreatefromstring() on PNG/apple-touch-icon URLs before ICO vendor loader; complete lordelph/icofileloader PHP 8.4 nullable param patch (?array, ?string)
  • Preview rules WordPress oEmbed iframe shows "connection refused": replace blocked third-party embed iframes (wp-embedded-content, /embed/ URLs) with readable link fallback; keep YouTube/Vimeo/Rumble/BitChute/Dailymotion/Odysee embeds

5.3.21 — 2026-08-03

Fixed

  • Preview rules modal error: readUrlAndConvertUtf8() wrote cURL cookie jar to /tmp/helpers/cookie.txt — parent directory did not exist; use flat com_rca_feedfactory_cookie.txt in system temp (matches remoteReadUrl())
  • Refresh favicon PHP 8.4 deprecation: vendored Elphin\IcoFileLoader\IcoFileService::__construct() — explicit ?RendererInterface / ?ParserInterface nullable params

5.3.20 — 2026-08-03

Fixed

  • Feeds manager icon column PHP warning: FeedsHtml::icon() used $src before assignment when appending cache-bust query (5.3.19 regression)
  • Preview rules modal on J6: load bootstrap.modal via WAM; register modal with HTMLHelper::_('bootstrap.modal'); initialize via Joomla.initialiseModal() + modal.open() (Bootstrap 5 ES module — window.bootstrap not available until WAM loads)

5.3.19 — 2026-08-03

Fixed

  • Current icon field rendered as empty text input on J6: form type RcaFeedFactoryProIcon requires class RcaFeedFactoryProIconField — was misnamed RcaFeedFactoryProFeedIconField (Joomla field autoload mismatch)
  • Refresh feed icon appeared to do nothing: consequence of text-input fallback — icon preview zone now renders <img> like maxm; favicon URL cache-bust via filemtime
  • I2C articles in #__content invisible in Article Manager: J6 list INNER JOINs #__workflow_associations — ContentTable::store() now creates default workflow stage for new articles (ArticleModel parity)
  • Preview rules modal: append modal to document.body for BS5 stacking; alert when no story selected; preview response Content-Type text/html

5.3.18 — 2026-08-03

Fixed

  • Module Extension Manager display: manifest <name> now uses MOD_RCA_FEEDFACTORY / MOD_RCA_FEEDFACTORY_CATEGORIES language keys (was raw element slug)
  • Refresh feed icon stuck on "Processing...": AJAX update zone targeted #current_icon but icon field id is #jform_current_icon — RcaFeedFactoryAjaxLinkField resolves target field id from form; factoryajaxlink.js adds fail/always handlers; JSON Content-Type header; fail refresh when favicon file not created
  • Preview rules 404: feed.preview routes to FeedController on J6 (not FeedRawController) — moved preview() handler; feed.js URL includes task=feed.preview

5.3.17 — 2026-08-03

Fixed

  • Feed toolbar Refresh 500: RcaFeedFactoryParseFullArticleTrait calls sanitizeUrl() — method was missing on RcaFeedFactoryHelper (fatal during I2C full-article parse on refresh)
  • Refresh feed icon AJAX 500: admin services/provider.php vendor autoload path pointed at invalid ../../site/vendor/ — use JPATH_SITE/components/com_rca_feedfactory/vendor/autoload.php; harden getSiteIcon() (create icos dir, scheme-aware favicon URL, Throwable catch)
  • Refresh icon JSON response: use FeedsHtml::icon() instead of HTMLHelper::image() with full URL
  • Clear Cache success message: add missing COM_RCA_FEEDFACTORY_FEED_N_ITEMS_CLEARED_CACHE (+ _1, _NO_ITEM_SELECTED, refresh plurals) to admin language file

5.3.16 — 2026-08-03

Fixed

  • Refresh feed icon AJAX still 404 after 5.3.15: feedjson.* tasks resolve to FeedjsonController (ucfirst only) — class is FeedJsonController; moved refreshIcon / testFtp to FeedController with legacy tasks feed.refreshicon / feed.testftp
  • Feed refresh 0 stories with empty cache: #__rca_

Image
Good Joomla extensions deserve to live.
RCA's Protocol gives them the structure to survive — and the roadmap to transcend.
Call Briony at

234.201.6456

Email Briony at

briony@recreatinganew.com

Find Briony at

3924 W River Rd

Sidney, Maine 04330

© 2026 ReCreatingAnew. Designed By GinA