tmgmt_node_handler_field_translation_language_status_single.inc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * @todo What is this?
  4. */
  5. class tmgmt_node_handler_field_translation_language_status_single extends views_handler_field {
  6. /**
  7. * @var tmgmt_node_handler_field_translation_language_status
  8. */
  9. var $main_handler;
  10. /**
  11. * @var string
  12. */
  13. var $langcode;
  14. function init(&$view, &$options) {
  15. parent::init($view, $options);
  16. $this->additional_fields['nid'] = array(
  17. 'table' => 'node',
  18. 'field' => 'nid',
  19. );
  20. }
  21. function render($values) {
  22. $nid = $values->nid;
  23. $langcode = $this->langcode;
  24. // Check if this is the source language.
  25. if ($langcode == $values->node_language) {
  26. $translation_status = 'original';
  27. }
  28. // Check if there is a translation.
  29. elseif (!isset($this->view->field[$this->main_field]->language_items[$nid][$langcode])) {
  30. $translation_status = 'missing';
  31. }
  32. // Check if the translation is outdated.
  33. elseif (!$this->view->field[$this->main_field]->language_items[$nid][$langcode]) {
  34. $translation_status = 'outofdate';
  35. }
  36. else {
  37. $translation_status = 'current';
  38. }
  39. $job_item = NULL;
  40. if (isset($this->view->field[$this->main_field]->active_job_items[$nid][$langcode])) {
  41. $job_item = $this->view->field[$this->main_field]->active_job_items[$nid][$langcode];
  42. }
  43. return theme('tmgmt_ui_translation_language_status_single', array(
  44. 'translation_status' => $translation_status,
  45. 'job_item' => $job_item,
  46. ));
  47. }
  48. function query() {
  49. $this->add_additional_fields();
  50. }
  51. }