- Issue created by @guardiola86
- Assigned to abhishek_virasat
- Status changed to Needs review
7 months ago 11:11am 9 May 2024 - Issue was unassigned.
- ๐ฎ๐ณIndia abhishek_virasat
@Eli-T, fixed the issue and created MR. please review it once.
- ๐ฌ๐งUnited Kingdom Eli-T Manchester
I managed to reliably recreate this on Drupal 11.0.5 PHP 8.3 in ddev with the following view
uuid: 9ed39921-eb39-45c8-9025-86ea582d1cca langcode: en status: true dependencies: module: - node - user _core: default_config_hash: d7p-wwJZ_Wmz1gnvla9jDtRsjOaWAhPoIoW9w3vo4R4 id: content label: Content module: node description: 'Find and manage content.' tag: default base_table: node_field_data base_field: nid display: default: id: default display_title: Default display_plugin: default position: 0 display_options: title: Content fields: node_bulk_form: id: node_bulk_form table: node field: node_bulk_form entity_type: node plugin_id: node_bulk_form label: '' exclude: false alter: alter_text: false element_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true title: id: title table: node_field_data field: title entity_type: node entity_field: title plugin_id: field label: Title exclude: false alter: alter_text: false element_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true type: string settings: link_to_entity: true type: id: type table: node_field_data field: type relationship: none group_type: group admin_label: '' entity_type: node entity_field: type plugin_id: field label: 'Content type' exclude: false alter: alter_text: false text: '' make_link: false path: '' absolute: false external: false replace_spaces: false path_case: none trim_whitespace: false alt: '' rel: '' link_class: '' prefix: '' suffix: '' target: '' nl2br: false max_length: 0 word_boundary: true ellipsis: true more_link: false more_link_text: '' more_link_path: '' strip_tags: false trim: false preserve_tags: '' html: false element_type: '' element_class: '' element_label_type: '' element_label_class: '' element_label_colon: true element_wrapper_type: '' element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true click_sort_column: target_id type: entity_reference_label settings: link: false group_column: target_id group_columns: { } group_rows: true delta_limit: 0 delta_offset: 0 delta_reversed: false delta_first_last: false multi_type: separator separator: ', ' field_api_classes: false name: id: name table: users_field_data field: name relationship: uid entity_type: user entity_field: name plugin_id: field label: Author exclude: false alter: alter_text: false element_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true type: user_name status: id: status table: node_field_data field: status entity_type: node entity_field: status plugin_id: field label: Status exclude: false alter: alter_text: false element_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true type: boolean settings: format: custom format_custom_false: Unpublished format_custom_true: Published changed: id: changed table: node_field_data field: changed entity_type: node entity_field: changed plugin_id: field label: Updated exclude: false alter: alter_text: false element_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true type: timestamp settings: date_format: short custom_date_format: '' timezone: '' tooltip: date_format: long custom_date_format: '' time_diff: enabled: false future_format: '@interval hence' past_format: '@interval ago' granularity: 2 refresh: 60 langcode: id: langcode table: node_field_data field: langcode relationship: none group_type: group admin_label: '' entity_type: node entity_field: langcode plugin_id: field_language label: Language exclude: false alter: alter_text: false text: '' make_link: false path: '' absolute: false external: false replace_spaces: false path_case: none trim_whitespace: false alt: '' rel: '' link_class: '' prefix: '' suffix: '' target: '' nl2br: false max_length: 0 word_boundary: true ellipsis: true more_link: false more_link_text: '' more_link_path: '' strip_tags: false trim: false preserve_tags: '' html: false element_type: '' element_class: '' element_label_type: '' element_label_class: '' element_label_colon: true element_wrapper_type: '' element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true click_sort_column: value type: language settings: link_to_entity: false native_language: false group_column: value group_columns: { } group_rows: true delta_limit: 0 delta_offset: 0 delta_reversed: false delta_first_last: false multi_type: separator separator: ', ' field_api_classes: false operations: id: operations table: node field: operations relationship: none group_type: group admin_label: '' plugin_id: entity_operations label: Operations exclude: false alter: alter_text: false text: '' make_link: false path: '' absolute: false external: false replace_spaces: false path_case: none trim_whitespace: false alt: '' rel: '' link_class: '' prefix: '' suffix: '' target: '' nl2br: false max_length: 0 word_boundary: true ellipsis: true more_link: false more_link_text: '' more_link_path: '' strip_tags: false trim: false preserve_tags: '' html: false element_type: '' element_class: '' element_label_type: '' element_label_class: '' element_label_colon: true element_wrapper_type: '' element_wrapper_class: '' element_default_classes: true empty: '' hide_empty: false empty_zero: false hide_alter_empty: true destination: true pager: type: full options: pagination_heading_level: h4 items_per_page: 50 tags: next: 'Next โบ' previous: 'โน Previous' first: 'ยซ First' last: 'Last ยป' exposed_form: type: basic options: submit_button: Filter reset_button: true reset_button_label: Reset exposed_sorts_label: 'Sort by' expose_sort_order: true sort_asc_label: Asc sort_desc_label: Desc access: type: perm options: perm: 'access content overview' cache: type: tag empty: area_text_custom: id: area_text_custom table: views field: area_text_custom plugin_id: text_custom empty: true content: 'No content available.' sorts: { } arguments: { } filters: title: id: title table: node_field_data field: title relationship: none group_type: group admin_label: '' entity_type: node entity_field: title plugin_id: string operator: contains value: '' group: 1 exposed: true expose: operator_id: title_op label: Title description: '' use_operator: false operator: title_op operator_limit_selection: false operator_list: { } identifier: title required: false remember: false multiple: false remember_roles: authenticated: authenticated anonymous: '0' administrator: '0' is_grouped: false group_info: label: '' description: '' identifier: '' optional: true widget: select multiple: false remember: false default_group: All default_group_multiple: { } group_items: { } type: id: type table: node_field_data field: type relationship: none group_type: group admin_label: '' entity_type: node entity_field: type plugin_id: bundle operator: in value: { } group: 1 exposed: true expose: operator_id: type_op label: 'Content type' description: '' use_operator: false operator: type_op operator_limit_selection: false operator_list: { } identifier: type required: false remember: false multiple: false remember_roles: authenticated: authenticated anonymous: '0' administrator: '0' reduce: false is_grouped: false group_info: label: '' description: '' identifier: '' optional: true widget: select multiple: false remember: false default_group: All default_group_multiple: { } group_items: { } status: id: status table: node_field_data field: status relationship: none group_type: group admin_label: '' entity_type: node entity_field: status plugin_id: boolean operator: '=' value: '1' group: 1 exposed: true expose: operator_id: '' label: Status description: '' use_operator: false operator: status_op operator_limit_selection: false operator_list: { } identifier: status required: false remember: false multiple: false remember_roles: authenticated: authenticated is_grouped: true group_info: label: 'Published status' description: '' identifier: status optional: true widget: select multiple: false remember: false default_group: All default_group_multiple: { } group_items: 1: title: Published operator: '=' value: '1' 2: title: Unpublished operator: '=' value: '0' langcode: id: langcode table: node_field_data field: langcode relationship: none group_type: group admin_label: '' entity_type: node entity_field: langcode plugin_id: language operator: in value: { } group: 1 exposed: true expose: operator_id: langcode_op label: Language description: '' use_operator: false operator: langcode_op operator_limit_selection: false operator_list: { } identifier: langcode required: false remember: false multiple: false remember_roles: authenticated: authenticated anonymous: '0' administrator: '0' reduce: false is_grouped: false group_info: label: '' description: '' identifier: '' optional: true widget: select multiple: false remember: false default_group: All default_group_multiple: { } group_items: { } status_extra: id: status_extra table: node_field_data field: status_extra entity_type: node plugin_id: node_status operator: '=' value: false group: 1 expose: operator_limit_selection: false operator_list: { } filter_groups: operator: AND groups: 1: AND style: type: table options: grouping: { } row_class: '' default_row_class: true columns: node_bulk_form: node_bulk_form title: title type: type name: name status: status changed: changed edit_node: edit_node delete_node: delete_node dropbutton: dropbutton timestamp: title default: changed info: node_bulk_form: align: '' separator: '' empty_column: false responsive: '' title: sortable: true default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' type: sortable: true default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' name: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: priority-low status: sortable: true default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' changed: sortable: true default_sort_order: desc align: '' separator: '' empty_column: false responsive: priority-low edit_node: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' delete_node: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' dropbutton: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' timestamp: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' override: true sticky: true summary: '' empty_table: true caption: '' description: '' row: type: fields query: type: views_query relationships: uid: id: uid table: node_field_data field: uid admin_label: author plugin_id: standard required: true show_admin_links: false display_extenders: { } cache_metadata: max-age: 0 contexts: - 'languages:language_content' - 'languages:language_interface' - url - url.query_args - user - 'user.node_grants:view' - user.permissions tags: { } page_1: id: page_1 display_title: Page display_plugin: page position: 1 display_options: display_extenders: views_ef_fieldset: views_ef_fieldset: enabled: true options: sort: root: container_type: details depth: '0' description: '' id: root open: true pid: '' title: Filters type: container weight: '0' title: depth: '1' id: title pid: root type: filter weight: '-10' type: depth: '1' id: type pid: root type: filter weight: '-10' status: depth: '1' id: status pid: root type: filter weight: '-10' langcode: depth: '1' id: langcode pid: root type: filter weight: '-10' container-0: container_type: details depth: '1' description: '' id: container-0 open: false pid: root title: 'Container 0' type: container weight: '-9' submit: depth: '2' id: submit pid: container-0 type: buttons weight: '-11' container-1: container_type: details depth: '1' description: '' id: container-1 open: false pid: root title: 'Container 1' type: container weight: '-8' container-2: container_type: details depth: '1' description: '' id: container-2 open: false pid: root title: 'Container 2' type: container weight: '-7' container-3: container_type: details depth: '1' description: '' id: container-3 open: false pid: root title: 'Container 3' type: container weight: '-6' container-4: container_type: details depth: '1' description: '' id: container-4 open: false pid: root title: 'Container 4' type: container weight: '-5' path: admin/content/node menu: type: 'default tab' title: Content description: '' weight: -10 menu_name: admin context: '' tab_options: type: normal title: Content description: 'Find and manage content' weight: -10 menu_name: admin cache_metadata: max-age: 0 contexts: - 'languages:language_content' - 'languages:language_interface' - url - url.query_args - user - 'user.node_grants:view' - user.permissions tags: { }
After importing this and visiting
- ๐ฌ๐งUnited Kingdom Eli-T Manchester
I think the fix in MR16 is the right fix, but it has been superseded by some of the recent code quality changes.
- ๐ฌ๐งUnited Kingdom Eli-T Manchester
The way I recreated the bug was just by using the standard profile and using views_ef_fieldset on it.
The langcode filter on that form, even though set to exposed, does not show on that form. Whilst this makes functional sense, I don't know the mechanism by which it is hidden at the moment.
It isn't represented in $form['#info']['filter-langcode'] in views_ef_fieldset_form_views_exposed_form_alter() the unlike all the other exposed filters. The alter function assumes it is, hence the PHP warning.It would be interesting to know if this can happen with other exposed filters, but if it can, the fix in the MR should still work.
-
eli-t โ
committed 2662555b on 8.x-1.x authored by
abhishek_gupta1 โ
#3446232: fix PHP warning
-
eli-t โ
committed 2662555b on 8.x-1.x authored by
abhishek_gupta1 โ
- ๐ฌ๐งUnited Kingdom Eli-T Manchester
Further to #10, in Drupal Slack #support channel, @godotislate pointed me towards \Drupal\views\Plugin\views\filter\LanguageFilter::access(), which is what stops the langcode exposed filter from showing.
Automatically closed - issue fixed for 2 weeks with no activity.