]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/modules.php
Release 6.5.0
[Github/sugarcrm.git] / include / modules.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM Community Edition is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38 /*********************************************************************************gf
39
40  * Description:  Executes a step in the installation process.
41  ********************************************************************************/
42
43 $moduleList = array();
44 // this list defines the modules shown in the top tab list of the app
45 //the order of this list is the default order displayed - do not change the order unless it is on purpose
46 $moduleList[] = 'Home';
47 $moduleList[] = 'Calendar';
48 $moduleList[] = 'Calls';
49 $moduleList[] = 'Meetings';
50 $moduleList[] = 'Tasks';
51 $moduleList[] = 'Notes';
52 $moduleList[] = 'Leads';
53 $moduleList[] = 'Contacts';
54 $moduleList[] = 'Accounts';
55 $moduleList[] = 'Opportunities';
56
57 $moduleList[] = 'Emails';
58 $moduleList[] = 'Campaigns';
59 $moduleList[] = 'Prospects';
60 $moduleList[] = 'ProspectLists';
61
62 $moduleList[] = 'Documents';
63 $moduleList[] = 'Cases';
64 $moduleList[] = 'Project';
65 $moduleList[] = 'Bugs';
66
67
68 // this list defines all of the module names and bean names in the app
69 // to create a new module's bean class, add the bean definition here
70 $beanList = array();
71 //ACL Objects
72 $beanList['ACLRoles']       = 'ACLRole';
73 $beanList['ACLActions']     = 'ACLAction';
74 //END ACL OBJECTS
75 $beanList['Leads']          = 'Lead';
76 $beanList['Cases']          = 'aCase';
77 $beanList['Bugs']           = 'Bug';
78 $beanList['ProspectLists']      = 'ProspectList';
79 $beanList['Prospects']  = 'Prospect';
80 $beanList['Project']            = 'Project';
81 $beanList['ProjectTask']            = 'ProjectTask';
82 $beanList['Campaigns']          = 'Campaign';
83 $beanList['EmailMarketing']  = 'EmailMarketing';
84 $beanList['CampaignLog']        = 'CampaignLog';
85 $beanList['CampaignTrackers']   = 'CampaignTracker';
86 $beanList['Releases']       = 'Release';
87 $beanList['Groups'] = 'Group';
88 $beanList['EmailMan'] = 'EmailMan';
89 $beanList['Schedulers']  = 'Scheduler';
90 $beanList['SchedulersJobs']  = 'SchedulersJob';
91 $beanList['Contacts']       = 'Contact';
92 $beanList['Accounts']       = 'Account';
93 $beanList['DynamicFields']  = 'DynamicField';
94 $beanList['EditCustomFields']   = 'FieldsMetaData';
95 $beanList['Opportunities']  = 'Opportunity';
96 $beanList['EmailTemplates']     = 'EmailTemplate';
97 $beanList['Notes']          = 'Note';
98 $beanList['Calls']          = 'Call';
99 $beanList['Emails']         = 'Email';
100 $beanList['Meetings']       = 'Meeting';
101 $beanList['Tasks']          = 'Task';
102 $beanList['Users']          = 'User';
103 $beanList['Currencies']     = 'Currency';
104 $beanList['Trackers']       = 'Tracker';
105 $beanList['Connectors']     = 'Connectors';
106 $beanList['Import_1']         = 'ImportMap';
107 $beanList['Import_2']       = 'UsersLastImport';
108 $beanList['Versions']       = 'Version';
109 $beanList['Administration'] = 'Administration';
110 $beanList['vCals']          = 'vCal';
111 $beanList['CustomFields']       = 'CustomFields';
112
113
114
115
116
117 $beanList['Documents']  = 'Document';
118 $beanList['DocumentRevisions']  = 'DocumentRevision';
119 $beanList['Roles']  = 'Role';
120
121 $beanList['Audit']  = 'Audit';
122
123 // deferred
124 //$beanList['Queues'] = 'Queue';
125
126 $beanList['InboundEmail'] = 'InboundEmail';
127
128
129 $beanList['SavedSearch']            = 'SavedSearch';
130 $beanList['UserPreferences']        = 'UserPreference';
131 $beanList['MergeRecords'] = 'MergeRecord';
132 $beanList['EmailAddresses'] = 'EmailAddress';
133 $beanList['EmailText'] = 'EmailText';
134 $beanList['Relationships'] = 'Relationship';
135 $beanList['Employees']      = 'Employee';
136
137
138
139
140 // this list defines all of the files that contain the SugarBean class definitions from $beanList
141 // to create a new module's bean class, add the file definition here
142 $beanFiles = array();
143
144 $beanFiles['ACLAction'] = 'modules/ACLActions/ACLAction.php';
145 $beanFiles['ACLRole'] = 'modules/ACLRoles/ACLRole.php';
146 $beanFiles['Relationship']  = 'modules/Relationships/Relationship.php';
147
148 $beanFiles['Lead']          = 'modules/Leads/Lead.php';
149 $beanFiles['aCase']         = 'modules/Cases/Case.php';
150 $beanFiles['Bug']           = 'modules/Bugs/Bug.php';
151 $beanFiles['Group'] = 'modules/Groups/Group.php';
152 $beanFiles['CampaignLog']  = 'modules/CampaignLog/CampaignLog.php';
153 $beanFiles['Project']           = 'modules/Project/Project.php';
154 $beanFiles['ProjectTask']           = 'modules/ProjectTask/ProjectTask.php';
155 $beanFiles['Campaign']          = 'modules/Campaigns/Campaign.php';
156 $beanFiles['ProspectList']      = 'modules/ProspectLists/ProspectList.php';
157 $beanFiles['Prospect']  = 'modules/Prospects/Prospect.php';
158
159 $beanFiles['EmailMarketing']          = 'modules/EmailMarketing/EmailMarketing.php';
160 $beanFiles['CampaignTracker']  = 'modules/CampaignTrackers/CampaignTracker.php';
161 $beanFiles['Release']           = 'modules/Releases/Release.php';
162 $beanFiles['EmailMan']          = 'modules/EmailMan/EmailMan.php';
163
164 $beanFiles['Scheduler']  = 'modules/Schedulers/Scheduler.php';
165 $beanFiles['SchedulersJob']  = 'modules/SchedulersJobs/SchedulersJob.php';
166 $beanFiles['Contact']       = 'modules/Contacts/Contact.php';
167 $beanFiles['Account']       = 'modules/Accounts/Account.php';
168 $beanFiles['Opportunity']   = 'modules/Opportunities/Opportunity.php';
169 $beanFiles['EmailTemplate']         = 'modules/EmailTemplates/EmailTemplate.php';
170 $beanFiles['Note']          = 'modules/Notes/Note.php';
171 $beanFiles['Call']          = 'modules/Calls/Call.php';
172 $beanFiles['Email']         = 'modules/Emails/Email.php';
173 $beanFiles['Meeting']       = 'modules/Meetings/Meeting.php';
174 $beanFiles['Task']          = 'modules/Tasks/Task.php';
175 $beanFiles['User']          = 'modules/Users/User.php';
176 $beanFiles['Employee']      = 'modules/Employees/Employee.php';
177 $beanFiles['Currency']          = 'modules/Currencies/Currency.php';
178 $beanFiles['Tracker']          = 'modules/Trackers/Tracker.php';
179 $beanFiles['ImportMap']     = 'modules/Import/maps/ImportMap.php';
180 $beanFiles['UsersLastImport']= 'modules/Import/UsersLastImport.php';
181 $beanFiles['Administration']= 'modules/Administration/Administration.php';
182 $beanFiles['UpgradeHistory']= 'modules/Administration/UpgradeHistory.php';
183 $beanFiles['vCal']          = 'modules/vCals/vCal.php';
184
185 $beanFiles['Version']           = 'modules/Versions/Version.php';
186
187
188
189 $beanFiles['Role']          = 'modules/Roles/Role.php';
190
191 $beanFiles['Document']  = 'modules/Documents/Document.php';
192 $beanFiles['DocumentRevision']  = 'modules/DocumentRevisions/DocumentRevision.php';
193 $beanFiles['FieldsMetaData']    = 'modules/DynamicFields/FieldsMetaData.php';
194 //$beanFiles['Audit']           = 'modules/Audit/Audit.php';
195
196 // deferred
197 //$beanFiles['Queue'] = 'modules/Queues/Queue.php';
198
199 $beanFiles['InboundEmail'] = 'modules/InboundEmail/InboundEmail.php';
200
201
202
203 $beanFiles['SavedSearch']  = 'modules/SavedSearch/SavedSearch.php';
204 $beanFiles['UserPreference']  = 'modules/UserPreferences/UserPreference.php';
205 $beanFiles['MergeRecord']  = 'modules/MergeRecords/MergeRecord.php';
206 $beanFiles['EmailAddress'] = 'modules/EmailAddresses/EmailAddress.php';
207 $beanFiles['EmailText'] = 'modules/EmailText/EmailText.php';
208
209
210
211 // TODO: Remove the Library module, it is an example.
212 //$moduleList[] = 'Library';
213 //$beanList['Library']= 'Library';
214 //$beanFiles['Library'] = 'modules/Library/Library.php';
215
216 $beanFiles['Configurator']          = 'modules/Configurator/Configurator.php';
217
218 // added these lists for security settings for tabs
219 $modInvisList = array('Administration', 'Currencies', 'CustomFields', 'Connectors',
220     'Dropdown', 'Dynamic', 'DynamicFields', 'DynamicLayout', 'EditCustomFields',
221     'Help', 'Import',  'MySettings', 'EditCustomFields','FieldsMetaData',
222     'UpgradeWizard', 'Trackers', 'Connectors', 'Employees', 'Calendar',
223     'Releases','Sync',
224     'Users',  'Versions', 'LabelEditor','Roles','EmailMarketing'
225     ,'OptimisticLock', 'TeamMemberships', 'TeamSets', 'TeamSetModule', 'Audit', 'MailMerge', 'MergeRecords', 'EmailAddresses','EmailText',
226     'Schedulers','Schedulers_jobs', /*'Queues',*/ 'EmailTemplates',
227     'CampaignTrackers', 'CampaignLog', 'EmailMan', 'Prospects', 'ProspectLists',
228     'Groups','InboundEmail',
229     'ACLActions', 'ACLRoles',
230     'DocumentRevisions',
231     'ProjectTask',
232     );
233 $adminOnlyList = array(
234                     //module => list of actions  (all says all actions are admin only)
235                    //'Administration'=>array('all'=>1, 'SupportPortal'=>'allow'),
236                     'Dropdown'=>array('all'=>1),
237                     'Dynamic'=>array('all'=>1),
238                     'DynamicFields'=>array('all'=>1),
239                     'Currencies'=>array('all'=>1),
240                     'EditCustomFields'=>array('all'=>1),
241                     'FieldsMetaData'=>array('all'=>1),
242                     'LabelEditor'=>array('all'=>1),
243                     'ACL'=>array('all'=>1),
244                     'ACLActions'=>array('all'=>1),
245                     'ACLRoles'=>array('all'=>1),
246                     'UpgradeWizard' => array('all' => 1),
247                     'Studio' => array('all' => 1),
248                     'Schedulers' => array('all' => 1),
249                     );
250
251
252 $modInvisList[] = 'ACL';
253 $modInvisList[] = 'ACLRoles';
254 $modInvisList[] = 'Configurator';
255 $modInvisList[] = 'UserPreferences';
256 $modInvisList[] = 'SavedSearch';
257 // deferred
258 //$modInvisList[] = 'Queues';
259 $modInvisList[] = 'Studio';
260 $modInvisList[] = 'Connectors';
261
262 $report_include_modules = array();
263 $report_include_modules['Currencies']='Currency';
264 //add prospects
265 $report_include_modules['Prospects']='Prospect';
266 $report_include_modules['DocumentRevisions'] = 'DocumentRevision';
267 $report_include_modules['ProductCategories'] = 'ProductCategory';
268 $report_include_modules['ProductTypes'] = 'ProductType';
269 //add Tracker modules
270
271 $report_include_modules['Trackers']         = 'Tracker';
272
273
274
275 $beanList['SugarFeed'] = 'SugarFeed';
276 $beanFiles['SugarFeed'] = 'modules/SugarFeed/SugarFeed.php';
277 $modInvisList[] = 'SugarFeed';
278
279 // This is the mapping for modules that appear under a different module's tab
280 // Be sure to also add the modules to $modInvisList, otherwise their tab will still appear
281 $GLOBALS['moduleTabMap'] = array(
282     'UpgradeWizard' => 'Administration',
283     'EmailMan' => 'Administration',
284     'ModuleBuilder' => 'Administration',
285     'Configurator' => 'Administration',
286     'Studio' => 'Administration',
287     'Currencies' => 'Administration',
288     'SugarFeed' => 'Administration',
289     'DocumentRevisions' => 'Documents',
290     'EmailTemplates' => 'Emails',
291     'EmailMarketing' => 'Campaigns',
292  );
293 $beanList['EAPM'] = 'EAPM';
294 $beanFiles['EAPM'] = 'modules/EAPM/EAPM.php';
295 $modules_exempt_from_availability_check['EAPM'] = 'EAPM';
296 $modInvisList[] = 'EAPM';
297 $beanList['OAuthKeys'] = 'OAuthKey';
298 $beanFiles['OAuthKey'] = 'modules/OAuthKeys/OAuthKey.php';
299 $modules_exempt_from_availability_check['OAuthKeys'] = 'OAuthKeys';
300 $modInvisList[] = 'OAuthKeys';
301 $beanList['OAuthTokens'] = 'OAuthToken';
302 $beanFiles['OAuthToken'] = 'modules/OAuthTokens/OAuthToken.php';
303 $modules_exempt_from_availability_check['OAuthTokens'] = 'OAuthTokens';
304 $modInvisList[] = 'OAuthTokens';
305
306
307
308 //Object list is only here to correct for modules that break
309 //the bean class name == dictionary entry/object name convention
310 //No future module should need an entry here.
311 $objectList = array();
312 $objectList['Cases'] =  'Case';
313 $objectList['Groups'] =  'User';
314 $objectList['Schedulers'] =  'schedulers';
315 $objectList['Users'] =  'User';
316
317 if (file_exists('include/modules_override.php'))
318 {
319     include('include/modules_override.php');
320 }
321 if (file_exists('custom/application/Ext/Include/modules.ext.php'))
322 {
323     include('custom/application/Ext/Include/modules.ext.php');
324 }
325 ?>