function content_views_convert in Content Construction Kit (CCK) 6.2
Same name and namespace in other branches
- 6.3 includes/views/content.views_convert.inc \content_views_convert()
- 6 includes/content.views_convert.inc \content_views_convert()
Implementation of hook_views_convert().
Intervene to convert field values from the Views 1 format to the Views 2 format. Intervene only if $view->add_item() won't produce the right results, usually needed to set field options or values.
File
- includes/
views/ content.views_convert.inc, line 15 - Field conversion for fields handled by this module.
Code
function content_views_convert($display, $type, &$view, $views_field) {
static $views_fields;
if (empty($views_fields)) {
$views_fields = array();
$types = content_types();
foreach ($types as $ctype) {
foreach ($ctype['fields'] as $field) {
$module = $field['module'];
$result = (array) module_invoke($module, 'field_settings', 'views data', $field);
drupal_alter('field_settings', $result, 'views data', $field);
if (empty($result)) {
// The views field name had the column name appended,
// like field_name_value or field_username_uid.
$column = array_shift(array_keys($field['columns']));
$views_fields[$field['field_name'] . '_' . $column] = $field;
}
}
}
}
// Is this a field that CCK should handle? If not, return.
if (!in_array($views_field['field'], array_keys($views_fields))) {
return;
}
// Now update values, options, etc. to those selected in the imported view.
switch ($type) {
case 'field':
$view->display[$display]->display_options['fields'][$views_field['field']]['format'] = $views_field['options'];
if ($views_field['handler'] == 'content_views_field_handler_group') {
$view->display[$display]->display_options['fields'][$views_field['field']]['multiple']['group'] = 1;
}
else {
$view->display[$display]->display_options['fields'][$views_field['field']]['multiple']['group'] = 0;
}
return;
case 'filter':
// TODO
return;
case 'exposed_filter':
// TODO
return;
case 'argument':
// TODO
return;
case 'sort':
// TODO
break;
}
return;
}