*/
public function getData(Option $option, $newValue)
{
- if (!$this->messageObjectType) {
- $this->messageObjectType = $option->messageObjectType;
- }
- if (empty($this->messageObjectType)) {
- throw new \RuntimeException("Message object type '" . $option->optionName . "' requires an object type for definition 'com.woltlab.wcf.message'.");
- }
+ $this->initMessageObjectType($option);
$permission = $option->disallowedbbcodepermission ?: 'user.message.disallowedBBCodes';
BBCodeHandler::getInstance()->setDisallowedBBCodes(\explode(
ArrayUtil::trim(WCF::getSession()->getPermission($permission))
));
+ $this->initMessageObjectType($option);
$upcastProcessor = new HtmlUpcastProcessor();
$upcastProcessor->process($value ?? '', $this->messageObjectType);
throw new UserInputException($option->optionName, 'disallowedBBCodes');
}
}
+
+ private function initMessageObjectType(Option $option): void
+ {
+ if (!$this->messageObjectType) {
+ $this->messageObjectType = $option->messageObjectType;
+ }
+ if (empty($this->messageObjectType)) {
+ throw new \RuntimeException(
+ "Message object type '" .
+ $option->optionName .
+ "' requires an object type for definition 'com.woltlab.wcf.message'."
+ );
+ }
+ }
}