X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fchi-teck%2Fdrupal-code-generator%2Ftemplates%2Fd8%2F_field%2Fdefault-formatter.twig;fp=vendor%2Fchi-teck%2Fdrupal-code-generator%2Ftemplates%2Fd8%2F_field%2Fdefault-formatter.twig;h=515bcbad402d9c604b0c5056af4a95e037d0e5b0;hp=0000000000000000000000000000000000000000;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/vendor/chi-teck/drupal-code-generator/templates/d8/_field/default-formatter.twig b/vendor/chi-teck/drupal-code-generator/templates/d8/_field/default-formatter.twig new file mode 100644 index 000000000..515bcbad4 --- /dev/null +++ b/vendor/chi-teck/drupal-code-generator/templates/d8/_field/default-formatter.twig @@ -0,0 +1,148 @@ + 'bar'] + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public function settingsForm(array $form, FormStateInterface $form_state) { + $settings = $this->getSettings(); + $element['foo'] = [ + '#type' => 'textfield', + '#title' => $this->t('Foo'), + '#default_value' => $settings['foo'], + ]; + return $element; + } + + /** + * {@inheritdoc} + */ + public function settingsSummary() { + $settings = $this->getSettings(); + $summary[] = $this->t('Foo: @foo', ['@foo' => $settings['foo']]); + return $summary; + } + +{% endif %} + /** + * {@inheritdoc} + */ + public function viewElements(FieldItemListInterface $items, $langcode) { + $element = []; + + foreach ($items as $delta => $item) { + +{% for subfield in subfields %} + {% if subfield.type == 'boolean' %} + $element[$delta]['{{ subfield.machine_name }}'] = [ + '#type' => 'item', + '#title' => $this->t('{{ subfield.name }}'), + '#markup' => $item->{{ subfield.machine_name }} ? $this->t('Yes') : $this->t('No'), + ]; + + {% else %} + if ($item->{{ subfield.machine_name }}) { + {% if subfield.list %} + $allowed_values = {{ type_class }}::{{ subfield.allowed_values_method }}(); + {% endif %} + {% set item_value %} + {% if subfield.list %}$allowed_values[$item->{{ subfield.machine_name }}]{% else %}$item->{{ subfield.machine_name }}{% endif %} + {% endset %} + {% if subfield.type == 'datetime' %} + $date = DrupalDateTime::createFromFormat('{{ subfield.date_storage_format }}', $item->{{ subfield.machine_name }}); + // @DCG: Consider injecting the date formatter service. + // @codingStandardsIgnoreStart + $date_formatter = \Drupal::service('date.formatter'); + // @codingStandardsIgnoreStart + $timestamp = $date->getTimestamp(); + {% if subfield.list %} + $formatted_date = {{ item_value }}; + {% else %} + $formatted_date = $date_formatter->format($timestamp, 'long'); + {% endif %} + $iso_date = $date_formatter->format($timestamp, 'custom', 'Y-m-d\TH:i:s') . 'Z'; + $element[$delta]['{{ subfield.machine_name }}'] = [ + '#type' => 'item', + '#title' => $this->t('{{ subfield.name }}'), + 'content' => [ + '#theme' => 'time', + '#text' => $formatted_date, + '#html' => FALSE, + '#attributes' => [ + 'datetime' => $iso_date, + ], + '#cache' => [ + 'contexts' => [ + 'timezone', + ], + ], + ], + ]; + {% else %} + $element[$delta]['{{ subfield.machine_name }}'] = [ + '#type' => 'item', + '#title' => $this->t('{{ subfield.name }}'), + {% if subfield.link %} + 'content' => [ + '#type' => 'link', + '#title' => {{ item_value }}, + {% if subfield.type == 'email' %} + '#url' => Url::fromUri('mailto:' . $item->{{ subfield.machine_name }}), + {% elseif subfield.type == 'telephone' %} + '#url' => Url::fromUri('tel:' . rawurlencode(preg_replace('/\s+/', '', $item->{{ subfield.machine_name }}))), + {% elseif subfield.type == 'uri' %} + '#url' => Url::fromUri($item->{{ subfield.machine_name }}), + {% endif %} + ], + {% else %} + '#markup' => {{ item_value }}, + {% endif %} + ]; + {% endif %} + } + + {% endif %} +{% endfor %} + } + + return $element; + } + +}