node_example_form
- Drupal 5
- Drupal 6
developer/examples/node_example.module, строка 112
- Версии
- 5 – 6
node_example_form(&$node)
Реализация hook_form()
.
Сейчас пора описать форму для накопления специфичной информации для этого типа ноды. Этот хук требует нас вернуть массив с вложенным в него массивом содержащим информацию для каждого элемента в форме.
Код
<?php
function node_example_form(&$node) {
// The site admin can decide if this node type has a title and body, and how
// the fields should be labeled. We need to load these settings so we can
// build the node form correctly.
$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' => -5
);
}
if ($type->has_body) {
// In Drupal 6, we can use node_body_field() to get the body and filter
// elements. This replaces the old textarea + filter_form() method of
// setting this up. It will also ensure the teaser splitter gets set up
// properly.
$form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
}
// Now we define the form elements specific to our node type.
$form['color'] = array(
'#type' => 'textfield',
'#title' => t('Color'),
'#default_value' => isset($node->color) ? $node->color : '',
);
$form['quantity'] = array(
'#type' => 'textfield',
'#title' => t('Quantity'),
'#default_value' => isset($node->quantity) ? $node->quantity : 0,
'#size' => 10,
'#maxlength' => 10
);
return $form;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии