function i18nsync_node_translation in Internationalization 5        
                          
                  
                        Same name and namespace in other branches
- 5.3 experimental/i18nsync.module \i18nsync_node_translation()
- 5.2 experimental/i18nsync.module \i18nsync_node_translation()
- 6 i18nsync/i18nsync.module \i18nsync_node_translation()
1 call to i18nsync_node_translation()
  - i18nsync_nodeapi in experimental/i18nsync.module
- Implementation of hook_nodeapi().
File
 
   - experimental/i18nsync.module, line 134
- Internationalization (i18n) package. Synchronization of translations
Code
function i18nsync_node_translation($node, $translation, $fields) {
  
  $translation = node_load($translation->nid);
  foreach ($fields as $field) {
    switch ($field) {
      case 'parent':
      
      case 'iid':
        
        i18nsync_node_translation_attached_node(&$node, &$translation, $field);
        break;
      case 'files':
        
        foreach ($node->files as $fid => $file) {
          if (isset($translation->files[$fid])) {
            $translation->files[$fid]->list = $file->list;
          }
          else {
            
            $translation->files[$fid] = $file;
            
            if (!isset($translation->revision) || !$translation->revision) {
              db_query("INSERT INTO {file_revisions} (fid, vid, list, description) VALUES (%d, %d, %d, '%s')", $file->fid, $translation->vid, $file->list, $file->description);
            }
          }
        }
        
        foreach ($translation->files as $fid => $file) {
          if (!isset($node->files[$fid])) {
            $translation->files[$fid]->remove = TRUE;
          }
        }
        break;
      default:
        
        if (isset($node->{$field})) {
          $translation->{$field} = $node->{$field};
        }
    }
  }
  node_save($translation);
}