Открыть можно любую форму в модальном окне с помощью модуля ctools. Вот пример редактирования ноды.
<?php
function mymodule_menu() {
$items['node/%node/custom-edit'] = array(
'title' => 'Edit node',
'type' => MENU_LOCAL_TASK,
'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
'access callback' => 'node_access',
'access arguments' => array(1),
'page callback' => 'mymodule_edit_node',
'page arguments' => array(1),
'delivery callback' => 'ajax_deliver',
);
return $items;
}
function mymodule_edit_node($node) {
ctools_include('modal');
ctools_modal_add_js();
module_load_include('inc', 'node', 'node.pages');
form_load_include($form_state, 'inc', 'node', 'node.pages');
$form_state = array();
$form_state['build_info']['args'] = array($node);
$form_build = drupal_build_form($node->type . '_node_form', $form_state);
return array(
'#type' => 'ajax',
'#commands' => ctools_modal_form_render($form_state, $form_build),
);
}
Также, вы можете изменить модальное окно CTools