function menu_target_edit_form_extra_elements in Menu target 7
Same name and namespace in other branches
- 8 menu_target.admin.inc \menu_target_edit_form_extra_elements()
Adds extra form elements to either node_form or menu_item_edit_form.
See also
1 call to menu_target_edit_form_extra_elements()
- menu_target_form_alter in ./
menu_target.module - Implements hook_form_alter().
File
- ./
menu_target.admin.inc, line 14 - Allows content editors to choose wether or not to open menu items in a new window
Code
function menu_target_edit_form_extra_elements(&$form, $node_form) {
if ($node_form) {
$type = $form['#node']->type;
$enabled_menus = variable_get('menu_options_' . $type);
if (empty($enabled_menus) || empty(array_filter($enabled_menus))) {
return;
}
}
// Only add extra form elements if the menu target functionality is enabled.
if (variable_get('menu_target_enabled', 1)) {
$mlid = $node_form ? $form['menu']['link']['mlid']['#value'] : $form['mlid']['#value'];
// Has this setting been enabled for this content?
$default = $mlid == 0 ? 0 : (bool) _menu_target_retarget_link($mlid);
// Create the form array.
$target = array(
'#type' => 'checkbox',
'#title' => t('Open this link in a new window'),
'#default_value' => $default,
);
// Depanding on the form type, this element is placed in the
// appropriate place in the form tree.
if ($node_form) {
$form['menu']['link']['target'] = $target;
}
else {
// This is the menu item edit form.
// Restructure the form in order to place the new target form element
// just below the 'expanded' checkbox.
$_form = $form;
$form = array();
foreach ($_form as $key => $element) {
$form[$key] = $_form[$key];
if ($key == 'expanded') {
$form['target'] = $target;
}
}
}
// Add our own submit callback to the form.
array_unshift($form['#submit'], '_menu_target_edit_form_extra_elements_submit');
}
}