Для генерации нам понадобится библиотека PHP QR Code:
Последующий порядок действий:
1. В директории /modules/ создаете директорию qrcode, в которую распаковываете файлы из скачанного архива.
2. Переходите в директорию /qrcode/ и создаете файл qrcode.php со следующим содержимым:
<?php
require_once('phpqrcode.php');
3. Переходите в корень системы и создаете файл qr.php:
<?php
// Подключаем основные классы
require_once ('bootstrap.php');
// Не показываем, если ее запрашивает бот
if ($shop_item_id && !preg_match('/HTTP|BOT|SPIDE|CRAW|YANDEX|APORT|RAMBLER|SEARCH|SEEK|SITE/iu', Core_Array::get($_SERVER, 'HTTP_USER_AGENT', '')))
{
$oShop_Item = Core_Entity::factory('Shop_Item')->find($shop_item_id);
if ($oShop_Item->id)
{
$oSiteAlias = $oShop_Item->Shop->Site->getCurrentAlias();
if ($oSiteAlias)
{
$sItemPath = 'http://' . $oSiteAlias->name
. $oShop_Item->Shop->Structure->getPath()
. $oShop_Item->getPath();
4. В центре администрирования переходим в раздел "Модули" и создаем новый активный модуль. Имя "QR-код", путь - qrcode
5. Переходим в XSL-шаблон товара и в темплейте товара "shop_item" добавляем сам показ QR-кода:
<img src="/qr.php?shop_item_id={@id}" alt="" />
В результате получим QR-код cо ссылкой на товар.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Re: Генерация QR-кода со ссылкой на страницу товара.
Александр, огромное спасибо! Очень удобно и модуль просто устанавливается. Подскажите, если нужен другой размер картинки с QR-кодом, где это можно настроить?
Re: Генерация QR-кода со ссылкой на страницу товара.
Ох, Вы такие вопросы задаете)) Откровенно говоря, я только с утра увидел эту библиотеку и подробно не разбирался. Сейчас посмотрел - есть задание размеров и качества QR-кода (в демке на странице библиотеки есть ). Если "зазырить" метод png() класса QRcode, то видно, что он принимает параметры $pixelPerPoint и $outerFrame. Cтроку:
QRcode::png($sItemPath);
Нужно заменить на:
QRcode::png($sItemPath, false, 4, 6);
Где 4 - это ECC кода, т.е процент нечитаемых кодовых слов,которые могут быть восстановлены в QR-коде без потери данных (от 1 до 4):
L - Low(Слабый) - 7% кодовых слов может быть восстановлено
M - Medium(Средний) - 15% кодовых слов может быть восстановлено
Q - Quartile(Нормальный) - 25% кодовых слов может быть восстановлено
H - High(Высокий) - 30% кодовых слов может быть восстановлено
6 - это размер QR-кода (от 1 до 10).
Сразу оговорюсь, что второй параметр - это возможность сгенерировать код в файл, в нем указывается путь и название файла с кодом. Так как в данном примере код генерируется "на лету", то он идет как false.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.