* ``` * * @internal */ final class SpriteIconForRecordViewHelper extends AbstractViewHelper { /** * As this ViewHelper renders HTML, the output must not be escaped. * * @var bool */ protected $escapeOutput = false; public function __construct( private readonly IconFactory $iconFactory ) {} public function initializeArguments(): void { parent::initializeArguments(); $this->registerArgument('table', 'string', '', true); $this->registerArgument('object', 'object', '', true); } /** * Displays spriteIcon for database table and object */ public function render(): string { $object = $this->arguments['object']; $table = $this->arguments['table']; if (!method_exists($object, 'getUid')) { return ''; } $row = [ 'uid' => $object->getUid(), 'startTime' => false, 'endTime' => false, ]; if (method_exists($object, 'getIsDisabled')) { $row['disable'] = $object->getIsDisabled(); } if (method_exists($object, 'getHidden')) { $row['hidden'] = $object->getHidden(); } if (method_exists($object, 'getStartDateAndTime')) { $row['startTime'] = $object->getStartDateAndTime(); } if (method_exists($object, 'getEndDateAndTime')) { $row['endTime'] = $object->getEndDateAndTime(); } return $this->iconFactory->getIconForRecord($table, $row, IconSize::SMALL)->render(); } }