Hello World

This example will walk you through the steps of developing a simple “Hello World” extension on Vtiger 7 Framework.

Pre-requisites

  • Vtiger 7 installed on your server (assuming it would be used for development).

  • PHP CLI is setup to be invoked from the command prompt or terminal.

  • Gone through module development docs: Develop Extensions For Vtiger

Terminology

  • <vtigercrm> - root-directory / document root where Vtiger 7 is installed.

  • http://<vtigercrm> - web entry access.

Note

You can download “HelloWorld-v1.zip” from here.

Step 1: Create files

Switch to your working directory (say.. Desktop) and create the following files.

manifest.xml
modules/HelloWorld/HelloWorld.php
modules/HelloWorld/views/List.php
languages/en_us/HelloWorld.php
layouts/v7/modules/HelloWorld/List.tpl

Step 2: manifest.xml

Edit manifest.xml and fill in basic information required for getting the extension installed in Vtiger.

<?xml version="1.0"?>
<module>
        <type>extension</type>
        <name>HelloWorld</name>
        <label>Hello World</label>
        <parent>Tools</parent>
        <version>1.0</version>
        <dependencies>
                <vtiger_version>7.0.0</vtiger_version>
                <vtiger_max_version>7.*</vtiger_max_version>
        </dependencies>
</module>

Step 3: Module Class

Update the module class file (modules/HelloWorld/HelloWorld.php).

<?php
class HelloWorld {}

Note

It is recommended to have this file - although its blank will be useful later.

Step 4: View Class

Edit modules/HelloWorld/views/List.php

<?php

class HelloWorld_List_View extends Vtiger_Index_View {

        public function process(Vtiger_Request $request) {
                $viewer = $this->getViewer($request);
                $viewer->view('List.tpl', $request->getModule());
        }

}

Note

Default entry for the module from the menu is set to List View. We can customize this for every module.

Step 5: View template

Edit layouts/v7/modules/HelloWorld/List.tpl

<h1>{'Hello World'|vtranslate:$MODULE}</h1>
<h4>{'LBL_WELCOME'|vtranslate:$MODULE}</h4>

Step 6: Default i18n

Edit languages/en_us/HelloWorld.php

<?php

$languageStrings = array(
        'Hello World' => 'Hello World!',
        'LBL_WELCOME' => 'A very warm welcome to you'
);

Note

Add all the string constants used by the module - required for i18n support.

Step 7: Package files

zip -r HelloWorld-v1.zip manifest.xml modules/HelloWorld/HelloWorld.php modules/HelloWorld/views/List.php languages/en_us/HelloWorld.php layouts/v7/modules/HelloWorld/List.tpl

Refer to Package Structure

Step 8: Install in Vtiger

You can import through Module Manager UI.

Note

Importing through CLI script is given below.

cd <vtigercrm>
php -f ImportHelloWorld.php

ImportHelloWorld.php should use vtlib API to import the package.

<?php
require_once 'vendor/autoload.php';
require_once 'vtlib/Vtiger/Module.php';
require_once 'vtlib/Vtiger/Package.php';

$Vtiger_Utils_Log = true;

$package = new Vtiger_Package();
$package->import('/path/to/HelloWorld-v1.zip'); // Can be any-where on your server.

The module is now installed and ready, you can find it under All > Tools section.