ercore-8.x-1.20/modules/ercore_proposal/ercore_proposal.module

modules/ercore_proposal/ercore_proposal.module
<?php

/**
 * @file
 * PHP file {ercore_proposal.module} for use with eightball.
 */

use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_form_alter().
 *
 * Form Alter for ERCore Proposal nodes.
 */
function ercore_proposal_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if ($form_id === 'node_ercore_proposal_form' || $form_id === 'node_ercore_proposal_edit_form') {
    $form['field_ercore_pp_proposal_submit']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => [
          ['value' => 'Submitted'],
          ['value' => 'Pending'],
          ['value' => 'Awarded'],
          ['value' => 'Expired'],
          ['value' => 'Denied'],
        ],
      ],
    ];
    $form['field_ercore_pp_proposal_pending']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Pending'],
      ],
      'required' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Pending'],
      ],
    ];
    $form['field_ercore_pp_proposal_denied']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Denied'],
      ],
      'required' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Denied'],
      ],
    ];
    $form['field_ercore_pp_award_start']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => [
          ['value' => 'Awarded'],
          ['value' => 'Expired'],
        ],
      ],
      'required' => [
        ':input[name="field_ercore_pp_proposal_status"]' => [
          ['value' => 'Awarded'],
          ['value' => 'Expired'],
        ],
      ],
    ];
    $form['field_ercore_pp_award_end']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => [
          ['value' => 'Awarded'],
          ['value' => 'Expired'],
        ],
      ],
      'required' => [
        ':input[name="field_ercore_pp_proposal_status"]' => [
          ['value' => 'Awarded'],
          ['value' => 'Expired'],
        ],
      ],
    ];
    $form['field_ercore_pp_award_amount']['#states'] = [
      'visible' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Awarded'],
      ],
      'required' => [
        ':input[name="field_ercore_pp_proposal_status"]' => ['value' => 'Awarded'],
      ],
    ];
    $form['#validate'][] = 'ercore_proposal_form_validate';
  }
}

/**
 * Validates submission values in the FORM_ID() form.
 */
function ercore_proposal_form_validate(array &$form, FormStateInterface $form_state) {
  $value1 = $form_state->getValue('field_ercore_pp_award_start');
  $value2 = $form_state->getValue('field_ercore_pp_award_end');
  if (!empty($value2['0']['value']) && $value2['0']['value'] < $value1['0']['value']) {
    $form_state->setErrorByName('field_ercore_pp_award_end', t('End date must be after start date.'));
  }
}

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

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