Version 1
[yaffs-website] / web / core / modules / views / src / Plugin / views / field / LanguageField.php
1 <?php
2
3 namespace Drupal\views\Plugin\views\field;
4
5 use Drupal\Core\Form\FormStateInterface;
6 use Drupal\views\ResultRow;
7
8 /**
9  * Defines a field handler to translate a language into its readable form.
10  *
11  * @ingroup views_field_handlers
12  *
13  * @ViewsField("language")
14  */
15 class LanguageField extends FieldPluginBase {
16
17   /**
18    * {@inheritdoc}
19    */
20   protected function defineOptions() {
21     $options = parent::defineOptions();
22     $options['native_language'] = ['default' => FALSE];
23
24     return $options;
25   }
26
27   /**
28    * {@inheritdoc}
29    */
30   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
31     parent::buildOptionsForm($form, $form_state);
32     $form['native_language'] = [
33       '#title' => $this->t('Display in native language'),
34       '#type' => 'checkbox',
35       '#default_value' => $this->options['native_language'],
36     ];
37   }
38
39   /**
40    * {@inheritdoc}
41    */
42   public function render(ResultRow $values) {
43     $value = $this->getValue($values);
44     $languages = $this->options['native_language'] ? \Drupal::languageManager()->getNativeLanguages() : \Drupal::languageManager()->getLanguages();
45     return isset($languages[$value]) ? $languages[$value]->getName() : '';
46   }
47
48 }