How to customize the input phase of a custom field i'v created a custom field using this tutorial (http://www.slideshare.net/zugec/fields-in-core-how-to-create-a-custom-field). everything went ok and i successfully created a custom field which consists of three different text-inputs. 

Now i'd like to customize the way the user inputs this field and can add another field: instead of the standard drupal visualization, i'd like to implement something like when you add your language proficency in the euroCV.eu, where each 'field' is a row and the custom inputs are cell, and when you add another field, you add another row.

i think i have to modify this hook

function instruction_field_widget_form(&amp;$form, &amp;$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $base = $element;
  if ($instance['widget']['type'] == 'instruction_instruction_form') {
    $widget = $instance['widget'];
    $settings = $widget['settings'];

    $element['titolo_studio'] = array(
      '#type' =&gt; 'textfield',
      '#title' =&gt; t('Titolo di studio'),
      '#default_value' =&gt; isset($items[$delta]['titolo_studio']) ? $items[$delta]['titolo_studio'] : NULL,
    );
    $element['descrizione'] = array(
      '#type' =&gt; 'textfield',
      '#title' =&gt; t('Descrizione'),
      '#default_value' =&gt; isset($items[$delta]['descrizione']) ? $items[$delta]['descrizione'] : NULL,
    );
    $element['votazione'] = array(
      '#type' =&gt; 'textfield',
      '#title' =&gt; t('Votazione'),
      '#default_value' =&gt; isset($items[$delta]['votazione']) ? $items[$delta]['votazione'] : NULL,

    );

  }
  return $element;
}


but i'm not sure. Is there any tutorial on this?
If you are building a curriculum vitae type website you might want to see the eRecruiter distribution profile.

What is does is makes separate groups of fields as entities with the Field Collection module. Keep in mind that taxonomy vocabularies are fieldable in D7 so they can be attached to an entity such as a field collection. The made a module called Term Level that gives an option to add superlatives to the taxonomy terms that are just an entity in a field collection that are added to a node as a field.

It's just another way to look at the same problem.