Итак, продолжаем разбираться с построением магазина на Virtuemart 2.0 и Joomla 2.5. На очереди веселый глюк с русскими инвойсами и pdf в Virtuemart 2.0. Дело в том, что когда происходит формирование заказа, virtuemart выставляет счет в pdf (invoice), только вот все русские буквы заменяются на знаки вопросов. Согласитесь, что это не слишком информативно для Ваших покупателей?
Сделаем маленькое отступление. Если на этапе оформления заказа Ваш Virtuemart 2.0 начинает глючить, то показывая страницу 404, то зависая, то выдавая множество ошибок, переставьте для начала пакет Virtuemart 2.0 all in one (aio), который идет в стандартной поставке с самим магазином.
Virtuemart 2.0 pdf инвойсы и русские буквы.
Итак, оказывается шрифты, которые используются для формирования счетов в самом virtuemart попросту не поддерживают кириллицу (кириллические символы). Программисты Virtuemart здесь кивают в сторону TCPDF, библиотеки, которую использует и Virtuemart для формирования pdf документов (вид для печати в pdf, virtuemart 2.0 invoce pdf и т.п.).
Итак, приведем порядок действий, как же «добавить» поддержку кириллицы в invoice pdf virtuemart 2.0.
Первое, после установки virtuemart 2.0 в папке /libraries создает подпапку /libraries/tcpdf/fonts/
Нам нужно добавить необходимые шрифты, поддерживающие кириллицу, в эту подпапку. Для этого переходим на сайт разработчиков в раздел download, качаем последнюю библиотеку для php 5 (joomla версии 2.5 больше не поддерживает php4). После того, как скачали, открываем архив, в нем папку tcpdf и папку fonts из нее копируем по пути /libraries/tcpdf (только папку шрифтов!), соглашаясь о замене всех существующих файлов. После этого мы сможем использовать следующие кириллические шрифты, например: freesans или times.
Перейдем теперь к изменению файлов virtuemart для добавления поддержки кириллицы в pdf invoice в virtuemart 2.0.
Данная инструкция верна для virtuemart 2.0.16 + 2.0.18 a по замене кода в указанных файлах. Но что же делать, если код и версия вашего Virtuemart 2.0 отличаются?
Нужно сделать следующее: найти поиском по файлам рекурсивно в папках /components/com_virtuemart все строки, где встречается helvatica, и заменить их на freesans, или другой шрифт в формате tcpdf из папки /libraries/tcpdf/fonts (название шрифта в папке и будет названием шрифта для замены), поддерживающий кириллицу (русские символы). Можно также дополнительно осуществить поиск по методам самого класса tcpdf – SetFont,setHeaderFont,setFooterFont, и изменить шрифт, указанный в этих методах. А еще в этих методах Вы можете кроме начертания шрифтов изменить их размер. Для этого третьим параметром каждого метода можно передать целое число (высоту шрифта). Рекомендую для freesans увеличить на 1-2 пункта это значение по сравнению с helvatica. Шрифт будет крупнее и читабельнее. После всех изменений сделайте заказ и проверьте, как выглядит invoce в pdf.
Увеличить количество символов краткого описания Virtuemart 2.0
Поднял себе интернет магазин на основе Виртуемарт 2.0, долго и упорно искал в настройках как же увеличить количество символов для вывода короткого описания.
Когда устал искать, воспользовался своими способностями программирования и залез в код.
Меняем вывод товара в OpenCart по умолчанию сеткой
Открываем файл шаблона catalog/view/theme/default/template/product/category.tpl, чтобы сделать по-умолчанию вид “витрина”, надо вместо “list” написать “grid”:
Исправление проблемы с отображение русских символов в virtuemart. При нажатие на кнопку pdf
1. Загружаем последнюю версию скрипта TCPDF
2. Извлекаем архив
3. Идем в созданную папку и копируем всё ее содержимое в папку на сервер: ваш_сайт/libraries/tcpdf/
4. Открываем текстовым редактором файл ваш_сайт/libraries/joomla/document/pdf/pdf.php и находим строчку $pdf->SetFont .
5. Заменяем строку:
Код:
$pdf->SetFont('helvetica', '', 8, '', 'false');
на эту:
Код:
$pdf->SetFont('freesans', '', 8, '', 'false');
6. Так же поиском ищем “var $_header_font” и “var $_footer_font” и заменяем их на это:
Код:
var $_header_font = 'freesans';
var $_footer_font = 'freesans';
7) Открываем файл ваш_сайт/components/com_virtuemart/helpers/vmpdf.php , И так же везде, где helvetica заменяем на freesans