diff --git a/tode.module b/tode.module index 5ff7d1c4..f731dc94 100644 --- a/tode.module +++ b/tode.module @@ -60,7 +60,7 @@ function tode_field_widget_info() { return array( 'tode' => array( - 'label' => t('Create update/change'), + 'label' => t('Tode (create then update one unique term)'), 'field types' => array('taxonomy_term_reference'), 'behaviors' => array( 'multiple values' => FIELD_BEHAVIOR_DEFAULT, @@ -159,7 +159,10 @@ function tode_field_widget_settings_form($field, $instance){ // } function _tode_widget_settings_maxlength_validate($element, &$form_state) { - $value = $form_state['values']['maxlength']; + // dsm('_tode_widget_settings_maxlength_validate'); + // dsm($form_state, '$form_state'); + $widget = $form_state['values']['instance']['widget']; + $value = $widget['settings']['tode']['maxlength']; if (!is_numeric($value) || intval($value) != $value || $value <= 0) { form_error($element, t('"Maximum length" must be a positive integer.')); } @@ -196,9 +199,12 @@ function tode_element_info() { * Implementation of hook_field_widget_form(). */ function tode_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) { - dsm('tode_field_widget_form'); - dsm($items, 'items'); - dsm($element, '$element'); + // dsm('tode_field_widget_form'); + // dsm($items, 'items'); + // dsm($element, '$element'); + // dsm($field, '$field'); + // dsm($instance, '$instance'); + /* $element['#entity_type'] $element['#bundle'] @@ -212,30 +218,13 @@ function tode_field_widget_form(&$form, &$form_state, $field, $instance, $langco $element['#language'] */ - # thats the original D6 $element - // $element = array( - // '#type' => 'tode', - // '#default_value' => isset($items) ? $items : NULL, - // '#vid' => $field['vid'], - // ); - - # example - // // use += to avoid overwriting incoming $element - // $element['value'] += array( - // // Fill in $element. - // ); - - // $tags = array(); - // foreach ($items as $item) { - // $tags[$item['tid']] = isset($item['taxonomy_term']) ? $item['taxonomy_term'] : taxonomy_term_load($item['tid']); - // } - $term_name = ''; $term_tid = 0; if(count($items)){ - $term = isset($items[0]['taxonomy_term']) ? $items[0]['taxonomy_term'] : taxonomy_term_load($items[0]['tid']); - $term_name = $term->term_name; + $term = taxonomy_term_load($items[0]['tid']); + dsm($term, '$term'); + $term_name = $term->name; $term_tid = $term->tid; } @@ -250,79 +239,13 @@ function tode_field_widget_form(&$form, &$form_state, $field, $instance, $langco ); # add the term edit form - // if(isset($value)) - // _tode_add_term_form($element, $term, $widget['show_term_form']); + // if($term_tid) + // _tode_add_term_form($element, $term, $instance['widget']['settings']['show_term_form']); return $element; } -/** - * Process an individual element. - * - * Build the form element. When creating a form using FAPI #process, - * note that $element['#value'] is already set. - * - */ -# OLD NOT USED ANY MORE, TRANSPOSE THIS CODE (ALL OR PART) ON hook_field_widget_form(); -function tode_element_process($element, $edit, $form_state, $form) { - // dsm('tode widget process'); - // dsm($form, 'form'); - // dsm($element, 'element'); - - $field_name = $element['#field_name']; - $field = $form['#field_info'][$field_name]; - $field_key = $element['#columns'][0]; - // dsm($field); - $widget = $field['widget']; - - $value = NULL; - if (count($element['#default_value'])) { - $term = taxonomy_get_term($element['#default_value'][0][$field_key]); - // dsm($term); - $value = $term->name; - } - - # converting the tid to term name on visible value oh the text field, we re-convert terma name to tid on the validat function - $element['#default_value'][0][$field_key] = $value; - $element['#value'][$field_key] = $value; - - # memorize the tid for the validate function - if($value) - $element['tode_tid'] = array('#type' => 'hidden', '#value' => $term->tid,'#delta' => $element['#delta'],); - - $element[$field_key] = array( - '#type' => 'textfield', - '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : '', - '#title' => $element['#title'], - '#required' => $element['#required'], - '#description' => $element['#description'], - '#field_name' => $element['#field_name'], - '#type_name' => $element['#type_name'], - '#delta' => $element['#delta'], - '#columns' => $element['#columns'], - '#maxlength' => !empty($field['widget']['maxlength']) ? $field['widget']['maxlength'] : 255, - ); - - # add the term edit form - if(isset($value)) - _tode_add_term_form($element, $term, $widget['show_term_form']); - - # add validation for the fieldform to retrive tid instead of term name (content taxonomy module), As i know we can't add a submit callback to the form from the widget - if (empty($element[$field_key]['#element_validate'])) - $element[$field_key]['#element_validate'] = array(); - // - array_unshift($element[$field_key]['#element_validate'], 'tode_validate'); - # replace validate with submit added on form alter - - // dsm($form_state, 'form_state'); - // dsm($element, 'element'); - - return $element; -} - - - /** * _tode_add_term_form($term) * @@ -330,42 +253,42 @@ function tode_element_process($element, $edit, $form_state, $form) { function _tode_add_term_form(&$element, $term, $show){ module_load_include('inc', 'taxonomy', 'taxonomy.admin'); - $term_form = _tode_term_form($term->tid); - // dsm($term_form, 'term_form'); + $term_form = _tode_term_form($term); + dsm($term_form, 'term_form'); if($term_form){ - - $term_form['identification']['#prefix'] = '
'; - $term_form['advanced']['synonyms']['#prefix'] = ''; - $term_form['advanced']['weight']['#prefix'] = ''; - $term_form['advanced']['parent']['#prefix'] = ''; - $term_form['advanced']['relations']['#prefix'] = ''; - - # change appearence of adavnced fiedset to show both fiedlset inline - $term_form['advanced']['#collapsible'] = FALSE; - $term_form['fields']['#collapsible'] = FALSE; - - _tode_trim_options($term_form, 'advanced'); - $term_form['advanced']['#attributes'] = array('class'=>'tcu-advanced-options'); - $term_form['fields']['#attributes'] = array('class'=>'tcu-term-fields'); - - foreach($term_form['fields'] as $field_name => $field){ - if($field['#type'] == 'textfield') - $field['#size'] = 30; - - $term_form['fields'][$field_name] = $field; - } - - unset($term_form['submit']); - unset($term_form['delete']); - - #unset vid info 'cause is in conflict with the node's vid field - // unset($term_form['vid']); + // + // $term_form['identification']['#prefix'] = ''; + // $term_form['advanced']['synonyms']['#prefix'] = ''; + // $term_form['advanced']['weight']['#prefix'] = ''; + // $term_form['advanced']['parent']['#prefix'] = ''; + // $term_form['advanced']['relations']['#prefix'] = ''; + // + // # change appearence of adavnced fiedset to show both fiedlset inline + // $term_form['advanced']['#collapsible'] = FALSE; + // $term_form['fields']['#collapsible'] = FALSE; + // + // _tode_trim_options($term_form, 'advanced'); + // $term_form['advanced']['#attributes'] = array('class'=>'tcu-advanced-options'); + // $term_form['fields']['#attributes'] = array('class'=>'tcu-term-fields'); + // + // foreach($term_form['fields'] as $field_name => $field){ + // if($field['#type'] == 'textfield') + // $field['#size'] = 30; + // + // $term_form['fields'][$field_name] = $field; + // } + // + // unset($term_form['submit']); + // unset($term_form['delete']); + // + // #unset vid info 'cause is in conflict with the node's vid field + // // unset($term_form['vid']); $element['term_form'] = array( '#type' => 'fieldset', @@ -377,10 +300,10 @@ function _tode_add_term_form(&$element, $term, $show){ '#group'=>'additional_settings', ); - if(!$show){ - $element['term_form']['#prefix'] = ''; - } + // if(!$show){ + // $element['term_form']['#prefix'] = ''; + // } $term_form = _tode_prefix_form($term_form, 'tode_termform_'.$element['#field_name'].'_'); @@ -391,7 +314,7 @@ function _tode_add_term_form(&$element, $term, $show){ // $element['#prefix'] = '