public function XmlSitemapCustomEditForm::validateForm in XML sitemap 8
Same name and namespace in other branches
- 2.x xmlsitemap_custom/src/Form/XmlSitemapCustomEditForm.php \Drupal\xmlsitemap_custom\Form\XmlSitemapCustomEditForm::validateForm()
Form validation handler.
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
- xmlsitemap_custom/
src/ Form/ XmlSitemapCustomEditForm.php, line 173
Class
- XmlSitemapCustomEditForm
- Provides a form for editing a custom link.
Namespace
Drupal\xmlsitemap_custom\FormCode
public function validateForm(array &$form, FormStateInterface $form_state) {
$link = $form_state
->getValues();
if (strpos($link['loc'], '/') !== 0) {
$form_state
->setErrorByName('loc', $this
->t('The path should start with /.'));
return;
}
// Make sure we trim and normalize the path first.
$link['loc'] = trim($link['loc']);
$link['loc'] = $this->aliasManager
->getPathByAlias($link['loc'], $link['language']);
$form_state
->setValue('loc', $link['loc']);
try {
$client = $this->httpClientFactory
->fromOptions([
'config/curl',
[
CURLOPT_FOLLOWLOCATION => FALSE,
],
]);
$client
->get(Url::fromUserInput($link['loc'], [
'absolute' => TRUE,
])
->toString());
} catch (\Exception $e) {
$form_state
->setErrorByName('loc', $this
->t('The custom link @link is either invalid or it cannot be accessed by anonymous users.', [
'@link' => $link['loc'],
]));
}
parent::validateForm($form, $form_state);
}