diff --git a/src/enums/MDNodaRepository.php b/src/enums/MDNodaRepository.php index fef7685..7fbc181 100644 --- a/src/enums/MDNodaRepository.php +++ b/src/enums/MDNodaRepository.php @@ -482,6 +482,28 @@ enum MDNodaRepository implements MDValueEnumInterface, JsonSerializable { } + /** + * Validates a Wikipedia link. + * + * @param string $id ID to validate. + * + * @return string|false + */ + public static function validateWikipediaId(string $id):string|false { + + $validation = strtr($id, [ + 'https://de.wikipedia.org/wiki/' => '', + 'https://en.wikipedia.org/wiki/' => '', + 'https://sv.wikipedia.org/wiki/' => '', + 'https://ru.wikipedia.org/wiki/' => '', + ]); + + if (str_contains($validation, "/")) return false; + + return $validation; + + } + /** * Validates an ID. * @@ -532,7 +554,7 @@ enum MDNodaRepository implements MDValueEnumInterface, JsonSerializable { 'http://viaf.org/viaf/', ]), self::wikidata => self::validateWikidataId($id), - self::wikipedia => str_replace('https://de.wikipedia.org/wiki/', '', $id), + self::wikipedia => self::validateWikipediaId($id), }; }