...Человеческий поиск в разработке...
- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
- Класс: BitrixUIBarcodeBarcodeGenerator
- Вызов: BarcodeGenerator::upc_a_encode
private function upc_a_encode($data) { $data = $this->upc_a_normalize($data); $blocks = array(); /* Quiet zone, start, first digit. */ $digit = substr($data, 0, 1); $blocks[] = array( 'm' => array(array(0, 9, 0)), 'l' => array($digit, 0, 1/3) ); $blocks[] = array( 'm' => array( array(1, 1, 1), array(0, 1, 1), array(1, 1, 1), ) ); $blocks[] = array( 'm' => array( array(0, $this->upc_alphabet[$digit][0], 1), array(1, $this->upc_alphabet[$digit][1], 1), array(0, $this->upc_alphabet[$digit][2], 1), array(1, $this->upc_alphabet[$digit][3], 1), ) ); /* Left zone. */ for ($i = 1; $i < 6; $i++) { $digit = substr($data, $i, 1); $blocks[] = array( 'm' => array( array(0, $this->upc_alphabet[$digit][0], 1), array(1, $this->upc_alphabet[$digit][1], 1), array(0, $this->upc_alphabet[$digit][2], 1), array(1, $this->upc_alphabet[$digit][3], 1), ), 'l' => array($digit, 0.5, (6 - $i) / 6) ); } /* 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 = 6; $i < 11; $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, (11 - $i) / 6) ); } /* Last digit, end, quiet zone. */ $digit = substr($data, 11, 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), ) ); $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($digit, 0, 2/3) ); /* Return code. */ return array('g' => 'l', 'b' => $blocks); }