Create a simple module for Vtiger CRM
Here I want to explain how to create a simple installable module for vtiger CRM.
For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:
<?xml version="1.0"?>
<module>
<type>extension</type>
<name>testModule</name>
<label>testModule</label>
<parent>Tools</parent>
<version>1.0</version>
<dependencies>
<vtiger_version>5.2.1</vtiger_version>
</dependencies>
</module>
The module folder structure:
testModule->
modules->testModule->index.php
modules->testModule->language->en_us.lang.php
manifest.xml
Write the index file for our purpose. Here is an example to print the 'Hello World' when clicking the module:
<?php
include_once('language/en_us.lang.php');
echo "<font color=red>".HELLO_WORLD."</font>";
?>
Contents of language/en_us.lang.php:
<?php
define('HELLO_WORLD','Hello World');
?>
Then we have to create a .zip archive file for installation via vtiger module manager. Create the 'testModule.zip' file inside the module folder 'testModule' and compress the contents 'modules' and 'manifest.xml' to the 'testModule.zip'.
Then install the zip file via vtiger 'Settings->Module Manger' menu. Go to custom modules tab and click on the 'Import New' button to install it.
After installation you can see the module under 'Tools' menu. The content will be:
Enjoy creating more modules!
<?php
define('HELLO_WORLD','Hello World');
?>
testModule->
modules->testModule->index.php
modules->testModule->language->en_us.lang.php
manifest.xml
For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:Here I want to explain how to create a simple installable module for vtiger CRM.
For creating a new installable module named 'testModule' for vtiger, we should have an xml file named: 'manifest.xml'. Contents of this file:
Appreciate the
Appreciate the recommendation. Let me try it out.
For anybody in the future
For anybody in the future that may happen to get slightly lost in this, I finally managed to figure it out a bit.
First, Shobin, thanks again for having a very simple tutorial on this... The others jump into something quite complex when all many of us want is a good starting point to work our way up with=)
en_us.lang.php must look like this:
$mod_strings = Array('HELLO_WORLD' => 'Hello World');
If you are having trouble getting this module installed, do *not* create the source code or directory in the vTiger modules directory. Create them somewhere else entirely. vTiger will try to create the module itself when you import it! This was the source of many of my problems and I'm guessing the same thing causing everybody else problems.
Make sure you use the module folder structure exactly:
1) Create a directory called testModule
2) Inside that directory, create manifest.xml and directory called modules
3) Inside the modules directory, create another directory called testModule
4) Inside the new testModule directory (Should now look like testModule->modules->testModule), create index.php and a new directory called language.
5) Inside the language directory, create a file called en_us.lang.php
That should be it. The big thing is to make sure this wasn't created inside vTiger! Hope this helps people in the future!
please help!!!! how can i
please help!!!!
how can i create a new module using vtlib. the procedure they have given in the vtlib pdf doesnt exactly tell us which file we should edit or use. am using vtigercrm 5.3.0
kind regards
I liked it, and I thought
I liked it, and I thought there were a lot of subtleties and nuances that you don’t get right away. But that’s just my opinion, you’re completely entitled to yours.
Hi Ryan, How's it
Hi Ryan,
How's it going?
Thanks for this wonderful post.
I followed your instruction but when the time comes for me to import I got this errors:
dUnzip2: File 'manifest.xml' is not compressed in the zip.
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "test/vtlib/manifest-1311051151.xml" in C:\Program Files (x86)\vtigercrm-5.2.1\apache\htdocs\vtigerCRM\vtlib\Vtiger\PackageImport.php on line 54
Warning: unlink(test/vtlib/manifest-1311051151.xml) [function.unlink]: No such file or directory in C:\Program Files (x86)\vtigercrm-5.2.1\apache\htdocs\vtigerCRM\vtlib\Vtiger\PackageImport.php on line 55
This is how I made my folder structure:
newModule - > modules -> newModules -> index.php
newModule - > modules -> newModules -> language -> en_us.lang.php
newModule -> manifesst.xml
Your quick response will be appreciated.
Hamm
Hi, I had the same problem so
Hi,
I had the same problem so downloaded some other modules to see if I could find what was causing it. Turns out you need to don't zip the initial directory. The base files in the zip should be the modules directory and the manifest.xml file. This solved the problem for me. Hope it helps you!
Hey Shobin, thanks for the
Hey Shobin, thanks for the tutorial! I was pretty excited to finally find an easy module creation tutorial (Payslip wasn't exactly easy, and I still have no clue how it works), but I am getting a white screen when I click on testModule. Any clue why this would be happening? I followed your instructions to the letter. vTiger created my testModule directory in modules. index.php is in there, and en_us.lang.php is in the language directory. Everything seems to be as it should, but that stupid white screen shows up. There is a serious lack of help in the module development, so I really hope to hear from you!
Thanks again Shobin
Tutorial is good, but change
Tutorial is good, but change the content of en_us.lang.php file in the form of array... its working for me thnk u so much...:) :)
Hi Ryan, Thanks for your
Hi Ryan,
Thanks for your comment and it is very happy to hear that this post is helpful to someone. Now lets come to your issue. Please edit the /etc/php.ini file in your machine and change the value as: 'error_reporting = E_ALL' and 'display_errors = On'. Then try to click on the module, this will surely display the errors if exists in the module. If it is not helpful, you can send me the index.php file then I can look into it.
Thanks and Regards.
Hi Ryan: I just do it all,
Hi Ryan: I just do it all, but in the upload in Module Manager, in Vtiger 6.0.0 Beta gives a "failed" Message. I update the version in manifest.xml but nothing new happens, just the "failed" Message. Any Help will be appreciated Regards Mario Ramirez