[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
ojs
/
248
/
lib
/
pkp
/
classes
/
validation
/
[
Home
]
File: ValidatorISNI.inc.php
<?php /** * @file classes/validation/ValidatorISNI.inc.php * * Copyright (c) 2013-2019 Simon Fraser University * Copyright (c) 2000-2019 John Willinsky * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING. * * @class ValidatorISNI * @ingroup validation * @see Validator * * @brief Validation check for ISNIs. */ import('lib.pkp.classes.validation.ValidatorRegExp'); class ValidatorISNI extends ValidatorRegExp { /** * Constructor. */ function ValidatorISNI() { parent::ValidatorRegExp(self::getRegexp()); } // // Implement abstract methods from Validator // /** * @see Validator::isValid() * @param $value mixed * @return boolean */ function isValid($value) { if (!parent::isValid($value)) return false; $matches = $this->getMatches(); $match = $matches[0]; $total = 0; for ($i=0; $i<15; $i++) { $total = ($total + $match[$i]) *2; } $remainder = $total % 11; $result = (12 - $remainder) % 11; return ($match[15] == ($result==10 ? 'X' : $result)); } // // Public static methods // /** * Return the regex for an ISNI check. This can be called * statically. * @return string */ static function getRegexp() { return '/^(\d{15}[0-9X])$/'; } } ?>