Всем доброго времени суток!
В процессе написания одной из статей, я обратил внимание, что в Рунете(в том числе и на Joomlaforum'е) очень редко встречается упоминание одной очень полезной функции VirtueMart - перегрузка и расширение классов. С ее помощью мы можем вносить изменения в функционал VirtueMart, не создавая при этом хаков.
Для чего это нужно? Круг задач очень обширный, начиная с добавления в нужные шаблоны VirtueMart дополнительных переменных(которых там иногда так не хватает), заканчивая добавлением собственного функционала, не предусмотренного компонентом. При этом обновляться можно совершенно спокойно, т.к. сделанные изменения никак не будут затронуты.
Как это работает? Думаю многие знают, что такое Joomla template overrides. Мы вносим изменения в структуру модулей и компонентов Joomla, не затрагивая код ядра. Тоже самое можно делать и с VirtueMart, но меняем мы не структуру, а функции классов. Если говорить коротко, то:
1) активируем опцию без названия в настройках Virtuemart(вкладка "Безопасность")
2) создаем в папке с шаблоном VirtueMart подпапку
user_class3) помещаем в папку user_class файл класса VirtueMart, содержащий только функции, в которые мы хотим внести изменения
4) оформляем этот файл в соответствии с правилами расширения классов php, вносим необходимые изменения в функции(пишем свои функции).
5) Проверяем как всё работает и радуемся

.
Если нужно подробнее, читаем
статью про user_class, которую я таки написал. Там есть пример использования.
P.S.: beagler, если есть возможность, закрепи тему в этом разделе. Функция действительно очень полезная, но малоизвестная. Думаю, многие с ее помощью избавятся от головной боли с хаками.