Feature Language Change PR-6.3-dev Pending

User tests: Successful: Unsuccessful:

avatar LadySolveig
LadySolveig
24 Aug 2026

Pull Request resolves # .

  • I read the Generative AI policy and my contribution is either not created with the help of AI or is compatible with the policy and GNU/GPL 2 or later.

Summary of Changes

Fields - Article Plugin

Adds a custom field type Article for linking a Joomla article to any item that supports custom fields.

In the edit form it shows the familiar article selection modal, optionally with buttons to create a new article or edit the linked one in place. On the front end it renders the linked article's title as a link.

image

Two things are still open by design and needs a descision - feedback and suggestions welcome:

  • Multilingual sites: a linked article currently shows even if its language differs from the page
    being viewed.
  • Language in the picker: the selection modal is not restricted to the language of the item you're
    editing when you first open the edit form.

Parameters

Display Options

Parameter Options Default
Show Archived Yes / No Yes
Show Unauthorised Links Use Global / Use Article Settings / Yes / No Use Global

General

Parameter Options Default
Allow Creating Articles Yes / No Yes
Allow Editing Articles Yes / No Yes
Default Article empty

The two picker toggles only restrict further, they do not grant anything a user lacks permission for.


Behaviour

  • Trashed articles are hidden from everyone, administrators included.
  • Unpublished articles (and those outside their publishing window) are hidden from visitors, but
    shown with an "Unpublished" badge to users who may edit them.
  • Access levels are respected. "Show Unauthorised Links" works like the equivalent menu item setting and can defer to
    the article's own setting.
  • Permissions are checked per article A linked article checked out by someone else disables the Edit button with a note.
  • The field type disappears entirely if com_content is disabled.

Testing Instructions

Setup

  1. Go to System → Plugins, search for Fields - Article, make sure it is Enabled.
  2. Go to Content → Fields, click New.
  3. Set Type to Article, give it a title (e.g. "Related Article"), click Save & Close.

1. Basic usage

  1. Go to Content → Articles, create two new articles and open one of them.
  2. Switch to the Fields tab, your new field appears with a Select button.
  3. Click Select, choose an article from the modal, click Save & Close.
  4. Open that article on the front end.

Expected: The linked article's title appears as a link. Clicking it opens the linked article.


2. Default article

  1. Go back to Content → Fields, open your field.
  2. Under Default Article, select an article. Save & Close.
  3. Create a brand new article and open its Fields tab.

Expected: The field is already pre-filled with the default article.

Clear the default again afterwards, otherwise later tests start pre-filled.


3. New / Edit buttons

  1. Open your field, set Allow Creating Articles to No. Save.
  2. Edit an article and look at the field.

Expected: The New button is gone; Select and Clear remain.

  1. Set it back to Yes, and set Allow Editing Articles to No. Save.

Expected: The Edit button is gone.

  1. Set both back to Yes.

Expected: Both buttons are back.


4. Archived articles

  1. Link article B into article A. Confirm it shows on the front end.
  2. Go to Content → Articles, set article B's status to Archived.
  3. Reload article A on the front end.

Expected: The link still appears (default is Show Archived: Yes).

  1. Open your field, set Show Archived to No. Save. Reload.

Expected: The field is now empty — nothing is rendered.

  1. Set article B back to Published and the parameter back to Yes.

5. Unpublished articles

  1. Set article B to Unpublished.
  2. As an administrator, view article A on the front end.

Expected: The link still appears, with a yellow Unpublished badge next to it.

  1. Now open article A in a private window (logged out).

Expected: The field renders nothing at all — no title, no badge.

  1. Set article B back to Published.

Also worth testing: set article B's Finish Publishing date to yesterday, or Start
Publishing
to tomorrow. It should behave exactly like unpublished — badge for editors, invisible
for visitors.


6. Trashed articles

  1. Set article B to Trashed.
  2. View article A both as administrator and in the private window.

