Overview

Refresh Article is an Article Generator feature that brings an existing Joomla article up to date for the current year. It works on articles you already have in Content > Articles — not new pieces — and is designed for evergreen content (how-tos, buying guides, comparisons, opinion pieces) that has aged.

The feature runs a five-stage pipeline: load the article, search the web for newer information, distil each source into key facts, ask the model to rework the article around those facts, and regenerate the banner. You see each stage live in an activity log. When the pipeline finishes, the preview pane shows the current and new banners side-by-side and loads the refreshed body into a full-width editor — tweak it, preview it as a page in a new tab, and apply when you’re happy.

Applying a refresh commits the change through Joomla’s ArticleModel, so every refresh creates a normal content-history version — you can roll back from the article’s Versions toolbar button at any time.

Live activity log

A sidebar log shows each pipeline stage as it runs, including per-source distillation, so you can see progress and diagnose stalls.

Article Generator - Live activity log
Article Generator - Live activity log
Preview before applying

Current and new banners shown side-by-side. The refreshed body loads into the standard Joomla editor and a one-click button opens it in a new tab styled like a page so you can sanity-check rendering.

Article Generator - Preview and Draft
Article Generator - Preview and Draft
Versioned + reversible

Apply commits through Joomla’s ArticleModel. Each refresh is a normal content-history entry; roll back from the article’s Versions button.

Joomla - Article Versions
Joomla - Article Versions

Before You Start

Refresh Article uses the same AI and search infrastructure as the rest of Article Generator. If you can already generate new articles, you can already refresh existing ones — no extra setup. If you are starting fresh, make sure the following are in place:

  1. Article Generator installed and configured. See Components > Article Generator > Options. You need:
    • An OpenAI or Claude API key (for the model that does the actual rewriting).
    • A search provider key (Serper, Tavily or Google Custom Search) so the pipeline can look up current sources.
  2. An article to refresh. Refresh works on any standard Joomla article — you do not need to have generated it with Article Generator first. The best candidates are evergreen pieces that mention dated material (old prices, retired products, “in 2023”-style framing, deprecated tools).
  3. A reasonable PHP execution window. Compose can take 60–240 seconds. If you are on shared hosting, check that PHP’s max_execution_time and your host’s FPM request_terminate_timeout allow that long. See Troubleshooting below if you hit a server timeout.
Tip: You do not need to have written the article in Article Generator. Refresh works against any article in your Joomla content, including those imported from another CMS or hand-written years ago.

Getting Started

Step 1
Open Refresh Article

Navigate to Components > Article Generator > Refresh Article. Click the article picker and choose any article from your Joomla content — it uses the standard Joomla modal article picker.

The current title, banner controls and editor note fields load alongside the article body.

Article Generator - Generate the preview
Article Generator - Generate the preview
Step 2
Generate the preview

Optionally add source URLs and an editor’s note (see Editor Controls below), then click Generate Preview. The activity log fills in stage by stage.

During the run the rest of the page collapses out of focus so you can watch the log. A “please wait” banner reminds you the call may take a minute or two.

Article Generator - Banners
Article Generator - Banners
Step 3
Review and apply

The current and new banners appear side-by-side at the top of the preview pane. The refreshed body loads into the full-width Joomla editor below. Use Preview refreshed body to see the draft styled as a page in a new tab, or Open original article to compare against the live version. Click Apply refresh in the toolbar when you’re happy.

If you are not ready, click Save draft instead — the editor state is stored against the article and shown in the “Drafts in progress” list.

Joomla Article Preview
Joomla Article Preview

The Refresh Pipeline

Generate Preview runs five stages in sequence. Each stage updates the activity log as it completes; you can also open the Diagnostics disclosure to inspect what was sent and received.

  1. Load article — pulls the existing article from #__content, including introtext, fulltext and the current banner preferences for this article.
  2. Search for updates — runs a targeted web query ("{title} {year} latest") through your configured search provider. Anything you put in the source URLs field is treated as additional sources; if you supply enough URLs the pipeline can skip the search step entirely.
  3. Distil sources into facts — one AJAX call per source. For each, the model extracts a short KEY FACTS list of new model names, dated statistics, recent events and anything else worth pulling into the rewrite. Per-source calls mean you see progress instead of one long wait.
  4. Compose refreshed body — the main rewrite. The model receives the existing article, the distilled facts, and your editor’s note, and returns a substantially reworked HTML body with current framing, updated references and at least one section on recent developments.
  5. Regenerate banner — renders a new banner using the chosen icon and theme to a staged preview path. The live banner only updates when you click Apply refresh, at which point the staged file is simply promoted to the live path — no second AI call.
