2016-05-19 4 views
0

Я открыт для предложений о том, как исправить следующее:Merge многозначное поле затем удалить дубликаты узлов

  • Drupal 7 вебов-сайта, я создал контент с многозначным полем (чекбоксов).
  • Я импортировал данные из файла csv, используя каналы. Более 20 тыс. Записей были импортированы с дублированными строками, за исключением многозначного поля.
  • Импортер фидов не добавляет многозначное поле, вместо этого он перезаписывает значение. Именно по этой причине я решил импортировать все строки, включая дубликаты.
  • Я создал уникальный ключ, используя вычисленное поле, путем конкатенации некоторых текстовых полей, которые были общими для каждой записи. Этот ключ может быть полезен для консолидации узлов позже.

Как я могу перебирать все узлы, находить узлы с одним и тем же ключом, консолидировать значения многозначного поля, а затем удалять дубликаты?

Как создать временный контент, те же поля, чтобы сохранить новый консолидированный узел? Каков самый простой способ решить эту проблему?

Multivalue field (checkboxes) 
A 
B 
C 
etc 

Содержание:

Key, NID, Title, Other fields, Multivalue field 
key1, 1, title1, others1, A 
key1, 2, title1, others1, B 
key2, 3, title2, others2, A 
key1, 4, title1, others1, C 

ожидаемых результаты, консолидировать многозначное текстовое поле, чтобы иметь единый узел: NID может быть сгенерирован в процессе создания ТЕмпа узла.

NID, Title, Other fields, Multivalue field (checkboxes checked) 
x, title1, others1, "A, B, C" 
x, title2, others2, A 

ответ

1

я, наконец, понял, как удалить дубликаты, при импорте данных с кормами, а также с использованием правил для консолидации поля многозначного. Следующее видео было очень полезно, чтобы добраться до окончательного решения:

https://vimeo.com/28659739

решения (на основе пользовательских потребностей):

  1. создать ключ для каждой записи в файле CSV (у меня было много дубликатов и ключей нет, данные не были объединены).
  2. создать временное поле (переключатели, одно значение), поле было полем Ссылочный термин.
  3. import csv file, utf8 encoded, используя ключ как уникальное значение (модуль field_validation).

Настройки для процессора узла

  • Вставьте новые узлы
  • Обновление существующих узлов
  • Пропустить несуществующие узлы

Импортер обновляемые узлы с тем же ключом, что исключает дубликаты и консолидация записей с одинаковой информацией.

Правило было выполнено после обновления узла для добавления значений в поле многозначного значения.

**Events** 
After updating existing content of type Course 
Before saving content of type Course 

**Conditions** 
Data comparison 
Selected data: node:field-temp 
value: equals 
the value to compare 

**Actions** 
Fetch entity by id 
Value: taxonomy term 
value: term id of the term you want to add to the multivalue field 
Variable label: term name here 
Variable name: custom_var_name 

Add an item to a list 
Selected list: node:field-multivaluefield 
Data selector: custom_var_name 
Enforce uniqueness: True. 

Save entity 
node:field-multivaluefield:0 
Смежные вопросы