Internals

UI Control Flow

There are two essential flow that controls UI (view & action).

View - expects the outcome to be HTML / Redirection.

Action - expects the outcome to be JSON (specially useful for Ajax)

Example:

index.php?module=Leads&view=List

Leads/views/List.php

If this is not found - the fallback file would be:

Vtiger/views/List.php

Similarly:

index.php?module=MyModule&action=Save

Leads/actions/Save.php

If this is not found - the fallback file would be:

Vtiger/actions/Save.php

UI Request Processing

main/Web_UI invokes the appropriate view / action class method in the following order:

checkPermission($request)

Handle custom permission control before control proceeds with processing. Authentication & User access to module would have happened before to this call.

preProcess($request)

Invocation is suppressed if the request is made via AJAX. Generally this method emits the Header portion of the page.

process($request)

Invoked for both normal / ajax request.

postProcess($request)

Invocation is suppressed if the request is made via AJAX. Generally this method emits the Footer portion of the page.

Webservice Control Flow

Note

Yet to be documented - please be patient.

Eventing

Note

Yet to be documented - please be patient.

Resource File Paths

getHeaderScripts & getHeaderCss supports shorthand syntax for specifying the dependent resources to be loaded for the client-side.

Reference Type

Format

Resolves To

Layout Relative

modules.Vtiger.resources.List

layouts/<current_layout>/modules/Vtiger/resources/List

Absolute

~/libraries/fullcalendar/fullcalendar.css

<vtigercrm>/libraries/fullcalendar/fullcalendar.css

Remote

http://remote.server.tld/js/function.js

as is.