diff --git a/src/Categories/Category.php b/src/Categories/Category.php index 99f16e77..f79591e1 100644 --- a/src/Categories/Category.php +++ b/src/Categories/Category.php @@ -18,6 +18,7 @@ use Phproberto\Joomla\Entity\Traits as EntityTraits; use Phproberto\Joomla\Entity\Exception\SaveException; use Phproberto\Joomla\Entity\Core\Traits as CoreTraits; +use Phproberto\Joomla\Entity\Core\Contracts\Assetable; use Phproberto\Joomla\Entity\Core\Contracts\Publishable; use Phproberto\Joomla\Entity\Users\Traits as UsersTraits; use Phproberto\Joomla\Entity\Validation\Contracts\Validable; @@ -32,13 +33,14 @@ * * @since 1.0.0 */ -class Category extends ComponentEntity implements Publishable, Translatable, Validable +class Category extends ComponentEntity implements Publishable, Translatable, Validable, Assetable { use CoreTraits\HasAccess, CoreTraits\HasAncestors, CoreTraits\HasAsset, CoreTraits\HasAssociations, CoreTraits\HasChildren; use CoreTraits\HasDescendants, CoreTraits\HasLevel, CoreTraits\HasMetadata, CoreTraits\HasParams, CoreTraits\HasParent; use CoreTraits\HasState; use HasTranslations, HasValidation; use UsersTraits\HasAuthor, UsersTraits\HasEditor; + use CoreTraits\HasAsset; /** * Cached root instance. diff --git a/src/Content/Entity/Category.php b/src/Content/Entity/Category.php index 1619fa3a..09d4f3bd 100644 --- a/src/Content/Entity/Category.php +++ b/src/Content/Entity/Category.php @@ -24,15 +24,17 @@ use Phproberto\Joomla\Entity\Content\Search\ArticleSearch; use Phproberto\Joomla\Entity\Categories\Category as BaseCategory; use Phproberto\Joomla\Entity\Content\Command\CreateUncategorisedCategory; +use Phproberto\Joomla\Entity\Core\Contracts\Assetable; +use Phproberto\Joomla\Entity\Core\Traits\HasAsset; /** * Content category entity. * * @since 1.0.0 */ -class Category extends BaseCategory implements Aclable +class Category extends BaseCategory implements Aclable, Assetable { - use HasArticles, HasAcl, HasLink, HasTags; + use HasArticles, HasAcl, HasLink, HasTags, HasAsset; /** * Extension associated to this category. diff --git a/src/Core/Contracts/Assetable.php b/src/Core/Contracts/Assetable.php new file mode 100644 index 00000000..64a18f4e --- /dev/null +++ b/src/Core/Contracts/Assetable.php @@ -0,0 +1,49 @@ +asset; } + public function getContentExtension() + { + return self::$extension; + } + /** * Load the asset from the database. * diff --git a/src/Entity.php b/src/Entity.php index bcccd96a..52842074 100644 --- a/src/Entity.php +++ b/src/Entity.php @@ -18,6 +18,7 @@ use Phproberto\Joomla\Entity\Helper\ArrayHelper; use Phproberto\Joomla\Entity\Exception\SaveException; use Phproberto\Joomla\Entity\Contracts\EntityInterface; +use Phproberto\Joomla\Entity\Core\Contracts\Assetable; use Phproberto\Joomla\Entity\Core\Traits as CoreTraits; use Phproberto\Joomla\Entity\Exception\DeleteException; use Phproberto\Joomla\Entity\Exception\InvalidEntityData; @@ -300,6 +301,12 @@ public static function delete($ids) foreach ($ids as $id) { + if ($entity instanceof Assetable) { + $table->extension = $entity->getContentExtension(); + $pk = $entity->primaryKey(); + $table->$pk = $id; + } + if (!$table->delete($id)) { $entity->bind([$entity->primaryKey() => $id]);