diff --git a/.gitattributes b/.gitattributes index dfdf96bd212b51ed8be5ce53ccdb61ecd56d80b4..4e5c660d443f2c39cc9f23b8e619f9c6ba7f9199 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2721,6 +2721,7 @@ library/ZendAfi/Form/VignetteNotice.php -text library/ZendAfi/Mail.php -text library/ZendAfi/Translate.php -text library/ZendAfi/Validate/EmailAddress.php -text +library/ZendAfi/Validate/Facette.php -text library/ZendAfi/Validate/FieldGreater.php -text library/ZendAfi/Validate/FieldsGreater.php -text library/ZendAfi/Validate/Isbn.php -text diff --git a/library/ZendAfi/Validate/Facette.php b/library/ZendAfi/Validate/Facette.php new file mode 100644 index 0000000000000000000000000000000000000000..c5907ce6e86e2a0fe3909925c5bdc49f84cd741a --- /dev/null +++ b/library/ZendAfi/Validate/Facette.php @@ -0,0 +1,39 @@ +<?php +/** + * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved. + * + * AFI-OPAC 2.0 is free software; you can redistribute it and/or modify + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by + * the Free Software Foundation. + * + * There are special exceptions to the terms and conditions of the AGPL as it + * is applied to this software (see README file). + * + * AFI-OPAC 2.0 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + * along with AFI-OPAC 2.0; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +class ZendAfi_Validate_Facette extends Zend_Validate_Abstract { + const INVALID_FACETTE = 'invalidFacette'; + + protected $_messageTemplates = [self::INVALID_FACETTE => "'%value%' n'est pas une facette valide"]; + + public function isValid($value) { + $value = (string)$value; + $this->_setValue($value); + + /** Facettes valides: YMET Lfre S234*/ + if (preg_match('/^(Y\w+)|(L\w+)|([A-Z]+\d+)$/', $value)) + return true; + + $this->_error(self::INVALID_FACETTE); + return false; + } +} + +?> \ No newline at end of file