]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/utils/mvc_utils.php
Release 6.5.0
[Github/sugarcrm.git] / include / utils / mvc_utils.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
38 function loadParentView($type)
39 {
40     if(file_exists('custom/include/MVC/View/views/view.'.$type.'.php'))
41     {
42         require_once('custom/include/MVC/View/views/view.'.$type.'.php');
43     } else if(file_exists('include/MVC/View/views/view.'.$type.'.php')) {
44         require_once('include/MVC/View/views/view.'.$type.'.php');
45     }
46 }
47
48
49 function getPrintLink()
50 {
51     if (isset($_REQUEST['action']) && $_REQUEST['action'] == "ajaxui")
52     {
53         return "javascript:SUGAR.ajaxUI.print();";
54     }
55     return "javascript:void window.open('index.php?{$GLOBALS['request_string']}',"
56          . "'printwin','menubar=1,status=0,resizable=1,scrollbars=1,toolbar=0,location=1')";
57 }
58
59
60 function ajaxBannedModules(){
61     $bannedModules = array(
62         'Calendar',
63         'Emails',
64         'Campaigns',
65         'Documents',
66         'DocumentRevisions',
67         'Project',
68         'ProjectTask',
69         'EmailMarketing',
70         'CampaignLog',
71         'CampaignTrackers',
72         'Releases',
73         'Groups',
74         'EmailMan',
75         "Administration",
76         "ModuleBuilder",
77         'Schedulers',
78         'SchedulersJobs',
79         'DynamicFields',
80         'EditCustomFields',
81         'EmailTemplates',
82         'Users',
83         'Currencies',
84         'Trackers',
85         'Connectors',
86         'Import_1',
87         'Import_2',
88         'Versions',
89         'vCals',
90         'CustomFields',
91         'Roles',
92         'Audit',
93         'InboundEmail',
94         'SavedSearch',
95         'UserPreferences',
96         'MergeRecords',
97         'EmailAddresses',
98         'Relationships',
99         'Employees',
100         'Import',
101         'OAuthKeys'
102     );
103
104     if(!empty($GLOBALS['sugar_config']['addAjaxBannedModules'])){
105         $bannedModules = array_merge($bannedModules, $GLOBALS['sugar_config']['addAjaxBannedModules']);
106     }
107     if(!empty($GLOBALS['sugar_config']['overrideAjaxBannedModules'])){
108         $bannedModules = $GLOBALS['sugar_config']['overrideAjaxBannedModules'];
109     }
110
111     return $bannedModules;
112 }
113
114 function ajaxLink($url)
115 {
116     global $sugar_config;
117     $match = array();
118     $javascriptMatch = array();
119
120     preg_match('/module=([^&]*)/i', $url, $match);
121     preg_match('/^javascript/i', $url, $javascriptMatch);
122
123     if(!empty($sugar_config['disableAjaxUI'])){
124         return $url;
125     }
126     else if(isset($match[1]) && in_array($match[1], ajaxBannedModules())){
127         return $url;
128     }
129     //Don't modify javascript calls.
130     else if (isset($javascriptMatch[0])) {
131         return $url;
132     }
133     else
134     {
135         return "?action=ajaxui#ajaxUILoc=" . urlencode($url);
136     }
137 }
138
139 ?>