uploadPath = $uploadDirData['basedir'] . '/' . $config['uploads']; } public function generateFile($data) { $w = $h = 250; $barcodeGenerator = new Generator(); $barcodeGenerator->setStorPath($this->uploadPath . '/'); $fileName = $barcodeGenerator->getGeneratedBarcodeSVGFileName($data['lineBarcode'], $data['algorithm'], $w, $h, 'black'); return $this->imageUrl . '/' . $fileName; } public function generateXml($data) { $w = !empty($data['width']) && !empty(intval($data['width'])) ? intval($data['width']) : 500; $h = !empty($data['height']) && !empty(intval($data['height'])) ? intval($data['height']) : 500; if (in_array($data['algorithm'], array('QRCODE', 'DATAMATRIX'))) { $w = min($w, $h); $h = $w; } $withoutFile = true; $barcodeGenerator = new Generator(); $barcodeGenerator->setStorPath($this->uploadPath . '/'); return $barcodeGenerator->getGeneratedBarcodeSVGFileName($data['lineBarcode'], $data['algorithm'], $w, $h, 'black', $withoutFile); } public function validateBarcode(&$code, $algorithm, $data = array()) { $validData = array( 'message' => '', 'is_valid' => true, ); $field = '"Barcode"'; if (isset($data["lineBarcode"])) { $field = "\"{$data["lineBarcode"]["value"]}\""; } if (0 == mb_strlen($code)) { $validData['is_valid'] = false; $msg = "The %field% field is not specified for this product."; $validData['message'] = str_replace('%field%', $field, $msg); return $validData; } switch ($algorithm) { case 'EAN8': $validData['is_valid'] = CodeValidator::IsValidEAN8($code); if (!$validData['is_valid']) { $msg = "%field% field contains incorrect data. It must contain 8 digits. 7 digits and 8th is a checksum digit calculated by formula. Check more on Wiki."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'EAN13': $validData['is_valid'] = 12 === strlen($code) ? CodeValidator::IsValidEAN13($code .= CodeValidatorEx::calculateEANCheckDigit(strrev($code))) : CodeValidator::IsValidEAN13($code); if (!$validData['is_valid']) { $msg = "%field% field contains incorrect data. It must contain 13 digits. 12 digits and 13th is a checksum digit calculated by formula. Check more on Wiki."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'UPCA': $validData['is_valid'] = 11 === strlen($code) ? CodeValidator::IsValidUPCA($code .= CodeValidatorEx::calculateEANCheckDigit($code)) : CodeValidator::IsValidUPCA($code); if (!$validData['is_valid']) { $msg = "%field% field contains incorrect data. It must contain 12 digits. 11 digits and 12th is a checksum digit calculated by formula. Check more on Wiki."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'UPCE': $codeLength = strlen($code); if (7 === $codeLength) { if ('0' === $code[0]) { $code = substr($code, 1, 7); } } $validData['is_valid'] = CodeValidator::IsValidUPCE($code); if (!$validData['is_valid']) { $msg = "%field% field contains incorrect data. It must contain 6 digits. UPC-E is a variation of UPC-A which allows for a more compact barcode by eliminating 'extra' zeros. Check more on Wiki."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'C128': $patern = '/^[\x00-\x7F]+$/'; $validData['is_valid'] = preg_match($patern, $code); if (!$validData['is_valid']) { $msg = "%field% field contains incorrect data. Code 128 supports alphanumeric or numeric-only barcodes. It can encode all 128 characters of ASCII encoding."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'C39': $patern = "#^[0-9a-zA-Z\-\.\ \$\/\+\%]+$#ui"; if (false == preg_match($patern, $code)) { $validData['is_valid'] = false; $msg = "%field% field contains incorrect data. Code 39 supports 43 characters, consisting of letters (A-Z), numeric digits (0 through 9) and a number of special characters (-, ., $, /, +, %, and space)."; $validData['message'] = str_replace('%field%', $field, $msg); } break; case 'QRCODE': $validData['is_valid'] = true; $validData['message'] = ''; break; case 'DATAMATRIX': $validData['is_valid'] = true; $validData['message'] = ''; break; } return $validData; } }