ercore-8.x-1.20/modules/ercore_core/src/Form/ERCoreTableA.php

modules/ercore_core/src/Form/ERCoreTableA.php
<?php

namespace Drupal\ercore_core\Form;

/**
 * @file
 * Contains Drupal\ercore_core\Form\ERCoreTableA.
 */

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\ercore_core\ErcoreSalary;

/**
 * Class ERCoreTableA.
 *
 * Defines ERCore Table A.
 *
 * @package Drupal\ercore\Form
 */
class ERCoreTableA extends FormBase {

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'ERCoreTableA';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $url = Url::fromRoute('ercore_core.salary_support_export');
    $link = Link::fromTextAndUrl('Download NSF Table A.', $url);
    $form['#attached']['library'][] = 'ercore_core/ercore-core-exports.library';
    $form['date_filter'] = \Drupal::formBuilder()->getForm('Drupal\ercore_core\Form\ERCoreDateFilter');
    $form['data_table'] = [
      '#type' => 'fieldset',
      '#title' => t('Table A Results'),
      '#open' => TRUE,
    ];
    $form['data_table']['description'] = $this->formatResults();
    $form['export_link'] = [
      '#markup' => '<p class="epscor-download">' . $link->toString() . '</p>',
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    // We don't use this, but the interface requires us to implement it.
  }

  /**
   * Format Results.
   */
  public function formatResults() {
    $data = ErcoreSalary::filteredUsers();
    $results = [];
    foreach ($data as $title => $institution) {
      $users = [];
      foreach ($institution as $result) {
        $user = '/user/' . $result['id'];
        $users[] = Link::fromTextAndUrl($result['name'], Url::fromUserInput($user))
          ->toString();
      }
      $results[] = [
        '#theme' => 'item_list',
        '#title' => $title,
        '#list_type' => 'ul',
        '#items' => $users,
      ];
    }
    return $results;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc