Project

General

Profile

Setting up a Development Environment » History » Version 22

Max Milbers, 05/11/2011 07:20 PM

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
* Eclipse for php or aptana (very good PHP IDE and free!)
13 1 Rick Glunt
14 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.
15 1 Rick Glunt
16
h2. Setup an IDE and SVN
17
18
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. 
19
20
First setup up an IDE, I suggest you follow the explanations here: http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development 
21
22 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.
23 1 Rick Glunt
24 6 Max Milbers
h3. SVN-Basics: 
25 1 Rick Glunt
26 6 Max Milbers
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 curent active development. The tags folder is used for public releases. The branches folder can be used for code branches. 
27
28 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. 
29
30
There are 3 different folders for backend, frontend and modules 
31
32 17 Max Milbers
* trunk/virtuemart/administrator/components/com_virtuemart ;pure vm
33
* trunk/virtuemart/administrator/language                  ;mixed
34
* trunk/virtuemart/components/com_virtuemart ;             ;pure vm
35
* trunk/virtuemart/language                                ;mixed
36
* trunk/virtuemart/plugins                                 ;mixed
37
* trunk/virtuemart/plugins/vmpayment                       ;pure vm
38
* trunk/virtuemart/modules/                                ;mixed
39 1 Rick Glunt
40
The /trunk is your joomla base root = jRoot. 
41
42 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: 
43 1 Rick Glunt
44 2 Rick Glunt
svn co https://dev.virtuemart.net/svn/virtuemart/trunk/virtuemart 
45 1 Rick Glunt
46
After updating you should have the newest version of VirtueMart 
47
48
If you want to check the mails you may want to use hamster as mailserver
49
50 6 Max Milbers
h2. Installation of virtuemart into your IDE
51 1 Rick Glunt
52 22 Max Milbers
Now there are three ways. Be aware that the joomla installation should work.
53 6 Max Milbers
54
h3. Use the virtuemart installer to set the right entries for using virtuemart. 
55 1 Rick Glunt
56 22 Max Milbers
My preferred method is at the end! But it needs manual executing of sql (provided though). So when you want to avoid phpmyadmin, try one of the first two ways.
57
58
or use this steps
59
# Transfer Joomla files in a directory (example: directory called Joomla)
60
# Install Joomla to create the database
61
# Install VM with the installer to install VM tables in the database [[Create virtuemart installer]].
62
# Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files
63
# Checkout VM in an empty directory (You need to call that directory virtuemart to fit the name from SVN directory structure)),
64
# Transfer Joomla files in the directory called virtuemart
65
# change Joomla configuration file with the database name given on step 2, and give the correct tmp path.
66
67
Advantage: you can use the virtuemart installers
68
Disadvantage: you need to handle two different directory in your http directory and edit the configuration file
69
70
or use this:
71
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). 
72 10 Max Milbers
# This means download or create the installer of virtuemart and install it in joomla [[Create virtuemart installer]]. 
73 22 Max Milbers
# Download also the all-in-one payment plugin installer at http://dev.virtuemart.net/projects/virtuemart/files
74 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 
75
* administrator/components/com_virtuemart 
76 11 Max Milbers
* components/com_virtuemart 
77 6 Max Milbers
* plugins/vmpayment
78 1 Rick Glunt
and to prevent warnings the language files named en-GB.com_virtuemart.ini in 
79
* administrator\language 
80
* language 
81
# AFTER that configure the SVN, directly into your joomla base directory.
82 22 Max Milbers
83
Advantage: you can use the virtuemart installers
84
Disadvantage: you need to delete the right files
85
86
87
and here my preferred method
88
# Open your IDE and make a project (call it for exampel vm2)
89
# Set httpd directory to the parent directory (workspace) and best with subdomain like shop.localhost/vm2
90
# Checkout the svn
91
# 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)
92
# Use the right sql to inform joomla that virtuemart exists.
93
94 5 Max Milbers
95 6 Max Milbers
h3. Use the right sql to inform joomla that virtuemart exists.
96
97
# Just make a checkout directly into your joomla base directory. 
98 1 Rick Glunt
# Then execute the following sql commands with phpmyadmin. Be aware that these sql assume that you use the prefix jos for your tables.
99
100 21 Max Milbers
This is for virtuemart:
101 1 Rick Glunt
with joomla 1.5
102 21 Max Milbers
<pre>
103 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
104
(NULL, 'VirtueMart', 'option=com_virtuemart', 0, 0, 'option=com_virtuemart', 'VirtueMart', 'com_virtuemart', 0, '../components/com_virtuemart/shop_image/ps_image/menu_icon.png', 0, '', 1);
105 21 Max Milbers
</pre>
106 19 Max Milbers
107 1 Rick Glunt
with joomla 1.6
108 21 Max Milbers
<pre>
109 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 
110 21 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":"soeren|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);
111
</pre>
112
113
and 
114
<pre>
115
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 
116
(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);
117
</pre>
118 1 Rick Glunt
119 7 Max Milbers
For information on adding the plugins, please refer to [[Plugin system]].
120 17 Max Milbers
121 18 Max Milbers
For information on adding the modules, please refer to [[Modules system]].