? cck2_update.diff Index: emfield.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/emfield/emfield.module,v retrieving revision 1.12.4.9 diff -u -r1.12.4.9 emfield.module --- emfield.module 30 May 2008 14:20:06 -0000 1.12.4.9 +++ emfield.module 15 Jun 2008 09:08:53 -0000 @@ -93,13 +93,13 @@ function emfield_field_columns($field) { $columns = array( // poorly named. but this contains the original URL or embed code pre-parsing, as entered by the user/editor. - 'embed' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE, 'unsigned' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), + 'embed' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), // this contains the code used by the provider to identify the media - 'value' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'unsigned' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), + 'value' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), // this is the actual provider used; matches up with the specific provider.inc file - 'provider' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'unsigned' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), + 'provider' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'not null' => FALSE, 'sortable' => TRUE), // an array for any extra data required by this media, such as unique thumbnail requirements or rss feed data - 'data' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE, 'unsigned' => TRUE, 'not null' => FALSE, 'sortable' => FALSE), + 'data' => array('type' => 'text', 'size' => 'big', 'not null' => TRUE, 'not null' => FALSE, 'sortable' => FALSE), ); // allow other modules to add new columns // TODO: couldn't we just use module_invoke_all here? also make sure those modules do their magic on enable/disable @@ -363,144 +363,61 @@ } } -function emfield_emfield_widget($op, &$node, $field, &$node_field, $module) { -// $module = $field['widget']['helper_module']; - switch ($op) { - case 'prepare form values': - // Don't save empty fields except the first value - foreach ($node_field as $delta => $item) { - if ($item['value'] == '' && $delta > 0) { - unset($node_field[$delta]); - } - }//print 'nodefield:' ; print_r($node_field); - foreach (module_implements('emfield_widget_extra') as $module) { - $args = array($op, &$node, $field, &$node_field, $module); - call_user_func_array($module .'_emfield_widget_extra', $args); +function emfield_emfield_widget(&$form, &$form_state, $field, $items, $delta = 0, $module) { //($op, &$node, $field, &$node_field, $module) { + $tree = array('#tree' => TRUE); + $textfield = 'embed'; + $providers = emfield_allowed_providers($field, $module); + $urls = array(); + $additional_form_elements = array(); + foreach ($providers as $provider) { + // don't check providers not allowed + if (variable_get('emfield_allow_'. $module .'_'. $provider->name, TRUE)) { + $info = emfield_include_invoke($module, $provider->name, 'info'); + $urls[] = l($info['name'], $info['url'], array('target' => '_blank')); + $additional_element = emfield_include_invoke($module, $provider->name, 'form'); + if ($additional_element) { + $additional_form_elements[$provider->name] = $additional_element; } - break; - case 'form': - $form = array(); + } + } + $textfield_title = t($field['widget']['label']); + if (!(empty($field['widget']['description']))) { + $textfield_description = $field['widget']['description']; + } + else { + $textfield_description = t('Enter the URL or Embed Code here. The embedded third party content will be parsed and displayed appropriately from this.'); + } + $textfield_description .= '
'. t('The following services are provided: !urls', array('!urls' => implode(', ', $urls))); + $value = isset($items[$delta][$textfield]) ? $items[$delta][$textfield] : ''; + $tree[$textfield] = array( + '#type' => 'textfield', + '#title' => $textfield_title, //t($field['widget']['label']), + '#description' => $textfield_description, + '#default_value' => $value, + '#required' => $field['required'], + '#maxlength' => 2048, + ); - $form[$field['field_name']] = array('#tree' => TRUE); - $textfield = 'embed'; - $providers = emfield_allowed_providers($field, $module); - $urls = array(); - $additional_form_elements = array(); - foreach ($providers as $provider) { - // don't check providers not allowed - if (variable_get('emfield_allow_'. $module .'_'. $provider->name, TRUE)) { - $info = emfield_include_invoke($module, $provider->name, 'info'); - $urls[] = l($info['name'], $info['url'], array('target' => '_blank')); - $additional_element = emfield_include_invoke($module, $provider->name, 'form'); - if ($additional_element) { - $additional_form_elements[$provider->name] = $additional_element; - } - } - } - $textfield_title = t($field['widget']['label']); - if (!(empty($field['widget']['description']))) { - $textfield_description = $field['widget']['description']; - } - else { - $textfield_description = t('Enter the URL or Embed Code here. The embedded third party content will be parsed and displayed appropriately from this.'); - } - $textfield_description .= '
'. t('The following services are provided: !urls', array('!urls' => implode(', ', $urls))); - - if ($field['multiple']) { - $form[$field['field_name']]['#type'] = 'fieldset'; - $form[$field['field_name']]['#title'] = t($field['widget']['label']); - $delta = 0; - foreach ($node_field as $data) { - if (isset($data[$textfield])) { - $form[$field['field_name']][$delta][$textfield] = array( - '#type' => 'textfield', - '#title' => $textfield_title, - '#description' => $textfield_description, - '#default_value' => $data[$textfield], - '#required' => ($delta == 0) ? $field['required'] : FALSE, - '#maxlength' => 2048, - ); - if (!empty($additional_form_elements)) { - foreach ($additional_form_elements as $key => $element) { - $form[$field['field_name']][$delta][$key] = $element; - } - } - $form[$field['field_name']][$delta]['value'] = array( - '#type' => 'value', - '#value' => $data['value'], - ); - if ($data['value']) { - $info = emfield_include_invoke($module, $data['provider'], 'info'); - $form[$field['field_name']][$delta]['value_markup'] = array( - '#type' => 'item', - '#value' => t('(@provider ID: !value)', array('@provider' => $info['name'], '!value' => l($data['value'], emfield_include_invoke($module, $info['provider'], 'embedded_link', $data['value'], $data['data']), array('target' => '_blank')))), - ); - } - foreach (module_implements('emfield_widget_extra') as $module) { - $form[$field['field_name']][$delta][$module] = module_invoke($module, 'emfield_widget_extra', 'form', $node, $field, $data); - } - $delta++; - } - } - foreach (range($delta, $delta + 2) as $delta) { - $form[$field['field_name']][$delta][$textfield] = array( - '#type' => 'textfield', - '#title' => $textfield_title, - '#description' => $textfield_description, - '#default_value' => '', - '#required' => ($delta == 0) ? $field['required'] : FALSE, - '#maxlength' => 2048, - ); - if (!empty($additional_form_elements)) { - foreach ($additional_form_elements as $key => $element) { - $form[$field['field_name']][$delta][$key] = $element; - } - } - $form[$field['field_name']][$delta]['value'] = array( - '#type' => 'value', - '#title' => '', - ); - foreach (module_implements('emfield_widget_extra') as $module) { - $form[$field['field_name']][$delta][$module] = module_invoke($module, 'emfield_widget_extra', 'form', $node, $field, $data); - } - } - } - else { - $form[$field['field_name']][0][$textfield] = array( - '#type' => 'textfield', - '#title' => $textfield_title, //t($field['widget']['label']), - '#description' => $textfield_description, - '#default_value' => isset($node_field[0][$textfield]) ? $node_field[0][$textfield] : '', - '#required' => $field['required'], - '#maxlength' => 2048, - ); - if ($textfield == 'embed') { - $value = isset($node_field[0]['value']) ? $node_field[0]['value'] : ''; - $form[$field['field_name']][0]['value'] = array( - '#type' => 'value', - '#value' => $value, - ); - if (!empty($additional_form_elements)) { - foreach ($additional_form_elements as $key => $element) { - $form[$field['field_name']][0][$key] = $element; - } - } - if ($value) { - $info = emfield_include_invoke($module, $node_field[0]['provider'], 'info'); - $form[$field['field_name']][0]['value_markup'] = array( - '#type' => 'item', - '#value' => t('(@provider ID: !value)', array('@provider' => $info['provider'], '!value' => l($value, emfield_include_invoke($module, $info['provider'], 'embedded_link', $value, $node_field[0]['data']), array('target' => '_blank')))), - ); - } - foreach (module_implements('emfield_widget_extra') as $module) { - $form[$field['field_name']][$delta][$module] = module_invoke($module, 'emfield_widget_extra', 'form', $node, $field, $node_field[0]); - } - } - } - return $form; - default: - break; + $tree['value'] = array( + '#type' => 'value', + '#value' => $value, + ); + if (!empty($additional_form_elements)) { + foreach ($additional_form_elements as $key => $element) { + $tree[$key] = $element; + } + } + if ($value) { + $info = emfield_include_invoke($module, $items[$delta]['provider'], 'info'); + $tree['value_markup'] = array( + '#type' => 'item', + '#value' => t('(@provider ID: !value)', array('@provider' => $info['provider'], '!value' => l($value, emfield_include_invoke($module, $info['provider'], 'embedded_link', $value, $items[$delta]['data']), array('target' => '_blank')))), + ); + } + foreach (module_implements('emfield_widget_extra') as $module_extra) { + $tree[$module_extra] = module_invoke($module_extra, 'emfield_widget_extra', 'form', $form, $field, $items[$delta]); } + return $tree; } /** Index: contrib/emaudio/emaudio.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/emfield/contrib/emaudio/emaudio.module,v retrieving revision 1.1.4.10 diff -u -r1.1.4.10 emaudio.module --- contrib/emaudio/emaudio.module 4 Jun 2008 12:08:03 -0000 1.1.4.10 +++ contrib/emaudio/emaudio.module 15 Jun 2008 09:08:53 -0000 @@ -279,7 +279,7 @@ break; case 'save': - if ($widget['widget']['type'] == 'emaudio_textfields') { + if ($widget['widget_type'] == 'emaudio_textfields') { $columns = array('audio_width', 'audio_height', 'audio_autoplay', 'preview_width', 'preview_height', 'preview_autoplay', 'thumbnail_width', 'thumbnail_height', 'thumbnail_default_path', ); $columns = array_merge($columns, module_invoke('emfield', 'emfield_widget_settings', 'save', $widget, 'emaudio')); return $columns; @@ -290,9 +290,9 @@ /** Implementation of hook_widget **/ -function emaudio_widget($op, &$node, $field, &$node_field) { +function emaudio_widget(&$form, &$form_state, $field, $items, $delta = 0) { if (module_hook('emfield', 'emfield_widget')) { - return emfield_emfield_widget($op, $node, $field, $node_field, 'emaudio'); + return emfield_emfield_widget($form, $form_state, $field, $items, $delta, 'emaudio'); } } Index: contrib/image_ncck/image_ncck.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/emfield/contrib/image_ncck/image_ncck.module,v retrieving revision 1.4.4.9 diff -u -r1.4.4.9 image_ncck.module --- contrib/image_ncck/image_ncck.module 30 May 2008 14:34:50 -0000 1.4.4.9 +++ contrib/image_ncck/image_ncck.module 15 Jun 2008 09:08:53 -0000 @@ -286,18 +286,19 @@ break; case 'save': - if ($widget['widget']['type'] == 'image_ncck_textfields') { + if ($widget['widget_type'] == 'image_ncck_textfields') { $columns = array('full_width', 'full_height', 'full_link', 'preview_width', 'preview_height', 'preview_link', 'thumbnail_width', 'thumbnail_height', 'thumbnail_link', ); $columns = array_merge($columns, module_invoke('emfield', 'emfield_widget_settings', 'save', $widget, 'image_ncck')); + return $columns; } break; } } -function image_ncck_widget($op, &$node, $field, &$node_field) { +function image_ncck_widget(&$form, &$form_state, $field, $items, $delta = 0) { if (module_hook('emfield', 'emfield_widget')) { - return emfield_emfield_widget($op, $node, $field, $node_field, 'image_ncck'); + return emfield_emfield_widget($form, $form_state, $field, $items, $delta, 'image_ncck'); } } Index: contrib/video_cck/video_cck.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/emfield/contrib/video_cck/video_cck.module,v retrieving revision 1.5.4.11 diff -u -r1.5.4.11 video_cck.module --- contrib/video_cck/video_cck.module 4 Jun 2008 12:08:04 -0000 1.5.4.11 +++ contrib/video_cck/video_cck.module 15 Jun 2008 09:08:53 -0000 @@ -281,7 +281,7 @@ break; case 'save': - if ($widget['widget']['type'] == 'video_cck_textfields') { + if ($widget['widget_type'] == 'video_cck_textfields') { $columns = array('video_width', 'video_height', 'video_autoplay', 'preview_width', 'preview_height', 'preview_autoplay', 'thumbnail_width', 'thumbnail_height', 'thumbnail_default_path', ); $columns = array_merge($columns, module_invoke('emfield', 'emfield_widget_settings', 'save', $widget, 'video_cck')); return $columns; @@ -292,9 +292,9 @@ /** Implementation of hook_widget **/ -function video_cck_widget($op, &$node, $field, &$node_field) { +function video_cck_widget(&$form, &$form_state, $field, $items, $delta = 0) { if (module_hook('emfield', 'emfield_widget')) { - return emfield_emfield_widget($op, $node, $field, $node_field, 'video_cck'); + return emfield_emfield_widget($form, $form_state, $field, $items, $delta, 'video_cck'); } }