Всем привет. Столкнулся с проблемой. Разрабатываю собственный тип узла. Мне нужно, чтобы форма для создания/редактирования узла обрабаьывалась моей функцией темизации. В hook_form написал $form['#theme'] = myfunc; Создал реализацию hook_theme, где объявил myfunc и создал функцию theme_myfunc. Но - не сработало( Может, кто подскажет, в чем я ошибся? Если непонятно, могу привести весть код.
Комментарии
Тоже недавно столкнулся с такой проблемой...
в template.php
// we register the form to the theme registry
function s5fix_theme(){
return array(
'imagegallery_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'imagegallery-node-form',
),
);
}
// Theme the node add / edit forms for custom CCK types
function s5fix_imagegallery_node_form($form) {
return drupal_render($form);
}
likin, разъясни немного, я просто новичек в php. Насколько я понял, первая функция регистрирует обработчик для формы ноды imagegallery, т.е. файл шаблона - imagegallery_node_form.tpl.php, а вторая - themename_modulename_node_form - то же самое? Не хватит какой-нибудь одной?
Я вообще читал, что если установить $form['#theme'] = function, то для оформления формы будет запускаться эта функция, но относится ли это к формам нод?
Приведу код, вдруг я что-то недопонял:
<?phpfunction book_form($node) {
$type = node_get_types('type', $node);
$form['#theme'] = 'bookform';
...
}
function book_theme() {
return array(
'bookform' => array(
'arguments' => array(
'form' => NULL
)
)
);
};
function theme_bookform($form) {
echo "<pre>" . htmlspecialchars(print_r($form, true)) . "</pre>"; exit();
}?>
Объяни, пожалуйста, подробней, на будущее.