Мне нужно в стандартную форму добавления ноды добавить свои поля.
Делаю вот так:
function library_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'library_node_form') {
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Upload'),
'#size' => 40,
);
$form['author'] = array(
//параметры поля
);
$form['zanr'] = array(
//параметры поля
);
if ($form_id == 'library_node_form') {
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Upload'),
'#size' => 40,
);
$form['author'] = array(
//параметры поля
);
$form['zanr'] = array(
//параметры поля
);
$form['#validate'] = 'library_add_form_validate';
}
}
Вызываю форму:
В меню указываю путь:
$items['node/add/library'] = array(
'title' => '',
'page callback' => 'library_form',
'page arguments' => array(&$form, $form_state, 'library_node_form'),
'access callback' => TRUE,
'file'=>'library.add.inc',
'access arguments' => array('add', $node ,$account = NULL),
'type' => MENU_LOCAL_TASK
);
'title' => '',
'page callback' => 'library_form',
'page arguments' => array(&$form, $form_state, 'library_node_form'),
'access callback' => TRUE,
'file'=>'library.add.inc',
'access arguments' => array('add', $node ,$account = NULL),
'type' => MENU_LOCAL_TASK
);
Пишет warning: Missing argument 3 for library_form_alter() in . Не "доходит" id формы. Как это id можно посмотреть?
Комментарии
посмотреть ее ид в списке содержимого либо через модуль webforms
В списке содержимого - это где? Подскажите, пожалуйста.
Я так понимаю, мне надо взять id стандартной формы добавления ноды. Или это не так?
2 и 3й код удалить
Спасибо большое, это получилось.
Теперь не выходит с обработчиком.
Делаю вот так: убиваю кнопку Save, ставлю свою, прикрепляю к ней обрабочик.
unset($form['buttons']['submit']);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
$form['#submit'] = 'library_add_form_submit';
откуда такие бредовые идеи?
$form['#submit'] = 'library_add_form_submit';
подцепит обработчик сам
то есть будет вызывать функцию
library_add_form_submit
удалять дефолтную кнопку нельзя