Loading auto_menutitle.module +21 −6 Original line number Diff line number Diff line Loading @@ -9,15 +9,26 @@ * Implements hook_form_FORM_ID_alter(). */ function auto_menutitle_form_node_type_form_alter(&$form, &$form_state, $form_id) { // Add checkbox for setting the default value // Get node type. $type = $form['#node_type']->type; $form['menu']['auto_menutitle'] = array( // Add checkbox for setting the default value. $form['menu']['auto_menutitle'] = [ '#type' => 'checkbox', '#title' => t('Provide a menu link by default'), '#description' => t('Tick this box to create menu links for this content type by default.'), '#default_value' => variable_get('auto_menutitle_' . $type, 0), '#weight' => -2, ]; // Add checkbox for setting the default value for menu availability. $form['menu']['auto_menutitle_hidden'] = [ '#type' => 'checkbox', '#title' => t('Menu item hidden?'), '#description' => t('Tick this box to make all items hidden by default'), '#default_value' => variable_get('auto_menutitle_hidden_' . $type, 0), '#weight' => -1, ); ]; $form['#validate'][] = 'auto_menutitle_node_type_form_validate'; } Loading @@ -26,7 +37,7 @@ function auto_menutitle_form_node_type_form_alter(&$form, &$form_state, $form_id */ function auto_menutitle_node_type_form_validate($form, &$form_state) { if ($form_state['values']['auto_menutitle']) { // Get the selected menu(s) // Get the selected menu(s). $selected = array(); foreach ($form_state['values']['menu_options'] as $menu) { if ($menu !== 0) { Loading @@ -34,7 +45,8 @@ function auto_menutitle_node_type_form_validate($form, &$form_state) { } } // Display error if menu link is provided by default, but no menu was selected // Display error if menu link is provided by default, // but no menu was selected. if (empty($selected)) { form_set_error('menu_options', t("To 'Provide a menu link by default' you must also select one or more 'Available menus'.")); } Loading @@ -47,9 +59,12 @@ function auto_menutitle_node_type_form_validate($form, &$form_state) { function auto_menutitle_form_node_form_alter(&$form, &$form_state, $form_id) { // Only set default value for new nodes, leave existing nodes alone (as users // might have manually set them) if (empty($form['nid']['#value'])) { if (empty($form['nid']['#value']) && isset($form['menu'])) { $type = $form['#node']->type; $text = (variable_get('auto_menutitle_hidden_' . $type, 0) == '1') ? t("(hidden by default)") : t("(visible by default)"); $form['menu']['enabled']['#title'] = $form['menu']['enabled']['#title'] . " " . $text; $form['menu']['enabled']['#default_value'] = variable_get('auto_menutitle_' . $type, 0); $form['menu']['link']['hidden']['#value'] = variable_get('auto_menutitle_hidden_' . $type, 0); } } Loading
auto_menutitle.module +21 −6 Original line number Diff line number Diff line Loading @@ -9,15 +9,26 @@ * Implements hook_form_FORM_ID_alter(). */ function auto_menutitle_form_node_type_form_alter(&$form, &$form_state, $form_id) { // Add checkbox for setting the default value // Get node type. $type = $form['#node_type']->type; $form['menu']['auto_menutitle'] = array( // Add checkbox for setting the default value. $form['menu']['auto_menutitle'] = [ '#type' => 'checkbox', '#title' => t('Provide a menu link by default'), '#description' => t('Tick this box to create menu links for this content type by default.'), '#default_value' => variable_get('auto_menutitle_' . $type, 0), '#weight' => -2, ]; // Add checkbox for setting the default value for menu availability. $form['menu']['auto_menutitle_hidden'] = [ '#type' => 'checkbox', '#title' => t('Menu item hidden?'), '#description' => t('Tick this box to make all items hidden by default'), '#default_value' => variable_get('auto_menutitle_hidden_' . $type, 0), '#weight' => -1, ); ]; $form['#validate'][] = 'auto_menutitle_node_type_form_validate'; } Loading @@ -26,7 +37,7 @@ function auto_menutitle_form_node_type_form_alter(&$form, &$form_state, $form_id */ function auto_menutitle_node_type_form_validate($form, &$form_state) { if ($form_state['values']['auto_menutitle']) { // Get the selected menu(s) // Get the selected menu(s). $selected = array(); foreach ($form_state['values']['menu_options'] as $menu) { if ($menu !== 0) { Loading @@ -34,7 +45,8 @@ function auto_menutitle_node_type_form_validate($form, &$form_state) { } } // Display error if menu link is provided by default, but no menu was selected // Display error if menu link is provided by default, // but no menu was selected. if (empty($selected)) { form_set_error('menu_options', t("To 'Provide a menu link by default' you must also select one or more 'Available menus'.")); } Loading @@ -47,9 +59,12 @@ function auto_menutitle_node_type_form_validate($form, &$form_state) { function auto_menutitle_form_node_form_alter(&$form, &$form_state, $form_id) { // Only set default value for new nodes, leave existing nodes alone (as users // might have manually set them) if (empty($form['nid']['#value'])) { if (empty($form['nid']['#value']) && isset($form['menu'])) { $type = $form['#node']->type; $text = (variable_get('auto_menutitle_hidden_' . $type, 0) == '1') ? t("(hidden by default)") : t("(visible by default)"); $form['menu']['enabled']['#title'] = $form['menu']['enabled']['#title'] . " " . $text; $form['menu']['enabled']['#default_value'] = variable_get('auto_menutitle_' . $type, 0); $form['menu']['link']['hidden']['#value'] = variable_get('auto_menutitle_hidden_' . $type, 0); } }