Темезация страницы редактирования материала

Главные вкладки

Аватар пользователя Oegir Oegir 23 марта 2015 в 18:35

Здравствуйте.
Сразу оговорюсь, что материала по темезации формы в сети много, и файл NODETYPE-node-form.tpl.php у меня создан.
Сложность в том, что по макету на странице редактирования ноды должна быть еще одна форма, а drupal теги формы выносит за границы файла темезации формы. Судя по всему форму редактирования ноды нужно сделать в отдельном блоке и вывести его на какой-то странице.
С помощью чего организовать переопределение страницы node/%/edit или создать отдельную страницу вида node/%/editing и как лучше вывести на ней более одной формы, так что бы одна из них была формой редактирования соответствующего материала?

Комментарии

Аватар пользователя Oegir Oegir 23 марта 2015 в 21:19

Пытаюсь сделать так <?php $form drupal_get_form 'MY_NODE_TYPE_node_form', array ( 'nid' => $node_id ) ); ?>
Выдает ошибку:

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'node_form' not found or invalid function name в функции drupal_retrieve_form() (строка 841 в файле ...\includes\form.inc).
    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).
Аватар пользователя Oegir Oegir 24 марта 2015 в 11:30

В итоге хук hook_block_view() написал так:

<?php
/**
 * Реализация hook_block_view()
 */
function MY_HELPER_MODULE_block_view($delta '') {
    
$block = array ();
    
    switch (
$delta) {
        
        case 
'MY_BLOCK_NAME' :
            
            if (
arg ) == 'node' && arg ) == 'editing') {
                
$block ['subject'] = '<none>';
                
$node node_load arg ) );
                
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