You are here

function translation_overview_node_form in Translation Overview 6.2

Overview page for a node's translations.

Based on the translation.module's translation_node_overview().

Parameters

$node: Node object.

1 string reference to 'translation_overview_node_form'
translation_overview_node_page in ./translation_overview.pages.inc

File

./translation_overview.pages.inc, line 17

Code

function translation_overview_node_form(&$form_state, $node) {
  if ($node->tnid) {

    // Already part of a set, grab that set.
    $tnid = $node->tnid;
    $translations = translation_node_get_translations($node->tnid);
  }
  else {

    // We have no translation source nid, this could be a new set, emulate that.
    $tnid = $node->nid;
    $translations = array(
      $node->language => $node,
    );
  }
  $priorities = translation_overview_get_node_priority($node);
  $form['languages']['#tree'] = TRUE;
  foreach (language_list() as $lang_code => $language) {

    // Skip over any disabled languages.
    if (!$language->enabled) {
      continue;
    }
    $form['languages'][$lang_code]['priority'] = array(
      '#type' => 'radios',
      '#default_value' => $priorities[$lang_code],
      '#options' => array(
        TRANSLATION_OVERVIEW_HIGH => t('High'),
        TRANSLATION_OVERVIEW_NORMAL => t('Normal'),
        TRANSLATION_OVERVIEW_IGNORE => t('Ignore'),
      ),
      // If there's no manager role then everyone gets a chance. Otherwise
      // check that they're a manager for this language.
      '#access' => translation_overview_is_manager($lang_code),
    );
    if (isset($translations[$lang_code])) {

      // Existing translation in the translation set: display status.
      // We load the full node to check whether the user can edit it.
      $translation_node = node_load($translations[$lang_code]->nid);
      if ($translation_node->nid == $tnid) {

        // Original shouldn't have a priority.
        $form['languages'][$lang_code]['priority']['#access'] = FALSE;
        $form['languages'][$lang_code]['language'] = array(
          '#value' => '<strong>' . $language->name . '</strong> (source)',
        );
      }
      else {
        $form['languages'][$lang_code]['language'] = array(
          '#value' => $language->name,
        );
      }
      $form['languages'][$lang_code]['title'] = array(
        '#value' => l($translation_node->title, 'node/' . $translation_node->nid),
      );
      $form['languages'][$lang_code]['status'] = array(
        '#value' => translation_overview_translation_link($node, $translation_node, $lang_code, TRUE),
      );
    }
    else {

      // No such translation in the set yet: help user to create it.
      $form['languages'][$lang_code]['language'] = array(
        '#value' => $language->name,
      );
      $form['languages'][$lang_code]['title'] = array(
        '#value' => t('n/a'),
      );
      $form['languages'][$lang_code]['status'] = array(
        '#value' => translation_overview_translation_link($node, NULL, $lang_code, TRUE),
      );
    }
  }
  $form['tnid'] = array(
    '#type' => 'value',
    '#value' => $tnid,
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );
  return $form;
}