protected function unrestrictedGet($attributeName) { $memberOrModel = parent::unrestrictedGet($attributeName); //todo: imperfect since maybe a dropdown has no values yet. so need some php caching here. if (is_object($memberOrModel) && $memberOrModel instanceof BaseCustomField && !($memberOrModel->data->id > 0)) { $metadata = $this->getMetadata(); foreach ($metadata as $unused => $classMetadata) { if (isset($classMetadata['customFields'])) { foreach ($classMetadata['customFields'] as $customFieldName => $customFieldDataName) { if ($customFieldName == $attributeName) { $customFieldData = CustomFieldData::getByName($customFieldDataName); $memberOrModel->data = $customFieldData; break; } } } } } return $memberOrModel; }