Всем привет! При разработке собственного модуля столкнулся с проблемой. Ситуация такая - При создании нового Content type нужно, чтобы некоторые данные записывались в созданную мной таблицу. Решением было сделать это через hook_form_alter, и в нем обьявить свою функцию сабмита, как дополнение до уже существующей node_type_submit. Вот код, который за все это отвечает:
<?php
function dev_form_alter($form, &$form_state, $form_id) {
if ($form_id == 'node_type_form') {
array_unshift($form['#submit'], 'dev_add_content_type');
}
}
function
dev_add_content_type($form, &$form_state) {
$insert = db_insert('dev_content_types')
->fields(array(
'content_type_type' => '1111',
'content_type_name' => '2223',
'enabled' => 0,
))
->execute();
}
?>
Сразу скажу - запрос в бд полностью рабочий, если его вставить прямо в функцию node_type_submit, то он работает, а так складывается впечатление, что система игнорит команды в моей функции, которая, кстати, видна в дебаге
<?phpdebug:
Array
(
[0] => dev_add_content_type
[1] => node_type_form_submit
)?>
Подскажите, пожалуйста, в какую сторону копать?
Комментарии
вот вам подсказка http://php.net/manual/ru/language.references.pass.php
а вот и документация по hook_form_alter() https://api.drupal.org/api/drupal/modules%21system%21system.api.php/func...
Спасибо, дошло))
имхо, если надо что-то записывать в БД и задействовано Form API, рационально использовать Entity API, красиво и оперативно, не надо sql реализовывать