diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php index 185270cdb..ae011a56a 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php @@ -95,13 +95,22 @@ class ModelRelationField extends BaseListField } $groupKey = isset($modelData['group']) ? $modelData['group'] : null; - $displayKey = $modelData['display']; + $displayKeys = explode(',', $modelData['display']); + $displayFormat = !empty($modelData['display_format']) ? $modelData['display_format'] : "%s"; $groups = array(); $searchItems = $modelObj->getNodeByReference($modelData['items']); if (!empty($searchItems)) { foreach ($modelObj->getNodeByReference($modelData['items'])->iterateItems() as $node) { - if (!isset($node->getAttributes()['uuid']) || $node->$displayKey == null) { + $descriptions = []; + foreach ($displayKeys as $displayKey) { + if ($node->$displayKey != null) { + $descriptions[] = (string)$node->$displayKey; + } else { + $descriptions[] = ""; + } + } + if (!isset($node->getAttributes()['uuid'])) { continue; } @@ -126,8 +135,9 @@ class ModelRelationField extends BaseListField } $uuid = $node->getAttributes()['uuid']; - self::$internalCacheOptionList[$this->internalCacheKey][$uuid] = - (string)$node->$displayKey; + self::$internalCacheOptionList[$this->internalCacheKey][$uuid] = vsprintf( + $displayFormat, $descriptions + ); } } unset($modelObj); diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml index 26f9bd25f..2de8d2e86 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml @@ -184,7 +184,8 @@ OPNsense.Unbound.Unbound hosts.host - domain + hostname,domain + %s.%s Y