function i18n_menu_form_node_form_alter in Internationalization 7
Implements hook_form_node_form_alter().
Add language to menu settings of the node form, as well as setting defaults to match the translated item's menu settings.
File
- i18n_menu/
i18n_menu.module, line 812 - Internationalization (i18n) submodule: Menu translation.
Code
function i18n_menu_form_node_form_alter(&$form, &$form_state, $form_id) {
if (isset($form['menu'])) {
$node = $form['#node'];
$link = $node->menu;
if (!empty($link['mlid'])) {
// Preserve the menu item language whatever it is.
$form['menu']['link']['language'] = array(
'#type' => 'value',
'#value' => $link['language'],
);
}
elseif (i18n_menu_node_supported_type($node->type)) {
// Set menu language to node language but only if it is a supported node type.
$form['menu']['link']['language'] = array(
'#type' => 'value',
'#value' => $node->language,
);
}
else {
$form['menu']['link']['language'] = array(
'#type' => 'value',
'#value' => LANGUAGE_NONE,
);
}
// Customized must be set to 1 to save language.
$form['menu']['link']['customized'] = array(
'#type' => 'value',
'#value' => 1,
);
}
}