Commit 3e4a3ce355b151a3c741a1296474cdbf75aa5e6e

Authored by Adhidarma Hadiwinoto
1 parent e92b25d6e0
Exists in master

insert update

Showing 2 changed files with 35 additions and 4 deletions Side-by-side Diff

sinkronisasi.include.php
... ... @@ -65,6 +65,21 @@ function sinkronisasi_taxonomy_term_denormalization($term) {
65 65 return $term;
66 66 }
67 67  
  68 +function sinkronisasi_delete_taxonomy_term_field_type($term) {
  69 + foreach ($term as $field_name => $field_value) {
  70 +
  71 + $field = field_info_field($field_name);
  72 +
  73 +
  74 + if (!$field) continue;
  75 +
  76 + if ($field['type'] == "taxonomy_term_reference") {
  77 + unset($term->{"$field_name"});
  78 + }
  79 + }
  80 + return $term;
  81 +}
  82 +
68 83 function sinkronisasi_taxonomy_term_normalization($term) {
69 84 foreach ($term as $field_name => $field_value) {
70 85  
... ... @@ -113,13 +128,14 @@ function sinkronisasi_fix_vid($term) {
113 128 }
114 129  
115 130 function sinkronisasi_import($terms) {
116   - sinkronisasi_import_iterate($terms);
  131 + sinkronisasi_import_iterate_insert($terms);
  132 + sinkronisasi_import_iterate_update($terms);
117 133 }
118 134  
119   -function sinkronisasi_import_iterate($terms) {
  135 +function sinkronisasi_import_iterate_insert($terms) {
120 136 foreach ($terms as $tid => $term) {
121 137 $term = sinkronisasi_fix_vid($term);
122   - $term = sinkronisasi_taxonomy_term_normalization($term);
  138 + $term = sinkronisasi_delete_taxonomy_term_field_type($term);
123 139 $term = sinkronisasi_set_field_original_tid($term);
124 140  
125 141 unset($term->tid);
... ... @@ -127,6 +143,21 @@ function sinkronisasi_import_iterate($terms) {
127 143 }
128 144 }
129 145  
  146 +function sinkronisasi_import_iterate_update($terms) {
  147 + foreach ($terms as $tid => $term) {
  148 + $term = sinkronisasi_fix_vid($term);
  149 + $term = sinkronisasi_taxonomy_term_normalization($term);
  150 + $term = sinkronisasi_set_field_original_tid($term);
  151 +
  152 + $original_term = sinkronisasi_get_term_by_field_original_tid($tid);
  153 + if (!$original_term) {
  154 + drush_die("ED0129 Error getting original term!");
  155 + }
  156 +
  157 + #taxonomy_term_save($term);
  158 + }
  159 +}
  160 +
130 161 function sinkronisasi_get_term_by_field_original_tid($tid) {
131 162 $entity_type = "taxonomy_term";
132 163  
sinkronisasi_import.php
... ... @@ -6,10 +6,10 @@ if (function_exists('drush_main')) {
6 6 $machine_name = "jenis_kantor";
7 7  
8 8 $vocabulary = taxonomy_vocabulary_machine_name_load($machine_name);
9   -
10 9 delete_all_terms_by_vid($vocabulary->vid);
11 10  
12 11 $data = file_get_contents("adhisimon/sinkronisasi-drupal/$machine_name.txt");
13 12 $terms = unserialize($data);
  13 +
14 14 sinkronisasi_import($terms);
15 15 }