Project

General

Profile

Setting up a Development Environment » History » Revision 35

Revision 34 (Max Milbers, 10/16/2011 11:00 AM) → Revision 35/48 (Max Milbers, 10/17/2011 09:43 PM)

h1. Setting up a Development Environment 

 h2. Introduction 

 If you start developing for the project or just with VirtueMart you may have already set up a development environment with an IDE and a SVN program.  

 If you haven't done so or if you want to know what to do better, you can follow the instructions given on this page.  

 The following programs are recommended for working with VirtueMart and synchronizing the working directory with the local SVN repository:  

 * SmartSVN or TortoiseSVN http://tortoisesvn.net/downloads.html 
 * Eclipse for php or aptana (very good PHP IDE and free!) 

 Of course there are other programs that can do the same as the ones mentioned above, but remember: these are just recommendations. You need in everycase jdump installed. 

 h2. Setup an IDE and SVN 

 If you want to join the project it is important that you have a similar environment like the other devs, so it makes it easier for everyone to help each other.  

 Please use NOT the standard jos_ prefixed, please use something new, here in the exampel we still use jos_. This helps to find hardcoded prefixes. At best is everyone uses another one. 

 You should also install your joomla in a domain with a subdomain and path, for exampel shop.localhost/vm2/. This helps to find path problems. 

 Setup up an IDE, I suggest you follow the explanations here: http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development  

 For development and testing we use JDump (http://extensions.joomla.org/extensions/miscellaneous/development/1509). In official releases (beta, RC and, of course, final), all dump() calls are removed or outcommented, but for SVN checkouts of development releases this extension is required. 

 h3. SVN-Basics:  

 For pure installation information look at the chapter "Installation of virtuemart into your IDE". The SVN folder structure is setup with 3 root folders; trunk, tags and branches. The trunk folder is used for current active development. The tags folder is used for public releases. The branches folder can be used for code branches.  

 The structure found under these root folders mimic the structure in a typical Joomla installation, however, only contain the VirtueMart code. This gives us the ability to easily commit and checkout directly from a Joomla installation as described above.  

 There are 3 different folders for backend, frontend, modules, and plugins 

 * trunk/virtuemart/administrator/components/com_virtuemart ;pure vm 
 * trunk/virtuemart/administrator/language                    ;mixed 
 * trunk/virtuemart/components/com_virtuemart                 ;pure vm 
 * trunk/virtuemart/language                                  ;mixed 
 * trunk/virtuemart/plugins                                   ;mixed 
 * trunk/virtuemart/plugins/vmcustom                          ;pure vm 
 * trunk/virtuemart/plugins/vmpayment                         ;pure vm 
 * trunk/virtuemart/plugins/vmshipper                         ;pure vm 
 * trunk/virtuemart/modules/                                  ;mixed 

 The /trunk is your joomla base root = jRoot.  

 At best is if you have a joomla installation and make 1 checkout for back and frontend. Use for checkout on the joomla base root:  

 svn co https://dev.virtuemart.net/svn/virtuemart/trunk/virtuemart  

 After updating you should have the newest version of VirtueMart. Use *at best daily the "Install tables or if necessary update them" function* to have an up to date table layout, more explanation here [[Tools]] layout. 

 *Remember:* When you use *j1.7* you must *copy the plugins* into the right subfolder manually (weight_countries.php and weight_countries.xml in to a subfolder weight_countries). The reason is that, j1.5 expects the plugins in the folder of the "plugin family" like vmpayment. But j1.7 stores the plugins in the family folder and in its own folder for exampel vmpayment/paypal. 

 But j1.7 the plugins are stored in the family folder and in its own folder. for exampel vmpayment/paypal. 

 If you want to check the mails you may want to use hamster as mailserver 

 h2. Installation of virtuemart into your IDE 

 Now there are three ways. Be aware that the joomla installation should work. 

 h3. Use the virtuemart installer to set the right entries for using virtuemart.  

 My preferred method is at the end, the manual installation! But it needs manual executing of sql (provided though). So when you want to avoid phpmyadmin, try one of the first two ways. 

 try this steps: 
 # Transfer Joomla files in a directory (example: directory called Joomla) 
 # Install Joomla to create the database 
 # Install VM with the installer to install VM tables in the database [[Create virtuemart installer]]. 
 # Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files 
 # Checkout VM in an empty directory (You need to call that directory virtuemart to fit the name from SVN directory structure)), 
 # Transfer Joomla files in the directory called virtuemart 
 # change Joomla configuration file with the database name given on step 2, and give the correct tmp path. 

 Advantage: you can use the virtuemart installers 
 Disadvantage: you need to handle two different directory in your http directory and edit the configuration file 

 or use them: 
 This method just needs that you manually delete the virtuemart files after the installation to be able to perform the checkout (most svn clients dont overwrite existing files).  
 # This means download or create the installer of virtuemart and install it in joomla [[Create virtuemart installer]].  
 # Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files 
 # Before you can checkout the svn you should delete the files that are installed by the vm installer. Just delete this directories  
 * administrator/components/com_virtuemart  
 * components/com_virtuemart  
 * plugins/vmpayment 
 and to prevent warnings the language files named en-GB.com_virtuemart.ini in  
 * administrator\language  
 * language 
 4. AFTER that configure the SVN, directly into your joomla base directory. 

 Advantage: you can use the virtuemart installers 
 Disadvantage: you need to delete the right files 

 h3. Use manual installation and the right sql to inform joomla that virtuemart exists. 
 and here my preferred method 

 # Open your IDE and make a project (call it for exampel vm2) 
 # Set httpd directory to the parent directory (workspace) and best with subdomain like shop.localhost/vm2 
 # Checkout the svn 
 # copy joomla files into "workspace/vm2" , of course just merge the directories, when it is asking. There must be a merge, but no override of files. Note for mac users, use this tool to merge directories http://www.mucommander.com/ 
 # Use the right sql to inform joomla that virtuemart exists. 
 # Execute the following sql commands with phpmyadmin. Be aware that these sql assume that you use the prefix jos for your tables. 

 This is for virtuemart: 
 with joomla 1.5 
 <pre> 
 INSERT INTO `jos_components` (`id`, `name`, `link`, `menuid`, `parent`, `admin_menu_link`, `admin_menu_alt`, `option`, `ordering`, `admin_menu_img`, `iscore`, `params`, `enabled`) VALUES 
 (NULL, 'VirtueMart', 'option=com_virtuemart', 0, 0, 'option=com_virtuemart', 'VirtueMart', 'com_virtuemart', 0, '../components/com_virtuemart/assets/images/vmgeneral/menu_icon.png', 0, '', 1); 
 </pre> 

 with joomla 1.6 
 <pre> 
 INSERT INTO `jos_extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES  
 (10007, 'virtuemart', 'component', 'com_virtuemart', '', 0, 1, 0, 0, '{"legacy":true,"name":"VirtueMart","type":"component","creationDate":"May 2011","author":"The VirtueMart Development Team","copyright":"\\tCopyright (C) 2011 The Virtuemart Team. All rights reserved.","authorEmail":"team|at|virtuemart.net","authorUrl":"http:\\/\\/www.virtuemart.net","version":"2.0.0","description":"Online-Shop \\/ Complete E-Commerce system for Joomla 1.6","group":""}', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0); 
 </pre> 

 and  
 <pre> 
 INSERT INTO `jos_menu` (`id`, `menutype`, `title`, `alias`, `note`, `path`, `link`, `type`, `published`, `parent_id`, `level`, `component_id`, `ordering`, `checked_out`, `checked_out_time`, `browserNav`, `access`, `img`, `template_style_id`, `params`, `lft`, `rgt`, `home`, `language`, `client_id`) VALUES  
 (465, 'main', 'VirtueMart', 'virtuemart', '', 'virtuemart', 'index.php?option=com_virtuemart', 'component', 0, 1, 1, 10007, 0, 0, '0000-00-00 00:00:00', 0, 1, '../components/com_virtuemart/assets/images/vmgeneral/menu_icon.png', 0, '', 277, 278, 0, '', 1); 
 </pre> 


 *after that use "/administrator/index.php?option=com_virtuemart&view=updatesmigration" and choose there "Reset all tables 
 and install sampledata" to install the virtuemart tables.* 



 For information on adding the plugins, please refer to [[Plugin system]]. 

 For information on adding the modules, please refer to [[Modules system]].