...Человеческий поиск в разработке...
- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
- Класс: BitrixUIBarcodeBarcodeGenerator
- Вызов: BarcodeGenerator::ean_13_encode
private function ean_13_encode($data, $pad) { $data = $this->ean_13_normalize($data); $blocks = array(); /* Quiet zone, start, first digit (as parity). */ $system = substr($data, 0, 1); $pbits = ( (int)$system ? $this->upc_parity[$system] : array(1, 1, 1, 1, 1, 1) ); $blocks[] = array( 'm' => array(array(0, 9, 0)), 'l' => array($system, 0.5, 1/3) ); $blocks[] = array( 'm' => array( array(1, 1, 1), array(0, 1, 1), array(1, 1, 1), ) ); /* Left zone. */ for ($i = 1; $i < 7; $i++) { $digit = substr($data, $i, 1); $pbit = $pbits[$i - 1]; $blocks[] = array( 'm' => array( array(0, $this->upc_alphabet[$digit][$pbit ? 0 : 3], 1), array(1, $this->upc_alphabet[$digit][$pbit ? 1 : 2], 1), array(0, $this->upc_alphabet[$digit][$pbit ? 2 : 1], 1), array(1, $this->upc_alphabet[$digit][$pbit ? 3 : 0], 1), ), 'l' => array($digit, 0.5, (7 - $i) / 7) ); } /* Middle. */ $blocks[] = array( 'm' => array( array(0, 1, 1), array(1, 1, 1), array(0, 1, 1), array(1, 1, 1), array(0, 1, 1), ) ); /* Right zone. */ for ($i = 7; $i < 13; $i++) { $digit = substr($data, $i, 1); $blocks[] = array( 'm' => array( array(1, $this->upc_alphabet[$digit][0], 1), array(0, $this->upc_alphabet[$digit][1], 1), array(1, $this->upc_alphabet[$digit][2], 1), array(0, $this->upc_alphabet[$digit][3], 1), ), 'l' => array($digit, 0.5, (13 - $i) / 7) ); } /* End, quiet zone. */ $blocks[] = array( 'm' => array( array(1, 1, 1), array(0, 1, 1), array(1, 1, 1), ) ); $blocks[] = array( 'm' => array(array(0, 9, 0)), 'l' => array($pad, 0.5, 2/3) ); /* Return code. */ return array('g' => 'l', 'b' => $blocks); }