Skip to content

Conversation

@Elfangor93
Copy link
Contributor

@Elfangor93 Elfangor93 commented Oct 23, 2025

Pull Request for Issue #46040 .

Summary of Changes

Remove the model check in onTableAfterStore of the Behaviour - Versionable (plg_behaviour_versionable).

This PR needs the PR #46268.
In PR #46268, both saving and deleting are handled by VersionableModelInterface. Therefore, extensions using VersionableModelInterface can update their Table classes to remove implements VersionableTableInterface. Therefore the code removed in this PR is no longer required.

Testing Instructions

Use Joomla! 6

Test 1 (Check if versioning works)

  1. Install a component which uses versioning. e.g Weblinks component
    (https://downloads.joomla.org/extensions/weblinks/5-0-0)
  2. Enable versioning for this component
  3. Create a version history and delete the version afterwards again.

Test 2 (Check if installation works)

  1. Install JoomGallery Extension (Available here)

Actual result BEFORE applying this Pull Request

Test 1
Creating and deleting of versions is working correctly.

Test 2
JoomGallery extension installation fails.

Expected result AFTER applying this Pull Request

Test 1
Creating and deleting of versions is working correctly.

Test 2
JoomGallery extension installation successful.

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

@richard67
Copy link
Member

@joomdonation Could you check this one here? Thanks in advance.

@joomdonation
Copy link
Contributor

@richard67 Yes, it works. But I would like to take this chance to clean up the method a bit more: Some check should be performed earlier, some check is redundant, the mis-leading comment... @Elfangor93 Could you please check and merge my PR Elfangor93#2 to your branch if it is OK for you?

Elfangor93 and others added 2 commits October 24, 2025 16:22
@Elfangor93
Copy link
Contributor Author

Elfangor93 commented Oct 24, 2025

Thanks @joomdonation I merged your PR.
But I had to add a token to the function strtok() you used as a replacement for explode(). Since php 8.3, strtok() requires a token (string) as the second function parameter.

https://www.php.net/manual/de/function.strtok.php#refsect1-function.strtok-changelog

@richard67
Copy link
Member

Thanks @joomdonation I merged your PR. But I had to add a token to the function strtok() you used as a replacement for explode(). Since php 8.3, strtok() requires a token (string) as the second function parameter.

https://www.php.net/manual/de/function.strtok.php#refsect1-function.strtok-changelog

I was just about to comment in the same way, but @Elfangor93 you were was faster.

@joomdonation
Copy link
Contributor

But I had to add a token to the function strtok()

Yes, I missed it in my code. Thanks for adding it. Busy at the moment, so I will test it later today.

@Elfangor93 Elfangor93 changed the title [6.0] Remove model check in plg_behaviour_versionable [6.0] Optimize checks in plg_behaviour_versionable Oct 24, 2025
@joomdonation
Copy link
Contributor

BTW, we do not use this plugin in core anymore. So to test it, we will need to test and make sure version history still work for extensions use this plugin. I guess we can use Weblinks for testing https://downloads.joomla.org/extensions/weblinks/5-0-0

@joomdonation
Copy link
Contributor

I have tested this item ✅ successfully on 154102f


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

@joomdonation
Copy link
Contributor

Version history in Weblinks is broken at the moment (due to invalid data in #__content_types database table, happens since the time we namespaced the extension but I no-one knows about the bug), so it could not be used for testing. I made correction to the data manually, tested weblinks version history and it worked

So for other testers, all you need to test is making sure version history still works OK for article and maybe contact still work as expected. A bonus test would be making sure JoomGallery is being installed properly as mentioned in testing instructions, but it is not really required.

@MrMusic
Copy link

MrMusic commented Oct 30, 2025

I applied the code changes from this PR in an existing J6.0.0 installation.
Afterwards, the installation of JoomGallery also worked (without problems or workarounds) with Joomla 6.
Versioning of articles and categories still works as expected.
I have tested this item ✅ successfully.

@richard67
Copy link
Member

@MrMusic Please go to this PR in the issue tracker here https://issues.joomla.org/tracker/joomla-cms/46360 and mark your test result by using the blue "Test this" button at the top left corner, selecting your test result and submitting. Posting a comment with a green check mark is not sufficient for the result being properly counted. Thanks in advance.

@exlemor
Copy link

exlemor commented Oct 31, 2025

In the famous words of @brianteeman ;), if you don't match the BEFORE condition, then something is wrong ;) lol

Possibly, I did something wrong but I installed Joomla 6 Nightly, installed Weblinks, and when I tried to check versioning after having made a couple of versions, I receive this error message:

An error has occurred.
0 Class must be an instance of Joomla\CMS\Table\TableInterface
[ Return to Dashboard]

Did I do something wrong? ;(

@brianteeman
Copy link
Contributor

@exlemor see #46360 (comment)

@exlemor
Copy link

exlemor commented Nov 1, 2025

I have tested this item ✅ successfully on 154102f

I was able to test this successfully! (Thanks @brianteeman)

Thanks @Elfangor93 for the fix/PR.


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

@richard67
Copy link
Member

@MrMusic Please mark your test result as instructed here #46360 (comment) .

@richard67
Copy link
Member

@MrMusic As you haven't reacted on my request to mark your test result, I will do that for you.

Every PR needs 2 human tests to be accepted, and marking the test result makes sure that the tests are counted and helps maintainers to find these PRs.

Not marking the test result causes additional work for maintainers.

@richard67
Copy link
Member

RTC


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

@joomla-cms-bot joomla-cms-bot added the RTC This Pull Request is Ready To Commit label Nov 1, 2025
@MrMusic
Copy link

MrMusic commented Nov 1, 2025

I have tested this item ✅ successfully on 154102f


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

@MrMusic
Copy link

MrMusic commented Nov 1, 2025

@MrMusic As you haven't reacted on my #46360 (comment), I will do that for you.

@richard67 Thank you for taking care of that.

Every PR needs 2 human tests to be accepted, and marking the test result makes sure that the tests are counted and helps maintainers to find these PRs.
Not marking the test result causes additional work for maintainers.

Sorry, but for personal reasons, I am not always able to respond quickly.

@Bodge-IT Bodge-IT changed the title [6.0] Optimize checks in plg_behaviour_versionable [6.0] Optimise checks in plg_behaviour_versionable Nov 5, 2025
@Bodge-IT Bodge-IT added this to the Joomla! 6.0.1 milestone Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR-6.0-dev RTC This Pull Request is Ready To Commit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants