]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/DynamicFields/FieldViewer.php
Release 6.5.0
[Github/sugarcrm.git] / modules / DynamicFields / FieldViewer.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
5  * 
6  * This program is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  * 
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
16  * details.
17  * 
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  * 
23  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
26  * The interactive user interfaces in modified source and object code versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  * 
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the "Powered by
32  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33  * technical reasons, the Appropriate Legal Notices must display the words
34  * "Powered by SugarCRM".
35  ********************************************************************************/
36
37 class FieldViewer{
38         function FieldViewer(){
39                 $this->ss = new Sugar_Smarty();
40         }
41         function getLayout($vardef){
42
43                 if(empty($vardef['type']))$vardef['type'] = 'varchar';
44                 $mod = return_module_language($GLOBALS['current_language'], 'DynamicFields');
45                 $this->ss->assign('vardef', $vardef);
46                 $this->ss->assign('MOD', $mod);
47                 $this->ss->assign('APP', $GLOBALS['app_strings']);
48                 //Only display range search option if in Studio, not ModuleBuilder
49                 $this->ss->assign('range_search_option_enabled', empty($_REQUEST['view_package']));
50                 
51                 $GLOBALS['log']->debug('FieldViewer.php->getLayout() = '.$vardef['type']);
52                 switch($vardef['type']){
53                         case 'address':
54                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/address.tpl');
55                         case 'bool':
56                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/bool.tpl');
57                         case 'int':
58                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/int.tpl');
59                         case 'float':
60                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/float.tpl');
61                         case 'decimal':
62                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/float.tpl');
63                         case 'date':
64                             require_once('modules/DynamicFields/templates/Fields/Forms/date.php');
65                                 return get_body($this->ss, $vardef);
66                         case 'datetimecombo':
67                         case 'datetime':
68                             require_once('modules/DynamicFields/templates/Fields/Forms/datetimecombo.php');
69                                 return get_body($this->ss, $vardef);
70                         case 'enum':
71                                 require_once('modules/DynamicFields/templates/Fields/Forms/enum2.php');
72                                 return get_body($this->ss, $vardef);
73                         case 'multienum':
74                                 require_once('modules/DynamicFields/templates/Fields/Forms/multienum.php');
75                                 return get_body($this->ss, $vardef);
76                         case 'radioenum':
77                                 require_once('modules/DynamicFields/templates/Fields/Forms/radioenum.php');
78                                 return get_body($this->ss, $vardef);
79                         case 'html':
80                                 require_once('modules/DynamicFields/templates/Fields/Forms/html.php');
81                                 return get_body($this->ss, $vardef);
82                         case 'currency':
83                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/currency.tpl');
84                         case 'relate':
85                                 require_once('modules/DynamicFields/templates/Fields/Forms/relate.php');
86                                 return get_body($this->ss, $vardef);
87                         case 'parent':
88                                 require_once('modules/DynamicFields/templates/Fields/Forms/parent.php');
89                                 return get_body($this->ss, $vardef);
90                         case 'text':
91                                 return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/text.tpl');
92                         case 'encrypt':
93                                 require_once('modules/DynamicFields/templates/Fields/Forms/encrypt.php');
94                                 return get_body($this->ss, $vardef);
95                         case 'iframe':
96                                 require_once('modules/DynamicFields/templates/Fields/Forms/iframe.php');
97                                 return get_body($this->ss, $vardef);
98                         case 'url':
99                                 require_once('modules/DynamicFields/templates/Fields/Forms/url.php');
100                                 return get_body($this->ss, $vardef);
101                         case 'phone:':
102                                 require_once('modules/DynamicFields/templates/Fields/Forms/phone.php');
103                                 return get_body($this->ss, $vardef);
104                         default:
105                                 $file = false;
106                                 if(file_exists('custom/modules/DynamicFields/templates/Fields/Forms/' . $vardef['type'] . '.php')){
107                                         $file = 'custom/modules/DynamicFields/templates/Fields/Forms/' . $vardef['type'] . '.php';
108                                 } elseif(file_exists('modules/DynamicFields/templates/Fields/Forms/' . $vardef['type'] . '.php')){
109                                         $file = 'modules/DynamicFields/templates/Fields/Forms/' . $vardef['type'] . '.php';
110                                 }
111                                 if(!empty($file)){
112                                         require_once($file);
113                                         return get_body($this->ss, $vardef);
114                                 }else{ 
115                                         return $this->ss->fetch('modules/DynamicFields/templates/Fields/Forms/varchar.tpl');
116                                 }
117                 }
118         }
119
120 }