Tip: A similarity percentage is shown when Compose finishes. If the model returned something ≥97% identical to the source it usually means the prompt was too constrained or the article was already current — open Diagnostics and inspect the prompt and raw response.

The activity log makes this distinction explicit: the preview pipeline shows Regenerate banner, and the apply pipeline shows Promote staged banner. Apply re-uses what was generated during preview; it does not re-run the model or re-render the banner.


Editor Controls

Reviewing the refreshed draft

Two buttons sit above the editor once the preview is ready:

  • Open original article — opens the live Joomla article in a new tab. Useful for tab-to-tab comparison while the editor stays focused on the draft.
  • Preview refreshed body — opens the current editor content (including any tweaks you have just made) in a new tab styled with Bootstrap typography. As close to “Joomla article preview” as we can get without saving the draft into #__content first — Joomla’s own preview can only render saved articles.

Source URLs

Paste one URL per line into the Source URLs textarea. The pipeline fetches each one and includes it in the distil stage alongside (or instead of) the automatic web search results. Use this when you know the canonical updated reference for a topic.

Editor’s note

A short free-text instruction passed to the Compose stage. Use it to steer the rewrite: “emphasise the price changes”, “remove references to the discontinued model”, “keep the tone informal”. Treat it as a one-line brief for the editor doing the rewrite, not a list of edits to make.

Banner icon and theme

Pick a Font Awesome icon and a colour theme for the new banner. Your choice is remembered per-article — the next refresh on the same article uses the previous selection automatically. Cancelling or discarding does not change the live banner; only Apply does.

Cheap summariser (optional)

In Components > Article Generator > Options, enable Cheap summariser to use a smaller, faster model (GPT-4o Mini for OpenAI, Claude Haiku for Claude) for the per-source distil stage. The main Compose call still uses your configured model. Typical savings: roughly 25% of a refresh’s time and cost.

Max tokens

If you regularly hit server-side timeouts, lower max_tokens in the provider settings (4000 is a good middle-ground; 8000 is the default and produces longer rewrites). This caps the rewrite length but is the most reliable way to keep Compose comfortably inside a shared host’s execution window.


Drafts & Versioning

Save draft

Click Save draft in the toolbar to persist the current editor state, banner choice and source-URL list against the article without touching the live content. Drafts appear in the Drafts in progress list on the Refresh view, so unfinished work is easy to find across articles.

Apply refresh

Apply commits the refreshed body through Joomla’s ArticleModel and promotes the staged banner to the live banner path. Two consequences worth knowing:

  • Joomla creates a normal content-history version — roll back from the article’s Versions toolbar button.
  • Standard content-save events fire, so any plugin that listens (SEO, sitemap regeneration, cache busting, social posters) runs normally.

Discard preview

Discards the staged preview and clears any draft for the article. The live article and banner are untouched.

New

Closes the current refresh and returns to the article picker so you can refresh a different article.


Tips for Better Refreshes

  1. Pick evergreen pieces, not news. Refresh works best on how-tos, buying guides, comparisons and opinion pieces. News stories that report a moment in time should be left alone or rewritten manually.
  2. Supply your own source URLs for technical topics. Web search can miss canonical updates (vendor changelogs, official documentation). Paste the URL of the current reference and Refresh treats it like a hand-picked source.
  3. Use the editor’s note to set direction, not detail. A short prompt (“focus on the iPad lineup, drop iPhone references”) shapes the whole rewrite. A long list of edits tends to be ignored or applied unevenly.
  4. Inspect the similarity figure. ≥97% means the model didn’t engage with the source material. ≤60% usually means it went too far — review carefully before applying.
  5. Keep one tab open and avoid navigating away during Compose. The activity log streams from the server; leaving the page mid-run cancels the stage you’re on (although the previous stages survive as a draft).
  6. Re-run after applying when needed. Refresh is non-destructive: you can refresh the same article again, and the second pass will see the now-current text. Useful when a big topic shift happens mid-year.

