+ $data = '';
+ if (is_string($value)) {
+ $data = $value;
+ }
+ elseif ($value instanceof FieldItemList) {
+ $fieldtype = $value->getFieldDefinition()->getType();
+ $field_value = $value->getValue();
+ if ($fieldtype == 'link') {
+ $data = empty($field_value[0]['uri']) ? "" : $field_value[0]['uri'];
+ }
+ else {
+ $data = empty($field_value[0]['value']) ? "" : $field_value[0]['value'];
+ }
+ }
+ elseif ($value instanceof FieldItemInterface) {
+ $class = get_class($value);
+ $property = $class::mainPropertyName();
+ if ($property) {
+ $data = $value->{$property};
+ }