Feature Language Change NPM Resource Changed PBF PR-6.2-dev Pending

User tests: Successful: Unsuccessful:

avatar Dileepadari
Dileepadari
23 Aug 2025

Summary of Changes

This PR introduces a workflow plugin that allows setting a category change when a transition is executed for articles.

Testing Instructions

  • Confirm that the plugin is enabled by default in Manage Extensions.
  • Enable Workflows, then go to any workflow and open its Transitions.
  • Edit a transition -> go to the Transition Actions section -> you should now see a Category field.
  • Select any category that the article should switch to when this transition executes.
  • Open an article that uses the workflow you configured. Execute the transition.
    • The article’s category should update automatically.
    • The article’s category field will be disabled while the plugin is active.

Actual result BEFORE applying this Pull Request

In Extensions when searching for "workflow":
manage_extensions_before

In the Transition Actions section:
transition_options_before

Expected result AFTER applying this Pull Request

In Extensions when searching for "workflow":
manage_extension_after

In the Transition Actions section:
transition_options_after

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar Dileepadari Dileepadari - open - 23 Aug 2025
avatar Dileepadari Dileepadari - change - 23 Aug 2025
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 23 Aug 2025
Category SQL Administration com_admin Postgresql Language & Strings Installation Front End Plugins JavaScript
avatar Dileepadari Dileepadari - change - 23 Aug 2025
Title
[6.0] Integration of category change when workflow transitions applied on article
[6.0] Plugin for category change when a transition is executed for article
avatar Dileepadari Dileepadari - edited - 23 Aug 2025
avatar brianteeman
brianteeman - comment - 23 Aug 2025

The plugin needs to be added to the list of core extensions here libraries/src/Extension/ExtensionHelper.php

avatar Dileepadari
Dileepadari - comment - 23 Aug 2025

Thank you @brianteeman for review, will update the pr soon with the changes.

avatar richard67
richard67 - comment - 23 Aug 2025

It might be that we have to move this to 6.1 as soon as we have created a 6.1-dev branch necause 6.0 has already had feature freeze with 6.0.0-beta1.

avatar Dileepadari Dileepadari - change - 23 Aug 2025
Labels Added: Feature Language Change PR-6.0-dev
avatar joomla-cms-bot joomla-cms-bot - change - 23 Aug 2025
Category SQL Administration com_admin Postgresql Language & Strings Installation Front End Plugins JavaScript SQL Administration com_admin Postgresql Language & Strings JavaScript Repository NPM Change Installation Libraries Front End Plugins
avatar Dileepadari Dileepadari - change - 23 Aug 2025
Labels Added: NPM Resource Changed
avatar Dileepadari
Dileepadari - comment - 23 Aug 2025

Thanks @brianteeman and @richard67 for the review. I’ve made all the suggested changes. I really appreciate your time and feedback.

avatar richard67
richard67 - comment - 23 Aug 2025

@Dileepadari Now you have produced invalid SQL syntax in the update SQL scripts by using only a part of administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-02.sql.

The correct syntax is (exmaple from the mentioned other SQL):

INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`)
SELECT 0, 'plg_schemaorg_article', 'plugin', 'article', 'schemaorg', 0, 0, 1, 0, 1, '', '{}', '', -1, 0
WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'article' AND e.`folder` = 'schemaorg' AND e.`client_id` = 0);

It is an INSERT INTO ... SELECT ... statement which should not have a VALUES key word.

Your statement has still VALUES but no SELECT.

This will result in an SQL syntax error.

So it seems you did not check your SQL e.g. in phpMyAdmin.

avatar bembelimen
bembelimen - comment - 23 Aug 2025

Thank you @Dileepadari this is a very nice addition to the workflow 👍

avatar Dileepadari
Dileepadari - comment - 23 Aug 2025

Hi @richard67, sorry for that. Can you let me know how can i test with PhpMyAdmin. Should I replace the #__extensions with the table name including table prefix?

avatar richard67
richard67 - comment - 23 Aug 2025

Hi @richard67, sorry for that. Can you let me know how can i test with PhpMyAdmin. Should I replace the #__extensions with the table name including table prefix?

That would be one way to test it on the current Joomla installation.

Another way would be to copy the CREATE TABLE statement from the base.sql and use it as it is to create an #__extesions table without the suffix to be replaced, then you could fiddle with SQL in that table without having to replace the prefix in your SQL statement and without messing up the table from the Joomla installation.

And when developing database stuff for Joomla it is a good idea to have a PostgreSQL database in addition to the MySQL (or MariaDB).

avatar Dileepadari
Dileepadari - comment - 23 Aug 2025

Thanks for the info, it helps a lot in testing quickly.

avatar brianteeman
brianteeman - comment - 24 Aug 2025

thanks for adding the filter etc

avatar HLeithner
HLeithner - comment - 31 Aug 2025

This pull request has been automatically rebased to 6.1-dev.

avatar HLeithner HLeithner - change - 31 Aug 2025
Title
[6.0] Plugin for category change when a transition is executed for article
[6.1] Plugin for category change when a transition is executed for article
avatar HLeithner HLeithner - edited - 31 Aug 2025
avatar bembelimen bembelimen - change - 5 Jan 2026
Labels Added: PR-6.1-dev
avatar Dileepadari Dileepadari - change - 6 Jan 2026
Labels Added: Updates Requested
Removed: PR-6.0-dev
avatar tecpromotion tecpromotion - change - 29 Jan 2026
Labels Added: PBF
Removed: Updates Requested
avatar Dileepadari Dileepadari - change - 31 Jan 2026
The description was changed
avatar Dileepadari Dileepadari - edited - 31 Jan 2026
avatar Dileepadari Dileepadari - change - 31 Jan 2026
The description was changed
avatar Dileepadari Dileepadari - edited - 31 Jan 2026
avatar HLeithner
HLeithner - comment - 17 Mar 2026

This pull request has been automatically rebased to 6.2-dev.

avatar HLeithner HLeithner - change - 17 Mar 2026
Title
[6.1] Plugin for category change when a transition is executed for article
[6.2] Plugin for category change when a transition is executed for article
avatar HLeithner HLeithner - edited - 17 Mar 2026
avatar MacJoom
MacJoom - comment - 10 Jul 2026

@Dileepadari - thank you for the PR - are planning to work on this? as there are changes requested.

avatar Delhiproject0
Delhiproject0 - comment - 13 Jul 2026

are planning to work on this? as there are changes requested.

Thank you for the reminder, will update this ASAP

avatar HermanPeeren
HermanPeeren - comment - 20 Jul 2026

I wanted to use this on a site and tested it by making an installable plugin from it. See github.com/HermanPeeren/workflow-plugins/tree/main/src/plg_workflow_category.

  • an error when using this: a category is required, but in the initial stage the plugin prevents saving any category. So I cannot save a new item. There should be a default category (to be set in the plugin parameters, not in the action form), which can default to the "uncategorised" category. And that category should be set for the initial stage of the workflow. More general this could be an improvement for the workflow plugins: if some value is set with a transaction, then we cannot set that value for the initial stage.
  • I added some comments to the code to make it more general, not only com_content: split $context into the component name and the table name. Then instantiate the table directly from the component's MVCFactory.
  • The processArticle() method (which should be renamed to processItem()) boots the component (here com_content) at every call, but it is called in a loop: $pks is an array, because it can be used in a batch command. Boot the component before the loop.
  • the layout folder should not be anymore under <files> in the manifest. That js is now in the media folder.
  • I think there are two superfluous lines changin the modified and modified_by properties.
  • Some minor things, like adding a return type to a method (2x), and a static cal to a non-static method,
avatar HermanPeeren
HermanPeeren - comment - 20 Jul 2026

I wanted to use this on a site and tested it by making an installable plugin from it. See github.com/HermanPeeren/workflow-plugins/tree/main/src/plg_workflow_category.

  • an error when using this: a category is required, but in the initial stage the plugin prevents saving any category. So I cannot save a new item. There should be a default category (to be set in the plugin parameters, not in the action form), which can default to the "uncategorised" category. And that category should be set for the initial stage of the workflow. More general this could be an improvement for the workflow plugins: if some value is set with a transaction, then we cannot set that value for the initial stage.
  • I added some comments to the code in my repo to make it more general, not only com_content: split $context into the component name and the table name. Then instantiate the table directly from the component's MVCFactory.
  • The processArticle() method (which should be renamed to processItem()) boots the component (here com_content) at every call, but it is called in a loop: $pks is an array, because it can be used in a batch command. Boot the component before the loop.
  • the layout folder should not be anymore under <files> in the manifest. That js is now in the media folder.
  • I think there are two superfluous lines changin the modified and modified_by properties.
  • Some minor things, like adding a return type to a method (2x), and a static cal to a non-static method,
avatar HermanPeeren
HermanPeeren - comment - 20 Jul 2026

I wanted to use this on a site and tested it by making an installable plugin from it. See github.com/HermanPeeren/workflow-plugins/tree/main/src/plg_workflow_category.

  • an error when using this: a category is required, but in the initial stage the plugin prevents saving any category. So I cannot save a new item. There should be a default category (to be set in the plugin parameters, not in the action form), which can default to the "uncategorised" category. And that category should be set for the initial stage of the workflow. More general this could be an improvement for the workflow plugins: if some value is set with a transaction, then we cannot set that value for the initial stage.
  • I added some comments to the code in my repo (my comments start with HP:) to make it more general, not only com_content: split $context into the component name and the table name. Then instantiate the table directly from the component's MVCFactory.
  • The processArticle() method (which should be renamed to processItem()) boots the component (here com_content) at every call, but it is called in a loop: $pks is an array, because it can be used in a batch command. Boot the component before the loop.
  • the layout folder should not be anymore under <files> in the manifest. That js is now in the media folder.
  • I think there are two superfluous lines changin the modified and modified_by properties.
  • Some minor things, like adding a return type to a method (2x), and a static cal to a non-static method,
avatar Dileepadari Dileepadari - change - 20 Jul 2026
Labels Added: PR-6.2-dev
Removed: PR-6.1-dev
avatar joomla-cms-bot joomla-cms-bot - change - 22 Jul 2026
Category SQL Administration com_admin Postgresql Language & Strings Installation Front End Plugins JavaScript Repository NPM Change Libraries SQL Administration com_admin Postgresql Language & Strings JavaScript Repository Installation Libraries Front End Plugins
avatar Dileepadari
Dileepadari - comment - 22 Jul 2026
  • Some minor things, like adding a return type to a method (2x), and a static cal to a non-static method,

Thanks @HermanPeeren for taking time and giving your detailed review and suggestions, I have updated the pr accordingly. Please test it if you get some time. Thanks everyone for the reviews.

avatar Dileepadari Dileepadari - change - 22 Jul 2026
Labels Removed: NPM Resource Changed
avatar Dileepadari
Dileepadari - comment - 28 Jul 2026

Category is not displayed when edit item (the field is disabled)
Image

Thanks @heelc29 for the review, I resolved all the comments you have given but for the category not showing part, I am not sure why its not displayed. The category change is disabled when you are editing the article but still you will be able to see the category. you will be able to set the category if you are creating the article or if the category is not set. Please provide me with theme details if you still can't see the category, I'll try to debug.

avatar github-actions[bot]
github-actions[bot] - comment - 31 Jul 2026

This pull request has conflicts, please resolve those before we can evaluate the pull request.

avatar Dileepadari Dileepadari - change - 3 Aug 2026
Labels Added: Conflicting Files
avatar bembelimen bembelimen - change - 22 Aug 2026
Labels Removed: Conflicting Files
avatar joomla-cms-bot joomla-cms-bot - change - 22 Aug 2026
Category SQL Administration com_admin Postgresql Language & Strings Installation Front End Plugins JavaScript Repository Libraries SQL Administration com_admin Postgresql Language & Strings JavaScript Repository Installation Libraries NPM Change Front End Plugins
avatar coolcat-creations
coolcat-creations - comment - 22 Aug 2026

@Dileepadari why is the category change disabled? I might want to change the category myself?

avatar Dileepadari Dileepadari - change - 23 Aug 2026
Labels Added: NPM Resource Changed
avatar Dileepadari
Dileepadari - comment - 23 Aug 2026

@Dileepadari why is the category change disabled? I might want to change the category myself?

Hi @coolcat-creations , Thanks for the review, I think it makes sense to have flexibility over other workflows, I have implemented it and updated it here. Thanks for the suggestion.

avatar Dileepadari
Dileepadari - comment - 23 Aug 2026

@Dileepadari why is the category change disabled? I might want to change the category myself?

Hi @coolcat-creations , Thanks for the review, I think it makes sense to have flexibility over other workflows, I have implemented and updated it here. Thanks for the suggestion.

Add a Comment

Login with GitHub to post a comment