node_example_form

  1. drupal
    1. 4.7 node_example.module
    2. 5 node_example.module
    3. 6
Versions
4.7 – 5 node_example_form(&$node)
6 node_example_form(&$node, $form_state)

Implementation of hook_form().

Now it's time to describe the form for collecting the information specific to this node type. This hook requires us to return an array with a sub array containing information for each element in the form.

Related topics

Code

examples/node_example/node_example.module, line 148

<?php
function node_example_form(&$node, $form_state) {
  // 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 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;
}
?>