Project

General

Profile

Setting up a Development Environment » History » Version 44

Max Milbers, 08/15/2013 11:35 AM

1 1 Rick Glunt
h1. Setting up a Development Environment
2
3
h2. Introduction
4
5
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. 
6
7
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. 
8
9
The following programs are recommended for working with VirtueMart and synchronizing the working directory with the local SVN repository: 
10
11 16 Max Milbers
* SmartSVN or TortoiseSVN http://tortoisesvn.net/downloads.html
12 42 Max Milbers
* Eclipse for php or aptana (very good PHP IDE and free!). If you can spend some bucks, we suggest to use phpstorm. The whole core team is using this PHP IDE best suitable for joomla. Use the free download http://www.jetbrains.com/phpstorm/download/
13 41 Max Milbers
* Notepad2 for windows as a nice and fast file editor http://www.flos-freeware.ch/notepad2.html
14 1 Rick Glunt
15 12 Max Milbers
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.
16 1 Rick Glunt
17
h2. Setup an IDE and SVN
18
19
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. 
20
21 23 Max Milbers
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.
22 1 Rick Glunt
23 23 Max Milbers
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.
24
25
Setup up an IDE, I suggest you follow the explanations here: http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development 
26
27 15 Oscar van Eijk
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.
28 1 Rick Glunt
29 6 Max Milbers
h3. SVN-Basics: 
30 1 Rick Glunt
31 27 Valérie Isaksen
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. 
32 6 Max Milbers
33 1 Rick Glunt
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. 
34
35 33 Max Milbers
There are 3 different folders for backend, frontend, modules, and plugins
36 17 Max Milbers
37 1 Rick Glunt
* trunk/virtuemart/administrator/components/com_virtuemart ;pure vm
38 17 Max Milbers
* trunk/virtuemart/administrator/language                  ;mixed
39 23 Max Milbers
* trunk/virtuemart/components/com_virtuemart               ;pure vm
40 17 Max Milbers
* trunk/virtuemart/language                                ;mixed
41 1 Rick Glunt
* trunk/virtuemart/plugins                                 ;mixed
42 33 Max Milbers
* trunk/virtuemart/plugins/vmcustom                        ;pure vm
43 1 Rick Glunt
* trunk/virtuemart/plugins/vmpayment                       ;pure vm
44 36 Valérie Isaksen
* trunk/virtuemart/plugins/vmshipment                      ;pure vm
45 17 Max Milbers
* trunk/virtuemart/modules/                                ;mixed
46 1 Rick Glunt
47
The /trunk is your joomla base root = jRoot. 
48
49 6 Max Milbers
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: 
50 2 Rick Glunt
51 43 Max Milbers
for vm2.1.x svn co https://dev.virtuemart.net/svn/virtuemart/trunk/virtuemart 
52
53 35 Max Milbers
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]]
54 33 Max Milbers
55 38 Max Milbers
*Remember:* When you use *j1.5* you must *copy the plugins* from the subfolder manually (weight_countries.php and weight_countries.xml in to the parent direcotry). 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.
56 1 Rick Glunt
57
If you want to check the mails you may want to use hamster as mailserver
58
59
h2. Installation of virtuemart into your IDE
60 6 Max Milbers
61
Now there are three ways. Be aware that the joomla installation should work.
62 1 Rick Glunt
63
h3. Use the virtuemart installer to set the right entries for using virtuemart. 
64
65 23 Max Milbers
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.
66 22 Max Milbers
67 23 Max Milbers
try this steps:
68 22 Max Milbers
# Transfer Joomla files in a directory (example: directory called Joomla)
69
# Install Joomla to create the database
70
# Install VM with the installer to install VM tables in the database [[Create virtuemart installer]].
71
# Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files
72
# Checkout VM in an empty directory (You need to call that directory virtuemart to fit the name from SVN directory structure)),
73
# Transfer Joomla files in the directory called virtuemart
74 1 Rick Glunt
# change Joomla configuration file with the database name given on step 2, and give the correct tmp path.
75 22 Max Milbers
76
Advantage: you can use the virtuemart installers
77
Disadvantage: you need to handle two different directory in your http directory and edit the configuration file
78
79 23 Max Milbers
or use them:
80 22 Max Milbers
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). 
81 6 Max Milbers
# This means download or create the installer of virtuemart and install it in joomla [[Create virtuemart installer]]. 
82 1 Rick Glunt
# Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files
83 6 Max Milbers
# Before you can checkout the svn you should delete the files that are installed by the vm installer. Just delete this directories 
84 1 Rick Glunt
* administrator/components/com_virtuemart 
85
* components/com_virtuemart 
86 6 Max Milbers
* plugins/vmpayment
87 1 Rick Glunt
and to prevent warnings the language files named en-GB.com_virtuemart.ini in 
88
* administrator\language 
89 23 Max Milbers
* language
90
4. AFTER that configure the SVN, directly into your joomla base directory.
91
92 22 Max Milbers
Advantage: you can use the virtuemart installers
93
Disadvantage: you need to delete the right files
94
95 23 Max Milbers
h3. Use manual installation and the right sql to inform joomla that virtuemart exists.
96 1 Rick Glunt
and here my preferred method
97 24 Max Milbers
98 22 Max Milbers
# Open your IDE and make a project (call it for exampel vm2)
99 5 Max Milbers
# Set httpd directory to the parent directory (workspace) and best with subdomain like shop.localhost/vm2
100 6 Max Milbers
# Checkout the svn
101 28 Max Milbers
# 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/
102 6 Max Milbers
# Use the right sql to inform joomla that virtuemart exists.
103 40 Max Milbers
# Execute the following sql commands with phpmyadmin. Be aware that these sql assume that you use the prefix jos for your tables. *for joomla 2.5 use the discover feature !!*
104 1 Rick Glunt
105 21 Max Milbers
This is for virtuemart:
106 1 Rick Glunt
with joomla 1.5
107 21 Max Milbers
<pre>
108 1 Rick Glunt
INSERT INTO `jos_components` (`id`, `name`, `link`, `menuid`, `parent`, `admin_menu_link`, `admin_menu_alt`, `option`, `ordering`, `admin_menu_img`, `iscore`, `params`, `enabled`) VALUES
109 25 Max Milbers
(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);
110 21 Max Milbers
</pre>
111 19 Max Milbers
112 37 Max Milbers
with joomla 1.6/j1.7
113 21 Max Milbers
<pre>
114 1 Rick Glunt
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 
115 32 Max Milbers
(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);
116 21 Max Milbers
</pre>
117
118
and 
119
<pre>
120
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 
121
(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);
122
</pre>
123 39 Max Milbers
124
125 29 Max Milbers
126 30 Max Milbers
*after that use "/administrator/index.php?option=com_virtuemart&view=updatesmigration" and choose there "Reset all tables
127
and install sampledata" to install the virtuemart tables.*
128 29 Max Milbers
129 26 Max Milbers
130
131 7 Max Milbers
For information on adding the plugins, please refer to [[Plugin system]].
132 17 Max Milbers
133 18 Max Milbers
For information on adding the modules, please refer to [[Modules system]].