]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - install/dbConfig_a.php
Release 6.1.4
[Github/sugarcrm.git] / install / dbConfig_a.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2011 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
39
40 global $sugar_version, $js_custom_version;
41
42
43 if(empty($_SESSION['setup_db_host_name'])){
44       $_SESSION['setup_db_host_name'] = (isset($sugar_config['db_host_name']))  ? $sugar_config['db_host_name'] :  $_SERVER['SERVER_NAME'];
45 }
46
47 if( !isset( $install_script ) || !$install_script ){
48         die($mod_strings['ERR_NO_DIRECT_SCRIPT']);
49 }
50
51
52 // DB split 
53 $oci8sid = '';
54 $createDbCheckbox = '';
55 $createDb = (isset($_SESSION['setup_db_create_database']) && !empty($_SESSION['setup_db_create_database'])) ? 'checked="checked"' : '';
56 $dropCreate = (isset($_SESSION['setup_db_drop_tables']) && !empty($_SESSION['setup_db_drop_tables'])) ? 'checked="checked"' : ''; 
57 $instanceName = '';
58 if (isset($_SESSION['setup_db_host_instance']) && !empty($_SESSION['setup_db_host_instance'])){
59         $instanceName = $_SESSION['setup_db_host_instance'];
60 }
61
62 if($_SESSION['setup_db_type'] == 'oci8') {
63 }else {
64     
65     $host_lbl = $mod_strings['LBL_DBCONF_HOST_NAME'];
66     if($_SESSION['setup_db_type'] == 'mssql') {
67         $host_lbl = $mod_strings['LBL_DBCONF_HOST_NAME_MSSQL'];    
68     }
69     
70         $dbSplit1 = '<tr><td colspan="3" align="left">'.$mod_strings['LBL_DBCONFIG_MSG2'].' </td></tr>
71         <tr>
72                  <td><span class="required">*</span></td>
73                  <td nowrap><b>'.$host_lbl.'</b></td>
74                  <td align="left">
75                         <input type="text" name="setup_db_host_name" id="setup_db_host_name" value="'.$_SESSION['setup_db_host_name'].'" />';
76                         if (isset($_SESSION['setup_db_type']) && $_SESSION['setup_db_type'] =='mssql'){
77                                 $dbSplit1 .= '&nbsp;\&nbsp;<input type="text" name="setup_db_host_instance" id="setup_db_host_instance" value="'.$instanceName.'" />';
78                         }
79                 $dbSplit1 .= '</td>
80         </tr>';
81         
82
83 }
84
85
86
87
88 ///////////////////////////////////////////////////////////////////////////////
89 ////    BEGIN PAGE OUTPUT
90
91 $out =<<<EOQ
92 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
93 <html>
94 <head>
95     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
96     <meta http-equiv="Content-Script-Type" content="text/javascript">
97     <meta http-equiv="Content-Style-Type" content="text/css">
98     <title>{$mod_strings['LBL_WIZARD_TITLE']} {$mod_strings['LBL_DBCONF_TITLE']}</title>
99     <link rel="stylesheet" href="install/install.css" type="text/css" />
100     <script type="text/javascript" src="install/installCommon.js"></script>
101     <script type="text/javascript" src="install/dbConfig.js"></script>
102     <link REL="SHORTCUT ICON" HREF="include/images/sugar_icon.ico">
103     <script src="include/javascript/sugar_grp1_yui.js?s={$sugar_version}&c={$js_custom_version}"></script>
104     <script type="text/javascript">
105     <!--
106     if ( YAHOO.env.ua )
107         UA = YAHOO.env.ua;
108     -->
109     </script>
110     <link rel='stylesheet' type='text/css' href='include/javascript/yui/build/container/assets/container.css' />     
111
112 </head>
113 EOQ;
114 $out .= '<body onload="document.getElementById(\'defaultFocus\').focus();">';
115
116 $out2 =<<<EOQ2
117 <form action="install.php" method="post" name="setConfig" id="form">
118 <input type='hidden' name='setup_db_drop_tables' id='setup_db_drop_tables' value='false'>
119 <input type="hidden" id="hidden_goto" name="goto" value="{$mod_strings['LBL_BACK']}" />
120 <table cellspacing="0" cellpadding="0" border="0" align="center" class="shell">
121
122       <tr><td colspan="2" id="help"><a href="{$help_url}" target='_blank'>{$mod_strings['LBL_HELP']} </a></td></tr>
123     <tr>
124       <th width="500">
125                 <p>
126                 <img src="{$sugar_md}" alt="SugarCRM" border="0">
127                 </p>
128                 {$mod_strings['LBL_DBCONF_TITLE']}
129         </th>
130         <th width="200" height="30" style="text-align: right;"><a href="http://www.sugarcrm.com" target="_blank">
131                 <IMG src="include/images/sugarcrm_login.png" width="145" height="30" alt="SugarCRM" border="0"></a>
132         </th>
133 </tr>
134 <tr>
135         <td colspan="2">
136 <div id="errorMsgs" style="display:none"></div>
137 <div class="required">{$mod_strings['LBL_REQUIRED']}</div>
138 <table width="100%" cellpadding="0" cellpadding="0" border="0" class="StyleDottedHr">
139 <tr><th colspan="3" align="left" >{$mod_strings['LBL_DBCONF_TITLE_NAME']} </td></tr>
140
141 <tr><td colspan="3" align="left">&nbsp;{$mod_strings['LBL_DBCONFIG_MSG3']}</td></tr>
142 <tr><td width='1%'><span class="required">*</span></td>
143     <td width='60%' nowrap><b>{$mod_strings['LBL_DBCONF_DB_NAME']} {$oci8sid}</b></td>
144     <td width='35%' nowrap align="left">
145          <input type="text" name="setup_db_database_name"  value="{$_SESSION['setup_db_database_name']}"><br>&nbsp;
146     </td>
147 </tr>
148
149
150
151 {$dbSplit1}
152
153
154 <tr><th colspan="3" align="left">{$mod_strings['LBL_DBCONF_TITLE_USER_INFO']} </td></tr>
155 <tr><td colspan="3" align="left">{$mod_strings['LBL_DBCONFIG_B_MSG1']}</td></tr>
156 <tr>
157     <td><span class="required">*</span></td>
158     <td nowrap><b>{$mod_strings['LBL_DBCONF_DB_ADMIN_USER']}</b></td>
159     <td nowrap align="left">
160          <input type="text" name="setup_db_admin_user_name" maxlength="30" value="{$_SESSION['setup_db_admin_user_name']}" autocomplete="off"/>
161     </td>
162 </tr>
163 <tr>
164     <td></td>
165     <td nowrap><b>{$mod_strings['LBL_DBCONF_DB_ADMIN_PASSWORD']}</b></td>
166     <td nowrap align="left"><input type="password" name="setup_db_admin_password" value="{$_SESSION['setup_db_admin_password']}" autocomplete="off" /></td></tr>
167     </table>
168 EOQ2;
169
170 //if we are installing in custom mode, include the following html 
171 if($_SESSION['setup_db_type'] != 'oci8' ){
172
173 // create / set db user dropdown
174 $auto_select = '';$provide_select ='';$create_select = '';$same_select = '';
175 if(isset($_SESSION['dbUSRData'])){
176 //    if($_SESSION['dbUSRData']=='auto')    {$auto_select ='selected';}
177     if($_SESSION['dbUSRData']=='provide') {$provide_select ='selected';}
178 if(isset($_SESSION['install_type'])  && !empty($_SESSION['install_type'])  && strtolower($_SESSION['install_type'])=='custom'){
179     if($_SESSION['dbUSRData']=='create')  {$create_select ='selected';}
180 }
181     if($_SESSION['dbUSRData']=='same')  {$same_select ='selected';}
182 }else{
183     $same_select ='selected';
184 }
185 $dbUSRDD   = "<select name='dbUSRData' id='dbUSRData' onchange='toggleDBUser();'>";
186 $dbUSRDD  .= "<option value='provide' $provide_select>".$mod_strings['LBL_DBCONFIG_PROVIDE_DD']."</option>";
187 $dbUSRDD  .= "<option value='create' $create_select>".$mod_strings['LBL_DBCONFIG_CREATE_DD']."</option>";
188 $dbUSRDD  .= "<option value='same' $same_select>".$mod_strings['LBL_DBCONFIG_SAME_DD']."</option>";
189 $dbUSRDD  .= "</select><br>&nbsp;";
190
191
192
193
194 $out2 .=<<<EOQ2
195
196 <table width="100%" cellpadding="0" cellpadding="0" border="0" class="StyleDottedHr">
197 <tr><td colspan="3" align="left"><br>{$mod_strings['LBL_DBCONFIG_SECURITY']}</td></tr>
198 <tr><td width='1%'>&nbsp;</td><td width='60%'><div id='sugarDBUser'><b>{$mod_strings['LBL_DBCONF_SUGAR_DB_USER']}</b></div>&nbsp;</td><td width='35%'>$dbUSRDD</td></tr>
199 </table>
200
201 <span id='connection_user_div' style="display:none">
202 <table width="100%" cellpadding="0" cellpadding="0" border="0" class="StyleDottedHr">
203     <tr>
204         <td width='1%'><span class="required">*</span></td>
205         <td nowrap width='60%'><b>{$mod_strings['LBL_DBCONF_SUGAR_DB_USER']}</b></td>
206         <td  width='35%'nowrap align="left">
207          <input type="text" name="setup_db_sugarsales_user" maxlength="16" value="{$_SESSION['setup_db_sugarsales_user']}" />
208         </td>
209 </tr>
210 <tr>
211     <td>&nbsp;</td>
212     <td nowrap><b>{$mod_strings['LBL_DBCONF_DB_PASSWORD']}</b></td>
213     <td nowrap align="left"><input type="password" name="setup_db_sugarsales_password" value="{$_SESSION['setup_db_sugarsales_password']}" /></td>
214 </tr>
215 <tr>
216     <td>&nbsp;</td>
217     <td nowrap><b>{$mod_strings['LBL_DBCONF_DB_PASSWORD2']}</b></td>
218     <td nowrap align="left"><input type="password" name="setup_db_sugarsales_password_retype" value="{$_SESSION['setup_db_sugarsales_password_retype']}" /></td>
219 </tr></table>
220 </span>
221
222 EOQ2;
223 }
224
225 //set demo dropdown
226 //$supported_demodata = array(
227 //      'en_us' => 'English (US)',
228 //      'zh_cn' => '简体中文',
229 //      'ja_jp' => 'Japanese - æ—¥æœ¬èªž',
230 //);
231 $demoDD = "<select name='demoData' id='demoData'><option value='no' >".$mod_strings['LBL_NO']."</option><option value='en_us'>".$mod_strings['LBL_YES']."</option>";
232 //foreach($supported_demodata as $key => $v){
233 //      // mssql is broken for mbcs
234 //      if( ($_SESSION['setup_db_type'] == 'mssql') && ($key != 'en_us'))
235 //              continue;
236 //      $selected = '';
237 //      if($_SESSION['demoData'] == $key)
238 //              $selected = "selected"; 
239 //      $demoDD .="<option value='$key' $selected>".$v."</option>";
240 //}
241 $demoDD .= "</select><br>&nbsp;";
242
243    
244 $out3 =<<<EOQ3
245 <table width="100%" cellpadding="0" cellpadding="0" border="0" class="StyleDottedHr">
246 <tr><th colspan="3" align="left">{$mod_strings['LBL_DBCONF_DEMO_DATA_TITLE']}</th></tr>
247 <tr>
248     <td width='1%'>&nbsp;</td>
249     <td  width='60%'nowrap><b>{$mod_strings['LBL_DBCONF_DEMO_DATA']}</b></td>
250     <td  width='35%'nowrap align="left">
251         {$demoDD}
252     </td>
253 </tr>
254 </table>
255 EOQ3;
256    
257    
258 $out4 =<<<EOQ4
259 </td>
260 </tr>
261 <tr>
262 <td align="right" colspan="2">
263 <hr>
264      <input type="hidden" name="current_step" value="{$next_step}">
265      <table cellspacing="0" cellpadding="0" border="0" class="stdTable">
266         <tr>
267             <td>
268                 <input class="button" type="button" name="goto" value="{$mod_strings['LBL_BACK']}" onclick="document.getElementById('form').submit();" />
269             </td>
270             <td>
271                 <input class="button" type="button" name="goto" id="defaultFocus" value="{$mod_strings['LBL_NEXT']}" onClick="callDBCheck();"/>
272             </td>
273         </tr>
274      </table>
275 </td>
276 </tr>
277 </table>
278 </form>
279 <br>
280
281 <script>
282 function toggleDBUser(){
283      if(typeof(document.getElementById('dbUSRData')) !='undefined'
284      && document.getElementById('dbUSRData') != null){
285
286         ouv = document.getElementById('dbUSRData').value;
287         if(ouv == 'provide' || ouv == 'create'){
288             document.getElementById('connection_user_div').style.display = '';
289             document.getElementById('sugarDBUser').style.display = 'none';
290         }else{
291             document.getElementById('connection_user_div').style.display = 'none';
292             document.getElementById('sugarDBUser').style.display = '';
293         }
294     }
295 }
296     toggleDBUser();
297     
298 var msgPanel;
299 function callDBCheck(){
300
301             //begin main function that will be called
302             ajaxCall = function(msg_panel){
303                 //create success function for callback
304
305                 getPanel = function() {        
306                 var args = {    width:"300px", 
307                                 modal:true,
308                                 fixedcenter: true,
309                                 constraintoviewport: false,  
310                                 underlay:"shadow",  
311                                 close:false, 
312                                 draggable:true, 
313                                 
314                                 effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:.5}
315                                } ; 
316                         msg_panel = new YAHOO.widget.Panel('p_msg', args);
317
318                         msg_panel.setHeader("{$mod_strings['LBL_LICENSE_CHKDB_HEADER']}"); 
319                         msg_panel.setBody(document.getElementById("checkingDiv").innerHTML);
320                         msg_panel.render(document.body);
321                         msgPanel = msg_panel;
322                 } 
323                 
324                 
325                 passed = function(url){
326                     document.setConfig.goto.value="{$mod_strings['LBL_NEXT']}";
327                     document.getElementById('hidden_goto').value="{$mod_strings['LBL_NEXT']}";
328                     document.setConfig.current_step.value="{$next_step}";
329                     document.setConfig.submit();
330                 }
331                 success = function(o) {
332                     
333                     //condition for just the preexisting database
334                     if (o.responseText.indexOf('preexeest')>=0){
335
336                         //  throw confirmation message
337                         msg_panel.setBody(document.getElementById("sysCheckMsg").innerHTML);
338                         msg_panel.render(document.body);
339                         msgPanel = msg_panel;
340                         document.getElementById('accept_btn').focus();
341                     //condition for no errors
342                     }else if (o.responseText.indexOf('dbCheckPassed')>=0){
343                         //make navigation
344                         passed("install.php?goto={$mod_strings['LBL_NEXT']}");
345
346                     //condition for other errors    
347                     }else{
348                         //turn off loading message
349                         msgPanel.hide();
350                         document.getElementById("errorMsgs").innerHTML = o.responseText;
351                         document.getElementById("errorMsgs").style.display = '';
352                         return false;
353                     }
354
355                     
356                 }//end success
357         
358                 //set loading message and create url
359
360                 postData = "checkDBSettings=true&to_pdf=1&sugar_body_only=1";
361                 postData += "&setup_db_database_name="+document.setConfig.setup_db_database_name.value;
362                 if(typeof(document.setConfig.setup_db_host_instance) != 'undefined'){
363                     postData += "&setup_db_host_instance="+document.setConfig.setup_db_host_instance.value;
364                 }
365                 postData += "&setup_db_host_name="+document.setConfig.setup_db_host_name.value;
366                 postData += "&setup_db_admin_user_name="+document.setConfig.setup_db_admin_user_name.value;
367                 postData += "&setup_db_admin_password="+document.setConfig.setup_db_admin_password.value;
368                 if(typeof(document.setConfig.setup_db_sugarsales_user) != 'undefined'){
369                     postData += "&setup_db_sugarsales_user="+document.setConfig.setup_db_sugarsales_user.value;
370                 }
371                 if(typeof(document.setConfig.setup_db_sugarsales_password) != 'undefined'){
372                     postData += "&setup_db_sugarsales_password="+document.setConfig.setup_db_sugarsales_password.value;
373                 }
374                 if(typeof(document.setConfig.setup_db_sugarsales_password_retype) != 'undefined'){
375                     postData += "&setup_db_sugarsales_password_retype="+document.setConfig.setup_db_sugarsales_password_retype.value;
376                 }
377                 if(typeof(document.setConfig.dbUSRData) != 'undefined'){
378                     postData += "&dbUSRData="+document.getElementById('dbUSRData').value;
379                 }
380
381 EOQ4;
382
383 $out_dd = 'postData += "&demoData="+document.setConfig.demoData.value;';
384 $out5 =<<<EOQ5
385                 postData += "&to_pdf=1&sugar_body_only=1";                                                
386                  
387                 //if this is a call already in progress, then just return               
388                     if(typeof ajxProgress != 'undefined'){ 
389                         return;                            
390                     }
391
392                 getPanel();
393                 msgPanel.show;
394                 var ajxProgress = YAHOO.util.Connect.asyncRequest('POST','install.php', {success: success, failure: success}, postData);                
395                         
396     
397             };//end ajaxCall method
398               ajaxCall();
399             return;   
400 }
401
402 function confirm_drop_tables(yes_no){
403
404         if(yes_no == true){
405             document.getElementById('setup_db_drop_tables').value = true;
406            //make navigation
407                     document.setConfig.goto.value="{$mod_strings['LBL_NEXT']}";
408                     document.getElementById('hidden_goto').value="{$mod_strings['LBL_NEXT']}";
409                     document.setConfig.current_step.value="{$next_step}";
410                     document.setConfig.submit();
411         }else{
412             //set drop tables to false
413             document.getElementById('setup_db_drop_tables').value = false;
414             msgPanel.hide();
415         }
416 }
417     
418 </script>
419
420
421
422            <div id="checkingDiv" style="display:none">
423            <table cellspacing="0" cellpadding="0" border="0">
424                <tr><td>
425                     <p><img src='install/processing.gif'> <br>{$mod_strings['LBL_LICENSE_CHKDB_HEADER']}</p>
426                 </td></tr>
427             </table>
428             </div>
429
430           <div id='sysCheckMsg' style="display:none">
431            <table cellspacing="0" cellpadding="0" border="0" >
432                <tr><td>
433                     <p>{$mod_strings['LBL_DROP_DB_CONFIRM']}</p>
434                </td></tr>
435                <tr><td align='center'>
436                     <input id='accept_btn' type='button' class='button' onclick='confirm_drop_tables(true)' value="{$mod_strings['LBL_ACCEPT']}">
437                     <input type='button' class='button' onclick='confirm_drop_tables(false)' value="{$mod_strings['LBL_CANCEL']}">
438                 </td></tr>
439             </table>
440                 
441           <div>
442
443 </body>
444 </html>
445
446
447
448
449 EOQ5;
450
451
452
453
454 ////    END PAGE OUTPUT
455 ///////////////////////////////////////////////////////////////////////////////
456
457
458
459 echo $out.$out2;
460     echo $out3;
461 echo $out4;
462     echo $out_dd;
463 echo $out5;
464
465 ?>