You are here

function globallink_send_for_translations in GlobalLink Connect for Drupal 7.7

Same name and namespace in other branches
  1. 7.5 globallink_node.inc \globallink_send_for_translations()
  2. 7.6 globallink_node.inc \globallink_send_for_translations()
1 call to globallink_send_for_translations()
globallink_background_send in ./globallink_background_jobs.inc

File

./globallink_node.inc, line 34

Code

function globallink_send_for_translations($nids, $pd4, $submission_name, $due_date, $project_code, $source_locale, $target_locale_arr, $submission_details, $submission_priority, $parents = NULL) {
  module_load_include('inc', 'globallink', 'globallink');
  $globallink_arr = array();
  $node_check = variable_get('globallink_implementation_type', 0);
  $submitter = $submission_details['submitter'];
  foreach ($nids as $nid) {
    list($nid, $vid) = explode('-', $nid, 2);
    $rows = globallink_get_sent_rows_by_nid($nid);
    $target_arr = $target_locale_arr;
    foreach ($rows as $row) {
      if (array_search($row->target_lang_code, $target_locale_arr)) {
        unset($target_arr[$row->target_lang_code]);
        watchdog(GLOBALLINK_MODULE, 'Skipping Node Id - %id for locales %locale', array(
          '%id' => $nid,
          '%locale' => $row->target_lang_code,
        ), WATCHDOG_DEBUG);
      }
    }
    if (empty($target_arr)) {
      continue;
    }
    $node = node_load($nid, $vid);
    if ($node_check == 1) {
      foreach ($target_arr as $key => $target_locale) {
        if (!globallink_translate_node_for_language($node, globallink_get_drupal_locale_code($target_locale))) {
          unset($target_arr[$key]);
        }
      }
    }
    if (empty($target_arr)) {
      watchdog(GLOBALLINK_MODULE, 'No target languages. Skipping nid - %nid', array(
        '%nid' => $nid,
      ), WATCHDOG_WARNING);
      continue;
    }
    $drupal_target_arr = array();
    foreach ($target_arr as $target_locale) {
      array_push($drupal_target_arr, globallink_get_drupal_locale_code($target_locale));
    }
    $tnid = NULL;
    $tvid = NULL;
    $name = '.xml';
    $xml = globallink_get_xml($node, $drupal_target_arr, $tnid, $tvid, $name);
    if (!$xml) {
      watchdog(GLOBALLINK_MODULE, 'Cannot create XML. Skipping nid - %nid', array(
        '%nid' => $nid,
      ), WATCHDOG_WARNING);
      continue;
    }
    $globallink = new GlobalLink();
    $globallink->nid = $node->nid;
    $globallink->vid = $node->vid;
    $globallink->title = $node->title;
    $globallink->type = $node->type;
    $globallink->metadata = GLOBALLINK_ENTITY_TYPE_NODE;
    $globallink->sourceLocale = $source_locale;
    $globallink->targetLocale = $target_arr;
    $globallink->sourceXML = $xml;
    $globallink->sourceFileName = $name;
    $globallink->submissionName = $submission_name;
    $globallink->submissionPriority = $submission_priority;
    $globallink->dueDate = $due_date;
    $globallink->submissionInstructions = $submission_details['instructions'] . "\nSubmitter: " . $submitter;
    $globallink_arr[GLOBALLINK_ENTITY_TYPE_NODE][] = $globallink;
  }
  return $globallink_arr;
}