モジュールをDrupal 6からDrupal 7に変換しようとしています。Drupal7は、独自のノードタイプをhook_node_infoで定義します。
hook_node_infoはhas_titleとhas_bodyをTRUEに定義していますが、これらのフィールドをノードフォームに表示するにはどうすればよいですか?以前は、hook_form()を使用していました。
function mymodule_form(&$node, $form_state) {
$type = node_get_types('type', $node);
if ($type->has_title) {
$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -25,
);
}
if ($type->has_body) {
$form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
$form['body_field']['body']['#rows'] = 5;
$form['body_field']['body']['#description'] = 'Enter a short message to present to the user.';
}
return $form;
}
D6では、これでうまくいきました。Drupal 7では、hook_formが変更されており、私はそのドキュメントを完全にはフォローしていません。
モジュールがアクティブ化されたときに、コアのボディとタイトルフィールドをどのように利用し、このノードタイプに割り当てることができますか?
さらに、新しいフィールドタイプを定義して、本文(要約付きの長いテキスト)を選択したものに模倣するにはどうすればよいですか?