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.'));
}
}
