diff --git a/sinkronisasi.include.php b/sinkronisasi.include.php index e6bf485..519e2ca 100644 --- a/sinkronisasi.include.php +++ b/sinkronisasi.include.php @@ -65,6 +65,21 @@ function sinkronisasi_taxonomy_term_denormalization($term) { return $term; } +function sinkronisasi_delete_taxonomy_term_field_type($term) { + foreach ($term as $field_name => $field_value) { + + $field = field_info_field($field_name); + + + if (!$field) continue; + + if ($field['type'] == "taxonomy_term_reference") { + unset($term->{"$field_name"}); + } + } + return $term; +} + function sinkronisasi_taxonomy_term_normalization($term) { foreach ($term as $field_name => $field_value) { @@ -113,13 +128,14 @@ function sinkronisasi_fix_vid($term) { } function sinkronisasi_import($terms) { - sinkronisasi_import_iterate($terms); + sinkronisasi_import_iterate_insert($terms); + sinkronisasi_import_iterate_update($terms); } -function sinkronisasi_import_iterate($terms) { +function sinkronisasi_import_iterate_insert($terms) { foreach ($terms as $tid => $term) { $term = sinkronisasi_fix_vid($term); - $term = sinkronisasi_taxonomy_term_normalization($term); + $term = sinkronisasi_delete_taxonomy_term_field_type($term); $term = sinkronisasi_set_field_original_tid($term); unset($term->tid); @@ -127,6 +143,21 @@ function sinkronisasi_import_iterate($terms) { } } +function sinkronisasi_import_iterate_update($terms) { + foreach ($terms as $tid => $term) { + $term = sinkronisasi_fix_vid($term); + $term = sinkronisasi_taxonomy_term_normalization($term); + $term = sinkronisasi_set_field_original_tid($term); + + $original_term = sinkronisasi_get_term_by_field_original_tid($tid); + if (!$original_term) { + drush_die("ED0129 Error getting original term!"); + } + + #taxonomy_term_save($term); + } +} + function sinkronisasi_get_term_by_field_original_tid($tid) { $entity_type = "taxonomy_term"; diff --git a/sinkronisasi_import.php b/sinkronisasi_import.php index 0c70150..279e13c 100644 --- a/sinkronisasi_import.php +++ b/sinkronisasi_import.php @@ -6,10 +6,10 @@ if (function_exists('drush_main')) { $machine_name = "jenis_kantor"; $vocabulary = taxonomy_vocabulary_machine_name_load($machine_name); - delete_all_terms_by_vid($vocabulary->vid); $data = file_get_contents("adhisimon/sinkronisasi-drupal/$machine_name.txt"); $terms = unserialize($data); + sinkronisasi_import($terms); }