Ошибка "URL is not valid" в модуле link в Drupal
Если в Drupal 7 с использованием модуля link при сохранении материала с полем типа "Ссылка" выпадает ошибка с сообщением "URL is not valid ", то нужно применить патчи вот с этой страницы https://www.drupal.org/project/link/issues/2651742 либо в настройках поля в типе материала нужно убрать галочку: "Validate URL". У меня лично вот этот патч https://www.drupal.org/files/issues/link-always-not-a-valid-url-2651742-48.patch сработал:
diff --git a/link.module b/link.module index 1e9d088..ed89a8b 100644 --- a/link.module +++ b/link.module @@ -420,7 +420,7 @@ function _link_process(&$item, $delta, $field, $entity, $instance) { function _link_validate(&$item, $delta, $field, $entity, $instance, $langcode, &$optional_field_found, &$errors) { if ($item['url'] && !(isset($instance['default_value'][$delta]['url']) && $item['url'] === $instance['default_value'][$delta]['url'] && !$instance['required'])) { // Validate the link. - if (!link_validate_url(trim($item['url']), $langcode)) { + if (!link_validate_url(trim($item['url']), $langcode) && !link_validate_url(trim($item['url']), $entity->language)) { $errors[$field['field_name']][$langcode][$delta][] = array( 'error' => 'link_required', 'message' => t('The value %value provided for %field is not a valid URL.', array( @@ -1231,12 +1231,13 @@ function link_validate_url($text, $langcode = NULL) { if ($type && ($type == LINK_INTERNAL || $type == LINK_EXTERNAL)) { $flag = valid_url($text, TRUE); if (!$flag) { - $normal_path = drupal_get_normal_path($text, $langcode); - $parsed_link = parse_url($normal_path, PHP_URL_PATH); - if ($normal_path != $parsed_link) { - $normal_path = $parsed_link; + foreach (language_list('language') as $langcode => $language_object) { + $parsed_link = parse_url($text, PHP_URL_PATH); + $normal_path = drupal_get_normal_path($parsed_link, $langcode); + if ($flag = drupal_valid_path($normal_path)) { + break; + } } - $flag = drupal_valid_path($normal_path); } if (!$flag) { $flag = file_exists($normal_path);