Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Royalmail.php
Go to the documentation of this file.
1 <?php
25 #require_once 'Zend/Validate/Barcode/AdapterAbstract.php';
26 
34 {
39  protected $_length = -1;
40 
45  protected $_characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
46 
47  protected $_rows = array(
48  '0' => 1, '1' => 1, '2' => 1, '3' => 1, '4' => 1, '5' => 1,
49  '6' => 2, '7' => 2, '8' => 2, '9' => 2, 'A' => 2, 'B' => 2,
50  'C' => 3, 'D' => 3, 'E' => 3, 'F' => 3, 'G' => 3, 'H' => 3,
51  'I' => 4, 'J' => 4, 'K' => 4, 'L' => 4, 'M' => 4, 'N' => 4,
52  'O' => 5, 'P' => 5, 'Q' => 5, 'R' => 5, 'S' => 5, 'T' => 5,
53  'U' => 0, 'V' => 0, 'W' => 0, 'X' => 0, 'Y' => 0, 'Z' => 0,
54  );
55 
56  protected $_columns = array(
57  '0' => 1, '1' => 2, '2' => 3, '3' => 4, '4' => 5, '5' => 0,
58  '6' => 1, '7' => 2, '8' => 3, '9' => 4, 'A' => 5, 'B' => 0,
59  'C' => 1, 'D' => 2, 'E' => 3, 'F' => 4, 'G' => 5, 'H' => 0,
60  'I' => 1, 'J' => 2, 'K' => 3, 'L' => 4, 'M' => 5, 'N' => 0,
61  'O' => 1, 'P' => 2, 'Q' => 3, 'R' => 4, 'S' => 5, 'T' => 0,
62  'U' => 1, 'V' => 2, 'W' => 3, 'X' => 4, 'Y' => 5, 'Z' => 0,
63  );
64 
69  protected $_checksum = '_royalmail';
70 
77  protected function _royalmail($value)
78  {
79  $checksum = substr($value, -1, 1);
80  $values = str_split(substr($value, 0, -1));
81  $rowvalue = 0;
82  $colvalue = 0;
83  foreach($values as $row) {
84  $rowvalue += $this->_rows[$row];
85  $colvalue += $this->_columns[$row];
86  }
87 
88  $rowvalue %= 6;
89  $colvalue %= 6;
90 
91  $rowchkvalue = array_keys($this->_rows, $rowvalue);
92  $colchkvalue = array_keys($this->_columns, $colvalue);
93  $chkvalue = current(array_intersect($rowchkvalue, $colchkvalue));
94  if ($chkvalue == $checksum) {
95  return true;
96  }
97 
98  return false;
99  }
100 
107  public function checkChars($value)
108  {
109  if ($value[0] == '(') {
110  $value = substr($value, 1);
111 
112  if ($value[strlen($value) - 1] == ')') {
113  $value = substr($value, 0, -1);
114  } else {
115  return false;
116  }
117  }
118 
119  return parent::checkChars($value);
120  }
121 }
$values
Definition: options.phtml:88
$value
Definition: gender.phtml:16