auto_menutitle.module in Auto Menu Title 7
Same filename and directory in other branches
Allows content types to set the default value of the 'Provide a menu link' checkbox.
File
auto_menutitle.moduleView source
<?php
/**
* @file
* Allows content types to set the default value of the 'Provide a menu link'
* checkbox.
*/
/**
* 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
$type = $form['#node_type']->type;
$form['menu']['auto_menutitle'] = array(
'#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' => -1,
);
$form['#validate'][] = 'auto_menutitle_node_type_form_validate';
}
/**
* Form validation handler for auto_menutitle_form_node_type_form_alter().
*/
function auto_menutitle_node_type_form_validate($form, &$form_state) {
if ($form_state['values']['auto_menutitle']) {
// Get the selected menu(s)
$selected = array();
foreach ($form_state['values']['menu_options'] as $menu) {
if ($menu !== 0) {
$selected[] = $menu;
}
}
// 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'."));
}
}
}
/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
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'])) {
$type = $form['#node']->type;
$form['menu']['enabled']['#default_value'] = variable_get('auto_menutitle_' . $type, 0);
}
}
Functions
Name![]() |
Description |
---|---|
auto_menutitle_form_node_form_alter | Implements hook_form_BASE_FORM_ID_alter(). |
auto_menutitle_form_node_type_form_alter | Implements hook_form_FORM_ID_alter(). |
auto_menutitle_node_type_form_validate | Form validation handler for auto_menutitle_form_node_type_form_alter(). |