Skip to content

Commit 49b5d4d

Browse files
authored
Merge pull request #5880 from pods-framework/feature/5839-default-display-field
Relationships: Fallback to default display field
2 parents 4be5c57 + 755b428 commit 49b5d4d

1 file changed

Lines changed: 24 additions & 17 deletions

File tree

classes/fields/pick.php

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,6 +2131,8 @@ public function get_object_data( $object_params = null ) {
21312131
$search_data = pods_data();
21322132
$search_data->table( $options['table_info'] );
21332133

2134+
$default_field_index = $search_data->field_index;
2135+
21342136
if ( isset( $options['table_info']['pod'] ) && ! empty( $options['table_info']['pod'] ) && isset( $options['table_info']['pod']['name'] ) ) {
21352137
$search_data->pod = $options['table_info']['pod']['name'];
21362138
$search_data->fields = $options['table_info']['pod']['fields'];
@@ -2171,7 +2173,7 @@ public function get_object_data( $object_params = null ) {
21712173
if ( isset( $options['table_info']['pod']['object_fields'] ) && isset( $options['table_info']['pod']['object_fields'][ $display ] ) ) {
21722174
$search_data->field_index = $display;
21732175

2174-
$params['select'] = "`t`.`{$search_data->field_id}`, `t`.`{$search_data->field_index}`";
2176+
$params['select'] .= ", `t`.`{$search_data->field_index}`";
21752177
} else {
21762178
$search_data->field_index = sanitize_key( $display );
21772179

@@ -2182,17 +2184,17 @@ public function get_object_data( $object_params = null ) {
21822184
), true
21832185
)
21842186
) {
2185-
$params['select'] = "`t`.`{$search_data->field_id}`, `d`.`{$search_data->field_index}`";
2187+
$params['select'] .= ", `d`.`{$search_data->field_index}`";
21862188
} elseif ( 'meta' === $options['table_info']['pod']['storage'] ) {
2187-
$params['select'] = "`t`.`{$search_data->field_id}`, `{$search_data->field_index}`.`meta_value` AS {$search_data->field_index}";
2189+
$params['select'] .= ", `{$search_data->field_index}`.`meta_value` AS {$search_data->field_index}";
21882190
} else {
2189-
$params['select'] = "`t`.`{$search_data->field_id}`, `t`.`{$search_data->field_index}`";
2191+
$params['select'] .= ", `t`.`{$search_data->field_index}`";
21902192
}
21912193
}//end if
21922194
} elseif ( isset( $options['table_info']['object_fields'] ) && isset( $options['table_info']['object_fields'][ $display ] ) ) {
21932195
$search_data->field_index = $display;
21942196

2195-
$params['select'] = "`t`.`{$search_data->field_id}`, `t`.`{$search_data->field_index}`";
2197+
$params['select'] .= ", `t`.`{$search_data->field_index}`";
21962198
}//end if
21972199
}//end if
21982200

@@ -2381,13 +2383,18 @@ public function get_object_data( $object_params = null ) {
23812383
$display_filter = pods_v( 'display_filter', pods_v( 'options', pods_v( $search_data->field_index, $search_data->pod_data['object_fields'] ) ) );
23822384

23832385
foreach ( $results as $result ) {
2384-
$result = get_object_vars( $result );
2386+
$result = get_object_vars( $result );
2387+
$field_id = $search_data->field_id;
2388+
$field_index = $search_data->field_index;
23852389

2386-
if ( ! isset( $result[ $search_data->field_id ], $result[ $search_data->field_index ] ) ) {
2390+
if ( ! isset( $result[ $field_index ] ) ) {
2391+
$field_index = $default_field_index;
2392+
}
2393+
if ( ! isset( $result[ $field_id ], $result[ $field_index ] ) ) {
23872394
continue;
23882395
}
23892396

2390-
$result[ $search_data->field_index ] = trim( $result[ $search_data->field_index ] );
2397+
$result[ $field_index ] = trim( $result[ $field_index ] );
23912398

23922399
$object = '';
23932400
$object_type = '';
@@ -2401,11 +2408,11 @@ public function get_object_data( $object_params = null ) {
24012408
}
24022409

24032410
if ( 0 < strlen( $display_filter ) ) {
2404-
$display_filter_args = pods_v( 'display_filter_args', pods_v( 'options', pods_v( $search_data->field_index, $search_data->pod_data['object_fields'] ) ) );
2411+
$display_filter_args = pods_v( 'display_filter_args', pods_v( 'options', pods_v( $field_index, $search_data->pod_data['object_fields'] ) ) );
24052412

24062413
$filter_args = array(
24072414
$display_filter,
2408-
$result[ $search_data->field_index ],
2415+
$result[ $field_index ],
24092416
);
24102417

24112418
if ( ! empty( $display_filter_args ) ) {
@@ -2416,22 +2423,22 @@ public function get_object_data( $object_params = null ) {
24162423
}
24172424
}
24182425

2419-
$result[ $search_data->field_index ] = call_user_func_array( 'apply_filters', $filter_args );
2426+
$result[ $field_index ] = call_user_func_array( 'apply_filters', $filter_args );
24202427
}
24212428

24222429
if ( in_array( $options[ static::$type . '_object' ], array( 'site', 'network' ), true ) ) {
2423-
$result[ $search_data->field_index ] = $result[ $search_data->field_index ] . $result['path'];
2424-
} elseif ( '' === $result[ $search_data->field_index ] ) {
2425-
$result[ $search_data->field_index ] = '(No Title)';
2430+
$result[ $field_index ] = $result[ $field_index ] . $result['path'];
2431+
} elseif ( '' === $result[ $field_index ] ) {
2432+
$result[ $field_index ] = '(No Title)';
24262433
}
24272434

24282435
if ( 'admin_ajax_relationship' === $context ) {
2429-
$items[] = $this->build_dfv_field_item_data_recurse_item( $result[ $search_data->field_id ], $result[ $search_data->field_index ], (object) $object_params );
2436+
$items[] = $this->build_dfv_field_item_data_recurse_item( $result[ $field_id ], $result[ $field_index ], (object) $object_params );
24302437
} else {
2431-
$data[ $result[ $search_data->field_id ] ] = $result[ $search_data->field_index ];
2438+
$data[ $result[ $field_id ] ] = $result[ $field_index ];
24322439
}
24332440

2434-
$ids[] = $result[ $search_data->field_id ];
2441+
$ids[] = $result[ $field_id ];
24352442
}//end foreach
24362443
}//end if
24372444
}//end if

0 commit comments

Comments
 (0)