Una de les grans virtuts de SugarCRM es que et relaciona diferents moduls d’una forma molt intuitiva. Una de les millors funcionalitat es que et permet obrir una finestra emergent amb totes els registres per tal de poder-los relacionar amb el registre actual. De totes formes, si el registre que vols relacionar no existeix, no et permet una forma fàcil de relacionar-los. En aquesta entrada explicarem com modificar les finestres emergents per tal de que surti un botó per crear un nou registre directament des de la mateixa finestra. A més a més, farem aquestes modificacions per a que siguin “upgrade-safe”, es a dir, que es mantinguin en les pròximes actualitzacions de SugarCRM.
El primer que em de fer es copiar la definició de la cerca al directori custom/ així, totes les modificacions es mantindran a les pròximes actualtizacions. Des del mateix servidor hem d’executar:
cp modules/<Modul>/metadata/popupdefs.php custom/modules/<Modul>/metadata/popupdefs.php
Si les carpetes no existeixen les haurem de crear.
Una vegada hem copiat la definició de la cerca editarem el fitxer /custom/modules/<Modul>/metadata/popupdefs.php afegint les següents línies:
‘create’ =>
array(‘formBase’ => ‘<Modul>FormBase.php’,
‘formBaseClass’ => ‘<Modul>FormBase’,
‘getFormBodyParams’ => array(”,”,'<Modul>Save’),
‘createButton’ => ‘Nuevo’,
),
Abans de la linia que comensa per
‘serachdefs’ => array (
Desprès d’aquesta modificació hem de crear el fitxer <Modul>FormBase.php dins de la carpeta modules/<Modul>/ . Aquest fitxer ha de tenir el seguent contingut:
<?php
require_once(‘include/SugarObjects/forms/FormBase.php’);
class <Modul>FormBase extends FormBase {
var $moduleName = ‘<Modul>’;
var $objectName = ‘<Modul>’;function handleSave($prefix, $redirect=true, $useRequired=false){
require_once(‘include/formbase.php’);
$focus = new grl_Domiciliacion();
$focus = populateFromPost($prefix, $focus);
$focus->save();
}}
?>
NOTA: En totes les modificacions s’ha de modificar el text <Modul> pel nom del modul en que estem treballant.