barcodes 模組提供多種條碼顯示模式. 如 QR Code, EAN-13, EAN-8, UPC-A, UPC-E, ISBN, 2 of 5 Symbologies (Strandard, Industrial, Interleaved), Postnet, Codabar, Code128, Code39 and Code93 symbologies.
由於模組沒有提供額外的顯示標題, 在QR-Code運用再網址連結時自行增加標題標籤 &[title]標題內容[title] 來增加功能, 程式修改如下:
1. 修改 barcode.module 檔, 約 94 行
2.修改 includes\barcode.plugins.inc 檔, 約 88 行
1. 下載 : Barcode 2. 安裝: ► 啟用模組.
► 至 nodetyp類加入該欄位, 指定編碼格式. |
由於模組沒有提供額外的顯示標題, 在QR-Code運用再網址連結時自行增加標題標籤 &[title]標題內容[title] 來增加功能, 程式修改如下:
1. 修改 barcode.module 檔, 約 94 行
約 334 行function theme_barcode_image($variables) { ... //原始 return theme('image', array('path' => $filename, 'alt' => $variables['barcode_value'], 'title' => $variables['barcode_value'], 'attributes' => array('class' => array('barcode')))); //主要目的在縮減資料, 因此可不變更 return theme('image', array('path' => $filename, 'alt' => null, 'title' => null, 'attributes' => array('class' => array('barcode')))); }
function barcode_field_formatter_view(...) { ... //原始 $element[$delta] = array('#markup' => theme('barcode_image', $temp)); //加入 標題顯示 Tag=&[title]內容[/title] firep($item['value'],'barcode_field_formatter_view.$item'); $result = theme('barcode_image', $temp); $itemValue = $item['value']; $pos = mb_strpos($itemValue, '[title]', 0, 'utf8'); if (($field['settings']['encoding']=='QRCODE')&&($pos>0)) { $pos += 7; $posEnd = mb_strpos($itemValue, '[/title]', 0, 'utf8'); $title = mb_substr($itemValue, $pos, $posEnd-$pos, 'utf8'); $result = theme('barcode_image', $temp); $result = '<div id="barcode_block">' . $result . "<div class='barcode_title'>$title</div></div>"; } else { $result = '<div id="barcode_block">' . $result . "<div class='barcode_title'> </div></div>"; } $pos = mb_strpos($itemValue, 'http', 0, 'utf8'); if ((strlen($pos)>0)&&($pos==0)) { $result = "<a href='$itemValue'>" . $result . '</a>'; } $element[$delta] = array('#markup' => $result); // end == } } return $element; }
2.修改 includes\barcode.plugins.inc 檔, 約 88 行
修改後呈現結果 (須在配合css作樣式指定)function barcode_generate_image($barcode, $variables) { ... $barcodeValue = $variables['barcode_value']; //加入 if ($variables['encoding'] != 'QRCODE') { $settings->color = array(hexdec(substr($variables['barcolor'], 1, 2)), hexdec(substr($variables['barcolor'], 3, 2)), hexdec(substr($variables['barcolor'], 5, 2))); $settings->bgcolor = array(hexdec(substr($variables['bgcolor'], 1, 2)), hexdec(substr($variables['bgcolor'], 3, 2)), hexdec(substr($variables['bgcolor'], 5, 2))); $settings->scale = $variables['scale']; } //shioulo 去除外加標題資料 else { $pos = mb_strpos($barcodeValue, "&[", 0, 'utf8'); if ($pos>0) { $barcodeValue = mb_substr($barcodeValue, 0, $pos-1, 'utf8'); $name = md5($barcodeValue); $filename_noformat = $barcode['default_path'] .'/'. $name . $variables['encoding']; $filename = $filename_noformat .'.'. $variables['image_format']; } } barcode_plugin_generate_image($plugin, $barcodeValue, $settings); //end== //原始 barcode_plugin_generate_image($plugin, $variables['barcode_value'], $settings);