Content Type no showing fields I have been trying to created a content type programmatically in Drupal 7. I notice that I should use the hook_node_info to generate the content type with the title and to add the body I should use the  node_add_body_field. I have been follow the examples modules ￼

So this is what I got as my code ...
non_recruiter.module

&lt;?php

/**
 * Implements hook_node_info().
 */
function non_recruiter_node_info() {
  // We define the node type as an associative array.
  return array(
      'job_template_2' =&gt; array(
          'name' =&gt; t('Job Template 2'),
          'base' =&gt; 'job_template_2',
          'description' =&gt; t('A content type for posting your jobs.'),
          'title_label' =&gt; t('Job Template 2'),
          'locked' =&gt; TRUE,
      ),
  );
}

/**
 * Implements hook_node_type_insert().
 */
function non_recruiter_node_type_insert($content_type) {
  if ($content_type-&gt;type == 'job_template_2') {
      $body_instance = node_add_body_field($content_type, t('Job Description'));
        $body_instance['display']['non_recruiter_list'] = array(
        'label' =&gt; 'hidden',
        'type' =&gt; 'text_summary_or_trimmed',
    );

    // Save our changes to the body field instance.
    field_update_instance($body_instance);

    // Create all the fields we are adding to our content type.
    foreach (_non_recruiter_installed_fields() as $field) {
      field_create_field($field);
    }

    // Create all the instances for our fields.
    foreach (_non_recruiter_installed_instances() as $instance) {
      $instance['entity_type'] = 'node';
      $instance['bundle'] = 'non_recruiter';
      field_create_instance($instance);
    }
  }
}

/**
 * Implements hook_form().
 */
function non_recruiter_form($node, $form_state) {
  return node_content_form($node, $form_state);
}


function _non_recruiter_installed_fields() {
  return array(
      'non_recruiter_quantity' =&gt; array(
          'field_name'  =&gt; 'node_example_quantity',
          'cardinality' =&gt; 1,
          'type'        =&gt; 'text',
      ),
  );
}


function _non_recruiter_installed_instances() {
  return array(
      'non_recruiter_quantity' =&gt; array(
          'field_name'  =&gt; 'non_recruiter_quantity',
          'label' =&gt; t('Quantity required'),
          'type'        =&gt; 'text',
          'widget'      =&gt; array(
              'type'    =&gt; 'text_textfield',
          ),
          'display' =&gt; array(
              'non_recruiter_list' =&gt; array(
                  'label' =&gt; 'hidden',
                  'type' =&gt; 'hidden',
              ),
          ),
      ),
  );
}


So I took what they did and modify the code base on what I want. 

My Goal is to have a content type that have the following fields...


Job Title (title)
Job Description (body)
Quantity (text)


But I'm doing something wrong because the fields are empty. If I try to add new content using this content type this is what I got ...  

An empty content type, without any fields.

Here is some extra information of how my Manage Fields &amp; Display looks like.. 
Manage Fields

Manage Display



So, can anyone tell me why my fields are not showing up in my content type ?
/**
 * Implements hook_node_info().
 */
function non_recruiter_node_info() {
  // We define the node type as an associative array.
  return array(
      'job_template_2' =&gt; array(
          'name' =&gt; t('Job Template 2'),
          'base' =&gt; 'job_template_2',
          'description' =&gt; t('A content type for posting your jobs.'),
          'title_label' =&gt; t('Job Template 2'),
          'locked' =&gt; TRUE,
      ),
  );
}

/**
 * Implements hook_node_type_insert().
 */
function non_recruiter_node_type_insert($content_type) {
  if ($content_type-&gt;type == 'job_template_2') {
      $body_instance = node_add_body_field($content_type, t('Job Description'));
        $body_instance['display']['non_recruiter_list'] = array(
        'label' =&gt; 'hidden',
        'type' =&gt; 'text_summary_or_trimmed',
    );

// Save our changes to the body field instance.
field_update_instance($body_instance);

// Create all the fields we are adding to our content type.
foreach (_non_recruiter_installed_fields() as $field) {
  field_create_field($field);
}

// Create all the instances for our fields.
foreach (_non_recruiter_installed_instances() as $instance) {
  $instance['entity_type'] = 'node';
  $instance['bundle'] = 'job_template_2';
  field_create_instance($instance);
}
  }
}

/**
 * Implements hook_form().
 */
function job_template_2_form($node, $form_state) {
  return node_content_form($node, $form_state);
}


function _non_recruiter_installed_fields() {
  return array(
      'non_recruiter_quantity' =&gt; array(
          'field_name'  =&gt; 'node_example_quantity',
          'cardinality' =&gt; 1,
          'type'        =&gt; 'text',
      ),
  );
}


function _non_recruiter_installed_instances() {
  return array(
      'non_recruiter_quantity' =&gt; array(
          'field_name'  =&gt; 'node_example_quantity',
          'label' =&gt; t('Quantity required'),
          'type'        =&gt; 'text',
          'widget'      =&gt; array(
              'type'    =&gt; 'text_textfield',
          ),
          'display' =&gt; array(
              'non_recruiter_list' =&gt; array(
                  'label' =&gt; 'hidden',
                  'type' =&gt; 'hidden',
              ),
          ),
      ),
  );
}