Тема формы ввода CCK в Drupal 6 - PullRequest
2 голосов
/ 18 марта 2009

В моем файле template.php есть это:

function myadmintheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}

И у меня есть ccktype.tpl.php в том же каталоге:

<b>works!</b>

Но не работает, если я вхожу в узел / добавить / ccktype, я не получаю "работает!" сообщение.. Я перепробовал все!

любая помощь будет оценена

Ответы [ 4 ]

5 голосов
/ 18 марта 2009

Функция темы, которую нужно переопределить, это ccktype_node_form, а не node_form. Все формы узлов, поддерживаемые модулем узла, отображаются на функцию node_form для построения, но они все еще имеют уникальные идентификаторы форм.

1 голос
/ 16 января 2012

Это начало работать для меня, но после долгих испытаний. :) Я использую Drupal 6 и допустил ошибку при написании кода для Drupal 5. Я использовал form_render (который предназначен для D5) вместо drupal_render (для D6), в моем node-employee-edit.php.

И следующим изменением в template.php была функция

waffles_theme($existing, $type, $theme, $path){ 
    return array( 'minister_node_form' => array( 'arguments' => array('form' => NULL), 'template' => 'node-minister-edit' ) ); 
}

См. Аргумент массива template изменен с minister на node-minister-edit, который является файлом шаблона моего узла. Здесь, в minister_node_form, первое слово «министр» - это мой тип контента.

И, как сказал Себ , я очистил кеши, прежде чем начал использовать любое такое изменение. Надеюсь, это поможет другим:)

Мне помогли следующие вещи:
1. http://drupal.org/node/601646
2. http://drupal.org/node/98253

1 голос
/ 18 марта 2009

Это решение:

function myadmintheme_theme($existing, $type, $theme, $path) {
  return array(
    'ccktype_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}

Большое спасибо, Итон!

0 голосов
/ 18 марта 2009

Прежде всего, убедитесь, что Drupal не кеширует ваш модуль. Перейдите в Администрирование> Конфигурация сайта> Производительность и очистите все кэши.

Если это не сработает, попробуйте переименовать файл в node-add-ccktype.tpl.php.

...