На эту страничку решил выкладывать шпаргалку по классам и методам Virtuemart. Она будет полезна мне. Возможно, она будет полезна и тем, кто пишет собственные расширения для Virtuemart. Какой либо четкой структуры не планируется. Фрагменты кода с пояснениями будут появляться здесь по мере моей работы над Virtuemart
Как получить html содержимое корзины при ajax запросе
Достаточно обратиться по url:
index.php?option=com_virtuemart&view=cart&tmpl=component&format=html&dynamic=1
Как получить данные пользователя Virtuemart?
Данные об авторизованном пользователе Virtuemart можно получить двумя способами.
Первый:
require_once JPATH_ROOT.DIRECTORY_SEPARATOR.'administrator'.DIRECTORY_SEPARATOR.'components' .DIRECTORY_SEPARATOR.'com_virtuemart'.DIRECTORY_SEPARATOR.'models'.DIRECTORY_SEPARATOR.'user.php'; // Подключаем модель пользователя из Virtuemart $user = JFactory::getUser(); // Получаем данные текущего пользователя Joomla $model = new VirtueMartModelUser(); $model->setId($user->id); // Устанавливаем ID пользователя $vm_user = $model->getUser(); // Получаем данные пользователя
Второй способ:
require_once JPATH_ROOT.DIRECTORY_SEPARATOR.'administrator'.DIRECTORY_SEPARATOR.'components' .DIRECTORY_SEPARATOR.'com_virtuemart'.DIRECTORY_SEPARATOR.'models'.DIRECTORY_SEPARATOR.'user.php' $model = new VirtueMartModelUser(); $vm_user = $model->getCurrentUser();
Получаем данные полей пользователя
$user = JFactory::getUser(); $userModel = new VirtueMartModelUser(); $stData = $userModel->getUserAddressList($user->id, 'BT');
Как отформатировать стоимость/цену средствами Virtuemart?
if (!class_exists('CurrencyDisplay')) require(JPATH_ADMINISTRATOR .'components'. DIRECTORY_SEPARATOR .'com_virtuemart' . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'currencydisplay.php'); $currencyDisplay = CurrencyDisplay::getInstance(); $yourprice = 1000; // Ваша стоимость echo $currencyDisplay->priceDisplay($yourprice); // Отображаем
Цена будет отображена в отформатированном виде с указанием валюты.