Rated user interests I would like to create rated inteterests for each user.
Until now what I have is a taxonomy term vocabulary defined and a field in the user account attached to this vocabulary.
Until here what a user can do is to check or not each term of the vocabulary, using the widget options_list.
What I would like to do is to let the user select the level (0-10) of preference for each term.

I've tried to create a custom field with two columns, tid and value, then linking each tid with taxonomy term in hook_field_widget_form, but no luck as I'm not an expert in fields, so I'm confused about how to implement:

/**
 * Implements hook_field_widget_form().
 */
function taxonomy_value_field_widget_form(&amp;$form, &amp;$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $tids = isset($items[$delta]['tid']) ? $items[$delta]['tid'] : array();
  $values = isset($items[$delta]['value']) ? $items[$delta]['value'] : array();
  $element += array(
    '#delta' =&gt; $delta,
  );

  switch ($instance['widget']['type']) {

    case 'taxonomy_value_widget':
      if ($vocabulary = taxonomy_vocabulary_machine_name_load('tags')) {
        if ($terms = taxonomy_get_tree($vocabulary-&gt;vid)) {
          foreach ($terms as $term) {
            if ($term-&gt;depth == 0) {
              $element[$term-&gt;tid] = array(
                '#markup'  =&gt; '&lt;/br&gt;&lt;strong&gt;' . $term-&gt;name . '&lt;/strong&gt;',
              );
            } else {
              $element[$term-&gt;tid]['term'] = array(
                '#markup'  =&gt; '&lt;/br&gt;' . $term-&gt;name,
              );

              $element[$term-&gt;tid]['tid'] = array(
                '#type'          =&gt; 'value',
                '#value'         =&gt; $term-&gt;tid,
              );

              $element[$term-&gt;tid]['value'] = array(
                '#type'          =&gt; 'textfield',
                '#value'         =&gt; in_array($term-&gt;tid, $values) ? $values[$term-&gt;tid] : 5,
              );

            }
          }
        }
      }

      break;
  }

  return $element;
}
what not using Field Collection ?