Adiciona campo field_show_in_menu ao content_page

Campo booleano (padrão: ativo) que controla se a página aparece no menu
de navegação. Quando desmarcado, oculta field_menu_title no formulário
via #states e exclui a página da query em getChildPages(). O campo
field_weight permanece sempre visível, pois a ordenação se aplica
independentemente da exibição no menu.

Hook update_10015 cria storage + instância, atualiza o form display e
retroativamente define o valor como 1 para páginas existentes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-24 09:55:26 -03:00
parent 83690db7e9
commit f32a27dff9
6 changed files with 121 additions and 1 deletions

View File

@@ -427,6 +427,15 @@ function _structural_pages_alter_parent_page_form(&$form, \Drupal\Core\Form\Form
$form['menu']['#access'] = FALSE;
}
// Conditional visibility: field_menu_title and field_weight are only
// relevant when field_show_in_menu is checked.
$show_in_menu_selector = 'input[name="field_show_in_menu[value]"]';
if (isset($form['field_menu_title'])) {
$form['field_menu_title']['#states'] = [
'visible' => [$show_in_menu_selector => ['checked' => TRUE]],
];
}
if (!isset($form['field_site_section']) || !isset($form['field_parent_page'])) {
return;
}