Index: viewfield.module =================================================================== --- viewfield.module (revision 39) +++ viewfield.module (working copy) @@ -56,13 +56,16 @@ function viewfield_field_settings($op, $ $form['super_default_widget']['#tree'] = TRUE; unset($form['super_default_widget']['#weight']); return $form; + case 'validate': if ($field['force_default'] && $field['multiple']) { form_set_error('multiple', t('Multiple views are not supported if force default is enabled.')); } break; + case 'save': return array('allowed_views', 'super_default', 'token_enabled', 'super_default_widget'); + case 'database columns': return array( 'vname' => array('type' => 'varchar', 'not null' => FALSE, 'length' => 32), @@ -86,6 +89,7 @@ function viewfield_field($op, &$node, $f } } break; + case 'sanitize': foreach ($items as $delta => $item) { $item = empty($item['vname']) || $field['widget']['force_default'] ? $field['super_default_widget'] : $item; @@ -265,7 +269,7 @@ function viewfield_select_process($eleme /** * Prepare a list of views for selection. */ -function _viewfield_potential_references($field_settings = TRUE, $field = array(), $delta = 0) { +function _viewfield_potential_references($optional = TRUE, $field = array(), $delta = 0) { $options = array(); $field['allowed_views'] = isset($field['allowed_views']) ? array_filter($field['allowed_views']) : array(); $field['allowed_views'] = empty($field['allowed_views']) ? array_keys(views_get_all_views()) : $field['allowed_views']; @@ -279,7 +283,7 @@ function _viewfield_potential_references // views by adding an empty option, otherwise at each submit the user would // add a new view. If the field is required AND multiple the first widget has // no empty choice. - if (!$field_settings && (!$field['required'] || ($field['multiple'] && $delta > 0))) { + if ($optional && (!$field['required'] || ($field['multiple'] && $delta > 0))) { array_unshift($options, '<'. t('none') .'>'); } return $options; Index: includes/viewfield.views.inc =================================================================== --- includes/viewfield.views.inc (revision 39) +++ includes/viewfield.views.inc (working copy) @@ -13,8 +13,8 @@ */ function viewfield_views_query_alter(&$view, &$query) { global $_viewfield_stack; - if ((!empty($_viewfield_stack)) && (in_array('node', $query->table_queue))) { - $placeholders = array_fill(0, count($_viewfield_stack), '%d'); - $query->add_where(0, 'node.nid NOT IN ('. implode(',', $placeholders) .')', $_viewfield_stack); + if (!empty($_viewfield_stack) && in_array('node', $query->table_queue)) { + $placeholders = db_placeholders($_viewfield_stack); + $query->add_where(0, "node.nid NOT IN ($placeholders)", $_viewfield_stack); } }