Здравствуйте.
Сразу оговорюсь, что материала по темезации формы в сети много, и файл NODETYPE-node-form.tpl.php у меня создан.
Сложность в том, что по макету на странице редактирования ноды должна быть еще одна форма, а drupal теги формы выносит за границы файла темезации формы. Судя по всему форму редактирования ноды нужно сделать в отдельном блоке и вывести его на какой-то странице.
С помощью чего организовать переопределение страницы node/%/edit или создать отдельную страницу вида node/%/editing и как лучше вывести на ней более одной формы, так что бы одна из них была формой редактирования соответствующего материала?
Комментарии
Нашел здесь http://sergeybelyaev.name/blog/kak-vyvesti-formu-v-blok как вывести форму в блок. Страницу редактирования сделаю в Panels. Как программно получить форму редактирования ноды?
Пытаюсь сделать так
<?php $form = drupal_get_form ( 'MY_NODE_TYPE_node_form', array ( 'nid' => $node_id ) ); ?>
Выдает ошибку:
Notice: Undefined index: #node в функции comment_form_node_form_alter() (строка 1210 в файле ...\modules\comment\comment.module).
Notice: Trying to get property of non-object в функции comment_form_node_form_alter() (строка 1227 в файле ...\modules\comment\comment.module).
Notice: Undefined index: #node в функции feeds_form_node_form_alter() (строка 655 в файле ...\sites\all\modules\feeds\feeds.module).
Notice: Trying to get property of non-object в функции feeds_form_node_form_alter() (строка 655 в файле ...\sites\all\modules\feeds\feeds.module).
Notice: Undefined index: #node в функции menu_form_node_form_alter() (строка 629 в файле ...\modules\menu\menu.module).
Notice: Trying to get property of non-object в функции menu_form_node_form_alter() (строка 629 в файле ...\modules\menu\menu.module).
Notice: Undefined index: #node в функции menu_form_node_form_alter() (строка 630 в файле ...\modules\menu\menu.module).
Notice: Trying to get property of non-object в функции menu_form_node_form_alter() (строка 630 в файле ...\modules\menu\menu.module).
Notice: Undefined index: node в функции pathauto_form_node_form_alter() (строка 491 в файле ...\sites\all\modules\pathauto\pathauto.module).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7788 в файле ...\includes\common.inc).
То же интересует этот вопрос. Задолбали эти простыни на страницах редактирования/создания нод.
В итоге хук hook_block_view() написал так:
<?php
/**
* Реализация hook_block_view()
*/
function MY_HELPER_MODULE_block_view($delta = '') {
$block = array ();
switch ($delta) {
case 'MY_BLOCK_NAME' :
if (arg ( 0 ) == 'node' && arg ( 2 ) == 'editing') {
$block ['subject'] = '<none>';
$node = node_load ( arg ( 1 ) );
module_load_include ( 'pages.inc', 'node' );
$form = drupal_get_form ( 'MY_NODE_TYPE_node_form', $node );
$block ['content'] = render ( $form );
}
break;
}
return $block;
}
?>
При этом форму как и раньше можно темезировать в файле MY-NODE-TYPE-node-form.tpl.php