### Eclipse Workspace Patch 1.0 #P GR-TR Index: sites/all/modules/i18n/i18nsync/i18nsync.module =================================================================== --- sites/all/modules/i18n/i18nsync/i18nsync.module (revision 36) +++ sites/all/modules/i18n/i18nsync/i18nsync.module (working copy) @@ -87,8 +87,29 @@ } break; case 'node_delete_confirm': + + $nid = $form[nid]['#value']; + $tnid = db_result(db_query('SELECT tnid from {node} where nid=%d', $nid)); + if ($tnid != 0) { + drupal_set_message("Tnid: " . $tnid); + + $nodes = array(); + $translatedNodes = db_query('SELECT n.nid, n.tnid, n.title, l.name FROM {node} as n, {languages} as l where n.language = l.language and tnid = %d', $tnid); + while($n = db_fetch_object($translatedNodes)){ + if($n->nid != $nid) + $nodes[$n->nid] = "[".$n->name."] ". $n->title; + } + $form['i18nsync_delete_nodes'] = array ( + '#type' => 'checkboxes', + '#title' => t("Also, delete translated nodes"), + '#options' => $nodes, + '#default_value' => array(0,), + ); + } + // Intercept form submission so we can handle uploads, replace callback $form['#submit'] = array_merge(array('i18nsync_node_delete_submit'), $form['#submit']); + break; case 'node_admin_content': if (!empty($form['operation']) && $form['operation']['#value'] == 'delete') { @@ -108,6 +129,7 @@ if (!empty($form_state['values']['nid'])) { // Single node i18nsync_node_delete_prepare($form_state['values']['nid']); + i18nsync_node_delete_translations($form[i18nsync_delete_nodes]['#value']); } elseif (!empty($form_state['values']['nodes'])) { // Multiple nodes @@ -119,6 +141,12 @@ // Then it will go through normal form submission } +function i18nsync_node_delete_translations($nodes) { + foreach($nodes as $n) { + node_delete($n); + } +} + /** * Prepare node for deletion, work out synchronization issues */