Skip to content

Conversation

@Ruud68
Copy link
Contributor

@Ruud68 Ruud68 commented Nov 11, 2025

Pull Request for Issue # -.

Summary of Changes

In form xml files you can add useglobal="true", this will then extend the field to show the value for the field in the matching component options.

This PR extends the useglobal to not only use the component options but also a plugins options.

This will create the possibility to have the same functionality it had but then for (global) plugin parameters.

This is a POC on the 'text' field to see if there is interest in this change, if so I can further extend it to the other fields that have the useglobal functionality:

  • MailtemplateLayoutField
  • ComponentLayoutField
  • ListField
  • NumberField
  • PluginsField

Testing Instructions

on a formfield you can now have the following useglobal settings:

  • useglobal="true": this will take the configured field value from the component
  • useglobal="plg_system_xyz": this will take the configured value from the plugin with type 'system' and name 'xyz'

in file ./administrator/components/com_content/forms/article.xml change field "float_into" to use com_content as useglobal value:

			<field
				name="float_intro"
				type="text"
				label="COM_CONTENT_FIELD_IMAGE_CLASS_LABEL"
				description="COM_CONTENT_FIELD_IMAGE_CLASS_DESC"
				useglobal="com_content"
				validate="CssIdentifier"
			/>

after this field add the following field:

			<field
				name="article_index_text"
				type="text"
				label="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT"
				useglobal="plg_content_pagebreak"
			/>

in plugin content page break add some text to field "Custom Article Index Heading", this will be your global value.

In the backend open an article for editing, open tab "Images and Links", in set "Intro Image" you should now see field "Image Class" and field (untranslated) "PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT" having "Use Global (....)" as value.
changing the useglobal to "true" in both fields, will still show the same value for the Intro Image (as it uses the fallback to component com_content), but empty for field "article_index_text" as that fallsback to the com_content component which doesn't have this field.

Try to fill in (bogus) values in the useglobal for these fields, these should then fallback to the component values

Actual result BEFORE applying this Pull Request

The text field would show empty

Expected result AFTER applying this Pull Request

The textfield will show 'Use Global (abc)' where abc is the value of the field in the plugin configuration

Link to documentations

Please select:

@bembelimen bembelimen changed the title Expand useGlobal to also use plugin parameters [6.1] Expand useGlobal to also use plugin parameters Nov 16, 2025
@laoneo
Copy link
Member

laoneo commented Nov 19, 2025

Nice one. For consistency, I would also support the component name and then deprecate the true attribute for useglobal. Like that we can get rid of the global input parameter.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Nov 19, 2025

Hi @laoneo Thanks, glad you like it. Already have this in place for my plugins via overrides: works like a charm :)

I will make a change so you can use component name or plugin name, with a fallback of 'true' to the component name from the input parameter.

If this is something that would get integrated i can also do the other fields that now have 'useglobal' support.
Not to keen on 'wasting' time on this if it doesn't get integrated in the end, so just checking in advance :)

@laoneo
Copy link
Member

laoneo commented Nov 19, 2025

Sure. We can also get this RTC and then expand from there.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Nov 19, 2025

You can now use component name e.g. 'com_content', plugin name or 'true' as B/C fallback

@laoneo
Copy link
Member

laoneo commented Nov 20, 2025

Cool, I would replace one occurrence in core for plugins and one for a component. Like that it can be tested relatively easy.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Nov 20, 2025

For core a replacement can be made, but not for plugins as that is a new feature and not used in core.
I can make test instructions where the tester than can add themselves a field to a form and set the different useglobal values.

As a side note: why is the CI Joomla Check PHP code style failing on the use of a '' on e.g. \str_starts_with, but it is allowing it on \is_null?

@Ruud68
Copy link
Contributor Author

Ruud68 commented Nov 20, 2025

I updated the test instructions in the OP. is that sufficient?

@laoneo
Copy link
Member

laoneo commented Dec 12, 2025

I have tested this item ✅ successfully on 0655490


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/46439.

@laoneo
Copy link
Member

laoneo commented Dec 12, 2025

Here is the screenshot for my test
image

@HLeithner
Copy link
Member

Is there a reason why it's limited to plugin, isn't this useful for modules and templates too?

@Ruud68
Copy link
Contributor Author

Ruud68 commented Dec 12, 2025

@laoneo Thanks for testing! Hope someone else will also step in to test so we can get this to RTC (and merged)

@laoneo
Copy link
Member

laoneo commented Dec 15, 2025

@HLeithner we can expand later.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Dec 18, 2025

So with this PR we can also use the component name in the useglobal parameter, this is actually adding extra value.
I'm currently developing a custom component with multiple 'import' plugins for data sources. So with this PR I would be able to use global config settings in the plugin config. This is awesome! Now when I want to make a global change I have to update all plugin configuration values, with the useglobal in this PR I can just update the config value of the component and all plugins will 'inherit' / use this value.

That said: I'm looking for somebody who is willing and able to 'adopt' this PR. I'm closing all my contributions that get no traction: this is, despite the welcoming words and effort put in by @laoneo, one of them.

@HLeithner
Copy link
Member

Would you be so kind and give me an answer?

Is there a reason why it's limited to plugin, isn't this useful for modules and templates too?

@joomdonation
Copy link
Contributor

Is there a reason why it's limited to plugin, isn't this useful for modules and templates too?

I guess it is because for a module, there could be multiple instances of the module, so we do not have params data available for a module (base on it's name). Same for templates.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Dec 18, 2025

spot on @joomdonation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants