grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026deprecated($deprecatedMessage); } else { trigger_error($deprecatedMessage, E_USER_DEPRECATED); } self::__construct(); } public static function fixupFieldType($field) { switch ($field) { case 'double': case 'decimal': $field = 'float'; break; case 'uint': case 'ulong': case 'long': case 'short': case 'tinyint': $field = 'int'; break; case 'date': $field = 'datetime'; break; case 'url': $field = 'link'; break; case 'varchar': $field = 'base'; break; } return ucfirst($field); } /** * return the singleton of the SugarField * @param $field * @param bool $returnNullIfBase * @return mixed */ public static function getSugarField($field, $returnNullIfBase=false) { static $sugarFieldObjects = array(); $field = self::fixupFieldType($field); $field = ucfirst($field); if (!isset($sugarFieldObjects[$field])) { //check custom directory if (file_exists('custom/include/SugarFields/Fields/' . $field . '/SugarField' . $field. '.php')) { $file = 'custom/include/SugarFields/Fields/' . $field . '/SugarField' . $field. '.php'; $type = $field; //else check the fields directory } else { if (file_exists('include/SugarFields/Fields/' . $field . '/SugarField' . $field. '.php')) { $file = 'include/SugarFields/Fields/' . $field . '/SugarField' . $field. '.php'; $type = $field; } else { // No direct class, check the directories to see if they are defined if ($returnNullIfBase && !is_dir('custom/include/SugarFields/Fields/'.$field) && !is_dir('include/SugarFields/Fields/'.$field)) { return null; } $file = 'include/SugarFields/Fields/Base/SugarFieldBase.php'; $type = 'Base'; } } require_once($file); $class = 'SugarField' . $type; //could be a custom class check it $customClass = 'Custom' . $class; if (class_exists($customClass)) { $sugarFieldObjects[$field] = new $customClass($field); } else { $sugarFieldObjects[$field] = new $class($field); } } return $sugarFieldObjects[$field]; } /** * Returns the smarty code to be used in a template built by TemplateHandler * The SugarField class is choosen dependant on the vardef's type field. * * @param parentFieldArray string name of the variable in the parent template for the bean's data * @param vardef vardef field defintion * @param displayType string the display type for the field (eg DetailView, EditView, etc) * @param displayParam parameters for displayin * available paramters are: * * labelSpan - column span for the label * * fieldSpan - column span for the field */ public static function displaySmarty($parentFieldArray, $vardef, $displayType, $displayParams = array(), $tabindex = 1) { $string = ''; $displayTypeFunc = 'get' . $displayType . 'Smarty'; // getDetailViewSmarty, getEditViewSmarty, etc... // This will handle custom type fields. // The incoming $vardef Array may have custom_type set. // If so, set $vardef['type'] to the $vardef['custom_type'] value if (isset($vardef['custom_type'])) { $vardef['type'] = $vardef['custom_type']; } if (empty($vardef['type'])) { $vardef['type'] = 'varchar'; } $field = self::getSugarField($vardef['type']); if (!empty($vardef['function'])) { $string = $field->displayFromFunc($displayType, $parentFieldArray, $vardef, $displayParams, $tabindex); } else { $string = $field->$displayTypeFunc($parentFieldArray, $vardef, $displayParams, $tabindex); } return $string; } }