Expected: The field renders nothing in both cases — trashed articles are hidden from
everyone, including administrators. This is intentional and differs from unpublished.

  1. Restore article B to Published.

7. Access levels

  1. Set article B's Access to a restricted level (e.g. Special).
  2. View article A in the private window.

Expected: The field renders nothing, the title is not revealed.

  1. Open your field, set Show Unauthorised Links to Yes. Save. Reload the private window.

Expected: Now the title appears, but the link goes to the login page. After logging in with an
account that has access, you land on article B.

  1. Set the parameter to Use Article Settings. Then open article B, and under its Options tab
    set Show Unauthorised Links to Yes. Save.

Expected: Same as step 3 — the article's own setting now decides.

  1. Set the field parameter back to Use Global and article B's access back to Public.

8. Locked article

  1. Have a second user open article B for editing and leave it open (or use Check-in to verify
    it's checked out).
  2. As a different user, edit article A and look at the field.

Expected: The Edit button is disabled, with a note explaining the article is checked out by another user.


9. Permissions

  1. Create a user who may only edit articles in one specific category.
  2. Unpublish an article in a different category and link it into article A.
  3. Log in as that limited user and view article A.

Expected: The field renders nothing, permissions are checked against the linked article.


10. Missing article

  1. Link article B into article A and confirm it displays.
  2. Permanently delete article B (trash it, then empty the trash).
  3. Reload article A on the front end.

Expected: The page loads normally and the field renders nothing. There should be no error
message and no broken page
.


Actual result BEFORE applying this Pull Request

No Article Custom Field

Expected result AFTER applying this Pull Request

See testing instructions.


Reporting

For anything unexpected, it helps to note: were you logged in or not, what status and access level the
linked article had, and which field parameters were set.


Link to documentations

Please select:

  • Documentation link for guide.joomla.org:

  • No documentation changes for guide.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar LadySolveig LadySolveig - open - 24 Aug 2026
avatar LadySolveig LadySolveig - change - 24 Aug 2026
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 24 Aug 2026
Category SQL Administration com_admin Postgresql Language & Strings Libraries Front End Plugins
avatar LadySolveig LadySolveig - change - 24 Aug 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 24 Aug 2026
avatar LadySolveig LadySolveig - change - 24 Aug 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 24 Aug 2026
avatar LadySolveig LadySolveig - change - 24 Aug 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 24 Aug 2026
avatar LadySolveig LadySolveig - change - 24 Aug 2026
Labels Added: Language Change PR-6.3-dev
avatar LadySolveig LadySolveig - change - 24 Aug 2026
Title
[6.3] Custom Field - Article
[6.3][AI] Custom Field - Article
avatar LadySolveig LadySolveig - edited - 24 Aug 2026
avatar brianteeman
brianteeman - comment - 25 Aug 2026

first impression is that it works as intended. No idea about your multilingual question

avatar alikon
alikon - comment - 25 Aug 2026

installation sql are missing
amd also an entry here

// Core plugin extensions - fields
['plugin', 'calendar', 'fields', 0],
['plugin', 'checkboxes', 'fields', 0],
['plugin', 'color', 'fields', 0],
['plugin', 'editor', 'fields', 0],
['plugin', 'imagelist', 'fields', 0],
['plugin', 'integer', 'fields', 0],
['plugin', 'list', 'fields', 0],
['plugin', 'media', 'fields', 0],
['plugin', 'note', 'fields', 0],
['plugin', 'number', 'fields', 0],
['plugin', 'radio', 'fields', 0],
['plugin', 'sql', 'fields', 0],
['plugin', 'subform', 'fields', 0],
['plugin', 'text', 'fields', 0],
['plugin', 'textarea', 'fields', 0],
['plugin', 'url', 'fields', 0],
['plugin', 'user', 'fields', 0],
['plugin', 'usergrouplist', 'fields', 0],

avatar LadySolveig LadySolveig - change - 25 Aug 2026
Labels Added: Feature

Add a Comment

Login with GitHub to post a comment