[Решено] Создание собственного типа ноды

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

Аватар пользователя Dobryak Dobryak 28 ноября 2010 в 23:51

Уважаемые вопрос следующего плана.
Хочу в модуле прописать собственную ноду, которая имеет заголовок, боди, и другие поля, которые я подгружаю из своей таблицы.
В друпале 6-м это выглядело следующим образом.
Описываю ноду и в hook_form пишу
if ($type->has_title) {
$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -5,
);
}

if ($type->has_body) {
$form['body_field'] = node_body_field(
$node,
$type->body_label,
$type->min_word_count
);
}

return $form;

Пытаюсь то же самое сделать в 7-ке, заголовок нормально реагирует.. а вот что делать с боди не знаю...
Что именно надо прописывать чтоб он с ней работал как и с обычным типом материалов.. а дальше я уже нужные поля сам напихаю.... ???

Комментарии

Аватар пользователя Dobryak Dobryak 29 ноября 2010 в 21:59

Действительно нашел там где и указал!

Объявил НОДУ в модуле, а само боди прикрепил через hook_install, так как написано в примерах!

файл crash.install

function crash_install() {
drupal_set_message("CRASH INSTALLED");
node_types_rebuild();
$types = node_type_get_types();
node_add_body_field($types['crash']);
}

Теперь, если надо можно спокойно вызывать внутри модуля
function crash_form($node, &$form_state) {

global $user;

$type = node_type_get_type($node);

$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -5,
);

return $form;
}

И я так понимаю тут уже могу указывать необходимые мне поля.