. **/ namespace Zabbix\Widgets\Fields; use CWidgetsData; use Zabbix\Widgets\CWidgetField; class CWidgetFieldMultiSelectOverrideHost extends CWidgetFieldMultiSelectHost { public function __construct() { parent::__construct('override_hostid', _('Override host')); $this ->setMultiple(false) ->setInType(CWidgetsData::DATA_TYPE_HOST_ID) ->preventDefault() ->acceptDashboard(); } public function getDefault(): array { if ($this->isTemplateDashboard()) { return [ CWidgetField::FOREIGN_REFERENCE_KEY => CWidgetField::createTypedReference( CWidgetField::REFERENCE_DASHBOARD, CWidgetsData::DATA_TYPE_HOST_ID ) ]; } return parent::getDefault(); } public function isWidgetAccepted(): bool { return !$this->isTemplateDashboard(); } public function validate(bool $strict = false): array { if ($strict && $this->isTemplateDashboard()) { $this->setValue([ CWidgetField::FOREIGN_REFERENCE_KEY => CWidgetField::createTypedReference( CWidgetField::REFERENCE_DASHBOARD, CWidgetsData::DATA_TYPE_HOST_ID ) ]); } return parent::validate($strict); } }