Troubleshooting

This means the server returned an HTML page instead of JSON — typically a server-level timeout or 500 error page. From version 3.4.5 onwards the activity log surfaces the real cause directly (“Server returned a non-JSON response (HTTP X)”) so you can act on it.

Most common fix: lower max_tokens in the AI provider settings to 4000. If you have shell access on the host, the proper fix is to raise PHP’s max_execution_time and the FPM request_terminate_timeout to at least 600 seconds. On shared hosting, contact your host with that wording.

If the similarity figure is ≥97% the model declined to substantially rework the article. Open Diagnostics in the activity log and check the prompt and raw response — usually the source material was sparse or the editor’s note was over-constrained. Add more source URLs, broaden the note, and try again.

Verify your search provider API key is valid and has credit. Try a different provider (Serper, Tavily, Google Custom Search) to rule out provider-specific issues. As a workaround, paste reference URLs into the Source URLs field — the pipeline runs with no web search if you supply your own sources.

The banner stage only runs after a successful Compose stage, and only writes to the staged preview path until you click Apply refresh. If the live banner still shows the old image after Apply, check write permissions on images/banners/ and clear any front-end image cache.

Drafts are stored in #__artigen_article_refresh_drafts and are tied to the article id. If a draft will not load, open the article picker, pick the article again, and either Discard preview to clear it or Generate Preview to overwrite it with a fresh run.

Get support

Contact us

Questions, bug reports, feature requests — get in touch.

  • Website: multizone.co.uk
  • Email: This email address is being protected from spambots. You need JavaScript enabled to view it.
  • In-app help: Each Multizone component has a setup checklist on its dashboard and contextual descriptions on every form field.

What support covers

All Multizone extensions are freely downloadable as trials.

  • Trial — community support via the documentation and changelog.
  • Standard / Premium / Enterprise — direct email support; response priority and depth scale with tier.

Documentation and changelogs for every extension live at multizone.co.uk/extensions.

Licences, trademarks, source code licences and attributions

928uk® is a trademark of Multizone Limited, registered in the UK. Multizone and this site is not affiliated with or endorsed by The Joomla! Project™. Any products and services provided through this site are not supported or warrantied by The Joomla! Project or Open Source Matters, Inc. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited licence granted by Open Source Matters, Inc. AdMob™, AdSense™, AdWords™, Android™, Chrome OS™, Chromebook™, Chrome™, DART™, Flutter™, Firebase™, Firestore™, Fuchsia™, Gmail™, Google Maps™, Google Pixel™, Google Play™, Pixelbook Go™, and Pixel™ and other trademarks listed at the Google Brand Resource center are trademarks of Google LLC and this site is not endorsed by or affiliated with Google in any way. Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc. The OSI logo trademark is the trademark of Open Source Initiative. Any other product or company names may be trademarks™ or registered® trademarks of their respective holders. Use of these trademarks in articles here does not apply affiliation or endorsement by any of them.

Where the source code is published here on multizone.co.uk or on our GitHub by Angus Fox, Multizone Limited it is licenced according to the open source practice for the project concerned.

BSD 3-Clause "New" or "Revised" Licence
Original source code for mobile apps are licenced using the same licence as the one used by "The Flutter Authors". This Licence, the BSD 3-Clause "New" or "Revised" Licence (bsd-3-clause) is a permissive licence with a clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.
GNU General Public Licence v3.0 or later
Original source code for Joomla! published here on multizone.co.uk by Angus Fox, Multizone Limited is licenced using the GNU General Public Licence. This Licence, the GNU General Public Licence Version 3 or later (gpl-3.0+) is the most widely used free software licence and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same licence.

Please respect the licences and dont use the name of this site or our company to promote derived products without written consent. I mean, why would you? You're not us!

Amazon Associate
As an Amazon Associate we earn from qualifying purchases.
Logo
Our Logo Image is by Freepik. We chose it because its an M and also the letter A twice - and that represents us.
Graphics
Our images representing user experience and interface design are from Freepik here and here and here and here and here.