joomla-cms icon indicating copy to clipboard operation
joomla-cms copied to clipboard

Incorrect UCM Asset Tracking

Open sanderpotjer opened this issue 8 months ago • 0 comments

Steps to reproduce the issue

  • Create Joomla article
  • Add Tag

Expected result

  • A) New row (e.g. id 43) in database table #__assets with name com_content.article.X (X = id of article) created.
  • B) New row (e.g. id 44) in database table #__assets with name #__ucm_content.X (X = id of article) created.
  • C) In database table #__content a new row with id X (article id) is created and asset_id has row value of A (e.g. id 43)
  • D) In database table #__ucm_content a new row with core_content_id X (article ID) is created and asset_id has row value of B (e.g. id 44)

Actual result

  • A) New row (e.g. id 43) in database table #__assets with name com_content.article.X (X = id of article) created.
  • B) New row (e.g. id 44) in database table #__assets with name #__ucm_content.X (X = id of article) created.
  • C) In database table #__content a new row with id X (article id) is created and asset_id has row value of A (e.g. id 43)
  • D) In database table #__ucm_content a new row with core_content_id X (article ID) is created and asset_id has row value of A (e.g. id 43)

So the new row in #__content and #__ucm_content both link to the same asset_id and the #__ucm_content.X asset has no relation in other tables. This is not correct.

Additional comments

This behavior is introduced with PR #39165 which sets the flag $this->_trackAssets = false; for the UCM content table. This indeed reduces useless assets rows. However this change did not take into account the fact that a new UCM content row is created when tags are added.

The incorrect asset_id store is also mentioned in the comment of the PR: https://github.com/joomla/joomla-cms/pull/39165#issuecomment-1367194172

As long as data is created in the #__ucm_content the $this->_trackAssets = false; should be removed. Or the asset_id in #__ucm_content should not be set at all and the column can be removed as the asset for #__ucm_content does nothing.

sanderpotjer avatar Jun 18 '24 07:06 sanderpotjer