[Vtigercrm-developers] Fwd: Re: What is the best practice to create Extensions Store compatible vtiger 6.1 custom module?

Vic Cekvenich vic.cvc at gmx.com
Sun Aug 17 22:00:09 GMT 2014



-------- Original Message --------
Subject: 	Re: [Vtigercrm-developers] What is the best practice to create 
Extensions Store compatible vtiger 6.1 custom module?
Date: 	Mon, 14 Jul 2014 14:45:45 +0530
From: 	Salim <salimcmd at gmail.com>
Reply-To: 	vtigercrm-developers at lists.vtigercrm.com
To: 	vtigercrm-developers at lists.vtigercrm.com



How about running a Workflow with Custom Function?.

https://wiki.vtiger.com/index.php/Invoke_Custom_Function


On 14 July 2014 14:37, SIAM Translations <info at siam-translations.com 
<mailto:info at siam-translations.com>> wrote:

    Got impression that extension store will be interesting place to
    surf :-)

    Andrew



    On Mon, Jul 14, 2014 at 3:47 PM, Holbok István <holbok at gmail.com
    <mailto:holbok at gmail.com>> wrote:

        Dear Vtiger Team,

        I am in the vtiger custom module development and there is an
        interesting question:

        This Custom module is related to the (standard) Contacts module
        and when some fields were changed in the Contacts module record,
        accordingly some change should be done in the related Custom
        module record.

        It is easy to manage with the following:
        (1) Register an Eventhandler for the Contacts module (note:
        there is not any event registered for the Contacts module in the
        standard install of vtiger 6.1. SVN 14164)

        Vtiger_Event::register(
              'Contacts','vtiger.entity.aftersave',
              'ContactsHandler','modules/Contacts/ContactsHandler.php'
        );
        Vtiger_Event::register(
             'Contacts','vtiger.entity.beforesave',
             'ContactsHandler','modules/Contacts/ContactsHandler.php'
        );

        This action can be done during postinstall action of the Custom
        module.

        And
        (2) Append the already existing
        'modules/Contacts/ContactsHandler.php' file with the following
        class:
        class ContactsHandler extends VTEventHandler {
              function handleEvent($eventName, $data) {
                      if($eventName == 'vtiger.entity.beforesave') {
                              // Entity is about to be saved, take
        required action
                      }
                      if($eventName == 'vtiger.entity.aftersave') {
                              // Entity has been saved, take next action
                      }
              }
        }

        This will work without any doubt but in this way I have to
        modify a core file: 'modules/Contacts/ContactsHandler.php' and
        it could make some troubles for the Estension Store Custom module.

        *The Question is:* To avoid modifying core files, will it work,
        if I will put the custom Contacts handler into Custom module
        directory?

        The step 1, registering the eventhandler file in an other place:
        Vtiger_Event::register(
              'Contacts','vtiger.entity.aftersave',
            
          'Contacts*Custommodule*Handler','modules/*Custommodule*/Contacts*Custommodule*Handler.php'
        );
        Vtiger_Event::register(
             'Contacts','vtiger.entity.beforesave',
            
        'Contacts*Custommodule*Handler','modules/*Custommodule*/Contacts*Custommodule*Handler.php'
        );

        The step 2, create a handler file in the Custommodule directory:

        modules/*Custommodule*/Contacts*Custommodule*Handler.php
        <?php class Contacts*Custommodule*Handler extends VTEventHandler {
              function handleEvent($eventName, $data) {
                      if($eventName == 'vtiger.entity.beforesave') {
                              // Entity is about to be saved, take
        required action
        // Some code to handle Contacts related actions in the related
        module.
                      }
                      if($eventName == 'vtiger.entity.aftersave') {
                              // Entity has been saved, take next action
        // Some code to handle Contacts related actions in the related
        module.
                      }
              }
        }
        ?>

        Summary: Can I register an event handler with any name in any place?
        Will it triggered on a proper time?

        Kindest regards:
        István

        -- 
        üdvözlettel:

        *Holbok István*

        +3670-342-0900 <tel:%2B3670-342-0900>
        *e-mail:* holbok at gmail.com <mailto:holbok at gmail.com>
        *SkyPe:* holboki


        _______________________________________________
        http://www.vtiger.com/



    _______________________________________________
    http://www.vtiger.com/




-- 
Muhammed Abdul Salim
-------------- next part --------------
_______________________________________________
http://www.vtiger.com/


More information about the vtigercrm-developers mailing list