commerce_xls_export taxonomy field 为单个值,并且值包含空格时出现的错误

错误提示:

field_brand: Invalid data value given. Be sure it matches the required data type and format. Value at node(19)->field_brand: .
field_collection: Invalid data value given. Be sure it matches the required data type and format. Value at node(19)->field_collection: .

共性: 他们都是 taxonomy 字段.

在导出的时候很多字段都用到了 toCsv, 这函数又调用 fgetCsv, 默认使用 $enclosure 为"字符.

vim classes/CommerceXlsImportTaxonomyTermReferenceHandler.inc

25   public static function set($value, $wrapper, $field_name) {
26     $vocabulary = NULL;
27     $terms = array();
28
29     $field_info = field_info_field($field_name);
30     $multivalue = ((int) $field_info['cardinality'] !== 1);
31     //$term_names = ($multivalue) ? self::fromCsv($value) : array($value);    //原始代码
32    $term_names = self::fromCsv($value);    //修改后代码

 

fromCsv 函数会对 enclosure 字符" 做处理,而 在单个值的时候 array($value) 无法正确处理 $enclosure字符, 导致验证失败.