You are here

function lingotek_entity_translation_save_status in Lingotek Translation 7.4

Same name and namespace in other branches
  1. 7.7 lingotek.util.inc \lingotek_entity_translation_save_status()
  2. 7.5 lingotek.util.inc \lingotek_entity_translation_save_status()
  3. 7.6 lingotek.util.inc \lingotek_entity_translation_save_status()
3 calls to lingotek_entity_translation_save_status()
lingotek_download_document in ./lingotek.api.inc
lingotek_publish_form_submit in ./lingotek.page.inc
Submit handler for the lingotek_publish_form form. Update the entity_translation module publishing fields
lingotek_update_7408 in ./lingotek.install
Creates an upgrade path for existing translated content to be inserted into entity_translation module table if necessary

File

./lingotek.util.inc, line 1306
Utility functions.

Code

function lingotek_entity_translation_save_status($node, $language_codes, $status_request = NULL) {
  $handler = entity_translation_get_handler('node', $node);
  $languages_updated = array();
  $updates = 0;
  foreach ($language_codes as $langcode) {
    if ($langcode !== 0) {

      // set node (source or target as specified) flag (in the entity_translation table) as published or unpublished
      $et_params = array(
        'language' => $langcode,
      );
      if ($langcode != $node->language) {
        $et_params['source'] = $node->language;
      }
      if ($status_request !== NULL) {
        $et_params['status'] = $status_request;
      }
      else {

        // check for the current status, if any, and set to published as a default
        if (isset($node->translations->data[$node->language]) && !isset($node->translations->data[$langcode])) {
          $et_params['status'] = $node->translations->data[$node->language]['status'];
        }
        else {
          $et_params['status'] = 1;

          // published
        }
      }
      $handler
        ->setTranslation($et_params);
      $languages_updated[$langcode] = lingotek_language_name($langcode);
      $updates++;
    }
  }
  $handler
    ->saveTranslations();
  return array(
    $languages_updated,
    $updates,
  );
}