Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libs/Zend/Validate/Barcode/Ean13.php')
-rw-r--r--libs/Zend/Validate/Barcode/Ean13.php88
1 files changed, 15 insertions, 73 deletions
diff --git a/libs/Zend/Validate/Barcode/Ean13.php b/libs/Zend/Validate/Barcode/Ean13.php
index 068809248c..d5387e52f9 100644
--- a/libs/Zend/Validate/Barcode/Ean13.php
+++ b/libs/Zend/Validate/Barcode/Ean13.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Zend Framework
*
@@ -15,96 +14,39 @@
*
* @category Zend
* @package Zend_Validate
- * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id: Ean13.php 16223 2009-06-21 20:04:53Z thomas $
+ * @version $Id: Ean13.php 20096 2010-01-06 02:05:09Z bkarwin $
*/
-
/**
- * @see Zend_Validate_Abstract
+ * @see Zend_Validate_Barcode_AdapterAbstract
*/
-require_once 'Zend/Validate/Abstract.php';
-
+// require_once 'Zend/Validate/Barcode/AdapterAbstract.php';
/**
* @category Zend
* @package Zend_Validate
- * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
-class Zend_Validate_Barcode_Ean13 extends Zend_Validate_Abstract
+class Zend_Validate_Barcode_Ean13 extends Zend_Validate_Barcode_AdapterAbstract
{
/**
- * Validation failure message key for when the value is
- * an invalid barcode
- */
- const INVALID = 'invalid';
-
- /**
- * Validation failure message key for when the value is
- * not 13 characters long
+ * Allowed barcode lengths
+ * @var integer
*/
- const INVALID_LENGTH = 'invalidLength';
+ protected $_length = 13;
/**
- * Validation failure message key for when the value
- * does not only contain numeric characters
+ * Allowed barcode characters
+ * @var string
*/
- const NOT_NUMERIC = 'ean13NotNumeric';
+ protected $_characters = '0123456789';
/**
- * Validation failure message template definitions
- *
- * @var array
+ * Checksum function
+ * @var string
*/
- protected $_messageTemplates = array(
- self::INVALID => "'%value%' is an invalid EAN-13 barcode",
- self::INVALID_LENGTH => "'%value%' should be 13 characters",
- self::NOT_NUMERIC => "'%value%' should contain only numeric characters",
- );
-
- /**
- * Defined by Zend_Validate_Interface
- *
- * Returns true if and only if $value contains a valid barcode
- *
- * @param string $value
- * @return boolean
- */
- public function isValid($value)
- {
- if (!is_string($value) || !ctype_digit($value)) {
- $this->_error(self::NOT_NUMERIC);
- return false;
- }
-
- $this->_setValue($value);
- if (strlen($value) !== 13) {
- $this->_error(self::INVALID_LENGTH);
- return false;
- }
-
- $barcode = strrev(substr($value, 0, -1));
- $oddSum = 0;
- $evenSum = 0;
-
- for ($i = 0; $i < 12; $i++) {
- if ($i % 2 === 0) {
- $oddSum += $barcode[$i] * 3;
- } elseif ($i % 2 === 1) {
- $evenSum += $barcode[$i];
- }
- }
-
- $calculation = ($oddSum + $evenSum) % 10;
- $checksum = ($calculation === 0) ? 0 : 10 - $calculation;
-
- if ($value[12] != $checksum) {
- $this->_error(self::INVALID);
- return false;
- }
-
- return true;
- }
+ protected $_checksum = '_gtin';
}