Create a simple module for Vtiger CRM

Shobin Markose's picture

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:
Anonymous's picture

Hi, I did all changes in new

Hi,

I did all changes in new module still getting error while uploading module

"Invalid file provided for module import! Try Again."

Error is coming might be because of vtiger version i am using.
My vtiger version is 5.4.0

Anonymous's picture

Hello, I created a module for

Hello,
I created a module for vtiger But when i upload this module in the module manager i got a error like:
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-1369213987.xml" in G:\wamp\www\crmdev\vtlib\Vtiger\PackageImport.php on line 54

Warning: unlink(test/vtlib/manifest-1369213987.xml) [function.unlink]: No such file or directory in G:\wamp\www\crmdev\vtlib\Vtiger\PackageImport.php on line 55

What is the error? how can i fix this?

Anonymous's picture

just put all content in .zip

just put all content in .zip file

ex:
test.zip->manifest.xml
test.zip->modules->index.php

Anonymous's picture

I have done the job but when

I have done the job but when clicking on testModule it is giving following error

Warning: require(modules/Events/language/en_us.lang.php) [function.require]: failed to open stream: No such file or directory in C:\Program Files\vtigercrm-5.4.0\apache\htdocs\vtigerCRM\include\utils\utils.php on line 498.

I am using windows 7 and accesing the testModule folder outside of Vtiger installation folder.

Please help. Awaiting an early reply.

Regards
Sanjib

program pit's picture

Hello great blog! Does

Hello great blog! Does running a blog similar to this take
a lot of work? I've absolutely no understanding of coding however I had been
hoping to start my own blog soon. Anyway, if you have any suggestions or
tips for new blog owners please share. I know this is off
topic nevertheless I just needed to ask. Thank you!

Rostam's picture

Hi Shobin, I just saw your

Hi Shobin, I just saw your tutorial. Though it's a few years old I want to thank for this! It's much more understandable than vtigers payslip tutorial.

If you could answer me one question I am fighting with would be so great.

How can I integrate the new module inside the Projects Module? It should look like all the other Modules in Projects->More Information. So that right above Project Tasks there is the modules title "testModule" and opens just like all the other ones...

Couldn't find a solution for this until now... and I must say I am very new to vtiger.

Appreciate your help.

Regards from Germany :-)

Anonymous's picture

i followed above instruction

i followed above instruction and created all files and folders but when i installed module its generate a
"dUnzip2: File 'manifest.xml' is not compressed in the zip." error and i also added below code in language file

<?php
$mod_strings 
= Array('HELLO_WORLD' => 'Hello World');
?>

Can u please help me

Anonymous's picture

Invalid file provided for

Invalid file provided for module import! Try Again. I have created as per above information but still it says invalid file..

please help me.

walter's picture

Hi, thanks for your

Hi,
thanks for your contribution on creating a new module, am in the process of creating one and am stuck in the middle of the process after doing all you had stated in importing the module in the module manager but i get an error "invalid file provided for module import! try again"...i will grateful appreciate your help.thank you.

Anonymous's picture

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!