public function CropWidgetForm::validateForm in Image Widget Crop 8
Same name and namespace in other branches
- 8.2 src/Form/CropWidgetForm.php \Drupal\image_widget_crop\Form\CropWidgetForm::validateForm()
Validation for cropper library.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormBase::validateForm
File
- src/
Form/ CropWidgetForm.php, line 169
Class
- CropWidgetForm
- Configure ImageWidgetCrop general settings for this site.
Namespace
Drupal\image_widget_crop\FormCode
public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
if (!empty($form_state
->getValue('library_url')) || !empty($form_state
->getValue('css_url'))) {
$files = [
'library' => $form_state
->getValue('library_url'),
'css' => $form_state
->getValue('css_url'),
];
if (empty($files['library']) || empty($files['css'])) {
$form_state
->setErrorByName('plugin', t('Please provide both a library and a CSS file when using custom URLs.'));
}
else {
foreach ($files as $type => $file) {
// Verify that both files exist.
$is_local = parse_url($file, PHP_URL_SCHEME) === NULL && strpos($file, '//') !== 0;
if ($is_local && !file_exists($file)) {
$form_state
->setErrorByName($type . '_url', t('The provided local file does not exist.'));
}
elseif (!$is_local) {
try {
$result = \Drupal::httpClient()
->request('GET', $file);
if ($result
->getStatusCode() != 200) {
throw new \Exception($result
->getReasonPhrase(), 1);
}
} catch (\Exception $e) {
$form_state
->setErrorByName($type . '_url', t('The remote URL for the library does not appear to be valid: @message.', [
'@message' => $e
->getMessage(),
]), 'error');
}
}
}
}
}
}