Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions wcfsetup/install/files/lib/acp/form/LabelGroupAddForm.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,13 @@ public function readData()
// get label object type handlers
$objectTypes = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.label.objectType');
foreach ($objectTypes as $objectType) {
$this->labelObjectTypes[$objectType->objectTypeID] = $objectType->getProcessor();
$this->labelObjectTypes[$objectType->objectTypeID]->setObjectTypeID($objectType->objectTypeID);
}
$handler = $objectType->getProcessor();
\assert($handler instanceof ILabelObjectTypeHandler);

$container = $handler->getContainerForObjectType($objectType);

foreach ($this->labelObjectTypes as $objectTypeID => $labelObjectType) {
$this->labelObjectTypeContainers[$objectTypeID] = $labelObjectType->getContainer();
$this->labelObjectTypes[$objectType->objectTypeID] = $handler;
$this->labelObjectTypeContainers[$objectType->objectTypeID] = $container;
}

parent::readData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace wcf\system\label\object\type;

use wcf\data\object\type\ObjectType;
use wcf\system\SingletonFactory;

/**
Expand All @@ -16,36 +17,41 @@ abstract class AbstractLabelObjectTypeHandler extends SingletonFactory implement
/**
* label object type container
* @var LabelObjectTypeContainer
* @deprecated 6.2 Use `getContainerForObjectType()` instead.
*/
public $container;

/**
* object type id
* @var int
* @deprecated 6.2 Use `getContainerForObjectType()` instead.
*/
public $objectTypeID = 0;

/**
* @inheritDoc
*/
#[\Override]
public function setObjectTypeID($objectTypeID)
{
$this->objectTypeID = $objectTypeID;
}

/**
* @inheritDoc
*/
#[\Override]
public function getObjectTypeID()
{
return $this->objectTypeID;
}

/**
* @inheritDoc
*/
#[\Override]
public function getContainer()
{
return $this->container;
}

#[\Override]
public function getContainerForObjectType(ObjectType $objectType): LabelObjectTypeContainer
{
// This exists for backwards-compatibility only; Implementations are
// expected to implement this method themselves.
$this->setObjectTypeID($objectType->objectTypeID);
return $this->getContainer();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

namespace wcf\system\label\object\type;

use wcf\data\object\type\ObjectType;

/**
* Every label object type handler has to implement this interface.
*
Expand All @@ -11,25 +13,38 @@
*/
interface ILabelObjectTypeHandler
{
/**
* Provides a container object that groups all objects that can be assigned
* a label group.
*
* Implementations must not rely on any state provided by `getObjectTypeID()`.
*
* @since 6.2
*/
public function getContainerForObjectType(ObjectType $objectType): LabelObjectTypeContainer;

/**
* Sets object type id.
*
* @param int $objectTypeID
* @return void
* @deprecated 6.2 Use `getContainerForObjectType()` instead.
*/
public function setObjectTypeID($objectTypeID);

/**
* Returns object type id.
*
* @return int
* @deprecated 6.2 Use `getContainerForObjectType()` instead.
*/
public function getObjectTypeID();

/**
* Returns a label object type container.
*
* @return LabelObjectTypeContainer
* @deprecated 6.2 Use `getContainerForObjectType()` instead.
*/
public function getContainer();

Expand Down