Skip to content
Snippets Groups Projects
Commit f8ef1a0f authored by Tim Rohaly's avatar Tim Rohaly
Browse files

Issue #3476478 by tr: TypeError in Drupal\regcode\RegistrationCode

parent f22447a6
Branches
Tags
1 merge request!18Issue #3476478 by tr: TypeError in Drupal\regcode\RegistrationCode
Pipeline #294910 passed with warnings
...@@ -2,6 +2,12 @@ regcode.settings: ...@@ -2,6 +2,12 @@ regcode.settings:
type: config_object type: config_object
label: Settings label: Settings
mapping: mapping:
regcode_field_title:
type: label
label: 'Field label'
regcode_field_description:
type: text
label: 'Field description'
regcode_optional: regcode_optional:
type: boolean type: boolean
label: 'Make registration code optional' label: 'Make registration code optional'
...@@ -11,9 +17,3 @@ regcode.settings: ...@@ -11,9 +17,3 @@ regcode.settings:
regcode_generate_case: regcode_generate_case:
type: boolean type: boolean
label: 'Convert generated codes to uppercase' label: 'Convert generated codes to uppercase'
regcode_field_title:
type: label
label: 'Field label'
regcode_field_description:
type: text
label: 'Field description'
...@@ -69,17 +69,19 @@ class RegcodeAdminCreateForm extends FormBase { ...@@ -69,17 +69,19 @@ class RegcodeAdminCreateForm extends FormBase {
]; ];
$form['regcode_create']['regcode_create_maxuses'] = [ $form['regcode_create']['regcode_create_maxuses'] = [
'#type' => 'textfield', '#type' => 'number',
'#title' => $this->t('Maximum uses'), '#title' => $this->t('Maximum uses'),
'#description' => $this->t('How many times this code can be used to register (enter 0 for unlimited).'), '#description' => $this->t('How many times this code can be used to register (enter 0 for unlimited).'),
'#min' => 0,
'#size' => 10, '#size' => 10,
'#default_value' => 1, '#default_value' => 1,
'#required' => TRUE, '#required' => TRUE,
]; ];
$form['regcode_create']['regcode_create_length'] = [ $form['regcode_create']['regcode_create_length'] = [
'#type' => 'textfield', '#type' => 'number',
'#title' => $this->t('Code size'), '#title' => $this->t('Code size'),
'#min' => 1,
'#size' => 10, '#size' => 10,
'#default_value' => 12, '#default_value' => 12,
]; ];
...@@ -134,8 +136,9 @@ class RegcodeAdminCreateForm extends FormBase { ...@@ -134,8 +136,9 @@ class RegcodeAdminCreateForm extends FormBase {
]; ];
$form['regcode_create_bulk']['regcode_create_number'] = [ $form['regcode_create_bulk']['regcode_create_number'] = [
'#type' => 'textfield', '#type' => 'number',
'#title' => $this->t('Number of codes to generate'), '#title' => $this->t('Number of codes to generate'),
'#min' => 1,
'#size' => 10, '#size' => 10,
'#default_value' => 1, '#default_value' => 1,
]; ];
...@@ -149,12 +152,20 @@ class RegcodeAdminCreateForm extends FormBase { ...@@ -149,12 +152,20 @@ class RegcodeAdminCreateForm extends FormBase {
} }
/** /**
* {@inheritdoc} * An #element_validate callback to ensure a blank date validates.
*/ */
public function validateForm(array &$form, FormStateInterface $form_state) { public function validateDate(array &$element, FormStateInterface $form_state) {
if (!is_numeric($form_state->getValue(['regcode_create_maxuses'])) || $form_state->getValue(['regcode_create_maxuses']) < 0) { if (isset($element['#value']) && !empty($element['#value'])) {
$form_state->setErrorByName('regcode_create_maxuses', $this->t('Invalid maxuses, specify a positive integer or enter "0" for unlimited')); $date = strtotime($element['#value']);
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
if (!checkdate($month, $day, $year)) {
$form_state->setError($element, $this->t('The specified date is invalid.'));
}
} }
return $element;
} }
/** /**
...@@ -188,7 +199,7 @@ class RegcodeAdminCreateForm extends FormBase { ...@@ -188,7 +199,7 @@ class RegcodeAdminCreateForm extends FormBase {
// Generate a code. // Generate a code.
if (empty($code->code) || $form_state->getValue(['regcode_create_number']) > 1) { if (empty($code->code) || $form_state->getValue(['regcode_create_number']) > 1) {
$gen = $this->registrationCode->generate($form_state->getValue(['regcode_create_length']), $form_state->getValue(['regcode_create_format']), $form_state->getValue(['regcode_create_case'])); $gen = $this->registrationCode->generate((int) $form_state->getValue(['regcode_create_length']), $form_state->getValue(['regcode_create_format']), (bool) $form_state->getValue(['regcode_create_case']));
$code->code .= $gen; $code->code .= $gen;
} }
...@@ -206,21 +217,4 @@ class RegcodeAdminCreateForm extends FormBase { ...@@ -206,21 +217,4 @@ class RegcodeAdminCreateForm extends FormBase {
} }
} }
/**
* Ensures a blank date validates.
*/
public function validateDate(array &$element, FormStateInterface $form_state) {
if (isset($element['#value']) && !empty($element['#value'])) {
$date = strtotime($element['#value']);
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
if (!checkdate($month, $day, $year)) {
$form_state->setError($element, $this->t('The specified date is invalid.'));
}
}
return $element;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment