SugerCrm: How to disable Ajax for a specific module

You also have option of disabling the AjaxUI for modules or across the entire system.
From 6.3 version, SugarCrm have admin section for disabling the AjaxUI on a per module basis (/index.php?module=Administration&action=ConfigureAjaxUI).
It can also be done manually in the config override with a line like:

$sugar_config['addAjaxBannedModules'][] = "Acounts";

That would cause links to the Acounts module in SugarCrm no longer attempt to load via the AjaxUI, and use the normal URL structure.

If You want, you have also option of totally disabling the AjaxUI with the following code.

$sugar_config['disableAjaxUI']

SugarCRM: adding custom field in subpanel

How to add custom field into subpanel? Belo is example of Contracts subpanel that is showing in Accounts module/detailview.

irst thing that needs to be done is define a new field in subpanel definition and make that field point to a class. We are edititing the following file custom/modules/Contracts/metadata/subpanels/ForAccounts.php and adding additional field fot showing with following code:

'mediaart_new_field' => array(
'vname' => 'LBL_NEW_FIELD',
'widget_class' => 'SubPanelMediaartNewField', //class name
'width' => '10%',
'custom_link_only' => true,
'displayHeaderCell' => false,
),

After we have added that part of code we need to create coresponding SugarWidgetSubPanel class in the following path
/include/generic/Sugarwidgets/SugarWidgetSubPanelMediaartNewField.php with code like this:

<?php if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/generic/SugarWidgets/SugarWidgetField.php');
class SugarWidgetSubPanelMediaartNewField extends SugarWidgetField //payattention to the name of class here
{

function displayHeaderCell(&$layout_def){
if(!empty($layout_def['displayHeaderCell']) && $layout_def['displayHeaderCell'] == false) {
return ' ';
}
else {
return parent::displayHeaderCell($layout_def);
}
}

function displayList(&$layout_def){
global $focus;
if(isset($layout_def['varname']))
{
$key = strtoupper($layout_def['varname']);
}
else
{
$key = $this->_get_column_alias($layout_def);
$key = strtoupper($key);
}
//////////////////////////////////////////////////////////////////////////
// Current ProductTemplate record (in current subpanel row)
$module = $layout_def['module'];
$record = $layout_def['fields']['ID']; //id contract
$contractName = $layout_def['fields']['NAME']; //name contract

 

$parent_id=$_REQUEST['record']; //id account-a
//Here you define your logic, my quary to the database and the return from this function will be displayed in subpanel
//So for example you can do
$db = DBManagerFactory::getInstance();
$query = "SELECT * FROM contracts WHERE id = '$record' and account_id = '$parent_id'";
$result = $db->query($query, true,"greska");
$result = $db->fetchByAssoc($result);
$quantity = $result['broj_slucajeva'];
return $quantity; //value of this cariable will be shown in subpanel
}
} ?>

Web form to Custom Module

I need capture info from web to my custom SugarCRM module.
After some modification i use „Web to lead“ script:
require_once('modules/MyModule/MyModule.php');
if (... we are saving custom Module ...) {
$myinfo = new MyModule();
$myinfo->phone = $_REQUEST['phone'];
$myinfo->fax = $_REQUEST['fax'];
$myinfo->email = $_REQUEST['email']; // etc...
$myinfo->save();
}

// done!
i f somebody have better soltion please write comment.