Commit 3e4a3ce355b151a3c741a1296474cdbf75aa5e6e
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 | } |