Developing a module or plugin for Virtuemart 2 » History » Revision 12
Revision 11 (Max Milbers, 11/06/2012 09:26 PM) → Revision 12/16 (ValĂ©rie Isaksen, 12/21/2012 04:55 PM)
h1. Developing a module or plugin for VirtueMart 2
Documentation for the VirtueMart 2 API : http://docs.virtuemart.net/api-vm2
When you want to develop your own extension for VirtueMart, then these hints should help you get started:
Use
@if (!class_exists( 'VmConfig' )) require(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');@
to load the configuration object in your extension. Then use
@$config = VmConfig::loadConfig();@
to load the configuration values, you can then easily access them with
@VmConfig::get('yourVariable','default');@
After loading the VmConfig you should always use the vm path constants to access files
@JPATH_VM_SITE = JPATH_ROOT.DS.'components'.DS.'com_virtuemart' );
JPATH_VM_ADMINISTRATOR = JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart' );@
For performance reasons you should always use the
@if (!class_exists( 'MyClass' )) require (JPATH_VM_ADMINISTRATOR.DS....)@
construction, dont use require_once
Loading and instancing a model is very easy in Vm, just use
$mynameModel = VmModel::getModel('myname');
for example: $currencyModel = VmModel::getModel('currency');
When you want to access the js used in vm then load them with
@$config->jQuery();
$config->jVm();@
or for the css use
@$config->cssSite();@
*adding Virtuemart 2 menu to your component*
IN view.php.html use
-----------------------------
if(!class_exists('VmView'))require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'vmview.php');
class vmg_exportViewCategory extends VmView
-----------------------------
in tmpl/default.php for eg.
before your HTML codes
-----------------------------
@$lang = JFactory::getLanguage();
$extension = 'com_virtuemart';
$base_dir = JPATH_ADMINISTRATOR;
$lang->load($extension, $base_dir);
AdminUIHelper::startAdminArea();@
-----------------------------
After your HTML codes
-----------------------------
@ AdminUIHelper::endAdminArea(); @
-----------------------------
*
*to use vm2 tables*
@JTable::addIncludePath(JPATH_VM_ADMINISTRATOR.DS.'tables');@
*Adding an entry to Virtuemart menu*
ON your installation SQL
@INSERT INTO `#__virtuemart_adminmenuentries` (`id`, `module_id`, `parent_id`, `name`, `link`, `depends`, `icon_class`, `ordering`, `published`, `tooltip`, `view`, `task`) VALUES
(null, 77, 0, 'COM_MYCOMPONENT', 'index?option=com_mycomponent', '', 'vmicon vmicon-16-to_do_list_cheked_1', 2, 1, '', 'myview', 'mytask');@
This exemple add an entry in 'tool' menu (module_id 77) with icon vmicon-16-to_do_list_cheked_1
_result link is : index?option=com_mycomponent&view=myview&task=mytask_
For shipment, payment, or other plugin development please look here [[Plugin system]] or for modules here [[Modules system]]