]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - install/confirmSettings.php
Release 6.5.16
[Github/sugarcrm.git] / install / confirmSettings.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-2013 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_config, $db, $app_strings;
41 if (isset($sugar_config['default_language']) == false)
42 {
43     $sugar_config['default_language'] = $GLOBALS['current_language'];
44 }
45 $app_strings = return_application_language($GLOBALS['current_language']);
46
47 if( !isset( $install_script ) || !$install_script ){
48     die($mod_strings['ERR_NO_DIRECT_SCRIPT']);
49 }
50
51 $db = getDbConnection();
52
53 $dbCreate = "({$mod_strings['LBL_CONFIRM_WILL']} ";
54 if(!$_SESSION['setup_db_create_database']){
55         $dbCreate .= $mod_strings['LBL_CONFIRM_NOT'];
56 }
57 $dbCreate .= " {$mod_strings['LBL_CONFIRM_BE_CREATED']})";
58
59 $dbUser = "{$_SESSION['setup_db_sugarsales_user']} ({$mod_strings['LBL_CONFIRM_WILL']} ";
60 if( $_SESSION['setup_db_create_sugarsales_user'] != 1 ){
61         $dbUser .= $mod_strings['LBL_CONFIRM_NOT'];
62 }
63 $dbUser .= " {$mod_strings['LBL_CONFIRM_BE_CREATED']})";
64 $yesNoDropCreate = $mod_strings['LBL_NO'];
65 if ($_SESSION['setup_db_drop_tables']===true ||$_SESSION['setup_db_drop_tables'] == 'true'){
66     $yesNoDropCreate = $mod_strings['LBL_YES'];
67 }
68 $yesNoSugarUpdates = ($_SESSION['setup_site_sugarbeet']) ? $mod_strings['LBL_YES'] : $mod_strings['LBL_NO'];
69 $yesNoCustomSession = ($_SESSION['setup_site_custom_session_path']) ? $mod_strings['LBL_YES'] : $mod_strings['LBL_NO'];
70 $yesNoCustomLog = ($_SESSION['setup_site_custom_log_dir']) ? $mod_strings['LBL_YES'] : $mod_strings['LBL_NO'];
71 $yesNoCustomId = ($_SESSION['setup_site_specify_guid']) ? $mod_strings['LBL_YES'] : $mod_strings['LBL_NO'];
72 $demoData = ($_SESSION['demoData'] == 'en_us') ? ($mod_strings['LBL_YES']) : ($_SESSION['demoData']);
73 // Populate the default date format, time format, and language for the system
74 $defaultDateFormat = "";
75 $defaultTimeFormat = "";
76 $defaultLanguages = "";
77
78         $sugar_config_defaults = get_sugar_config_defaults();
79         if(isset($_REQUEST['default_language'])){
80                 $defaultLanguages = $sugar_config_defaults['languages'][$_REQUEST['default_language']];
81         }
82
83 ///////////////////////////////////////////////////////////////////////////////
84 ////    START OUTPUT
85 $langHeader = get_language_header();
86
87 $out =<<<EOQ
88 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
89 <html {$langHeader}>
90 <head>
91    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
92    <meta http-equiv="Content-Script-Type" content="text/javascript">
93    <meta http-equiv="Content-Style-Type" content="text/css">
94    <title>{$mod_strings['LBL_WIZARD_TITLE']} {$mod_strings['LBL_CONFIRM_TITLE']}</title>
95    <link REL="SHORTCUT ICON" HREF="$icon">
96    <link rel="stylesheet" href="$css" type="text/css" />
97 </head>
98 <body onload="javascript:document.getElementById('button_next2').focus();">
99 <form action="install.php" method="post" name="setConfig" id="form">
100 <input type="hidden" name="current_step" value="{$next_step}">
101 <table cellspacing="0" cellpadding="0" border="0" align="center" class="shell">
102       <tr><td colspan="2" id="help"><a href="{$help_url}" target='_blank'>{$mod_strings['LBL_HELP']} </a></td></tr>
103     <tr>
104       <th width="500">
105                 <p>
106                 <img src="{$sugar_md}" alt="SugarCRM" border="0">
107                 </p>
108                 {$mod_strings['LBL_CONFIRM_TITLE']}</th>
109         <th width="200" style="text-align: right;"><a href="http://www.sugarcrm.com" target="_blank"><IMG src="$loginImage" alt="SugarCRM" border="0"></a>
110         </th>
111     </tr>
112     <tr>
113         <td colspan="2">
114
115         <table width="100%" cellpadding="0" cellpadding="0" border="0" class="StyleDottedHr">
116             <tr><th colspan="3" align="left">{$mod_strings['LBL_DBCONF_TITLE']}</th></tr>
117             <tr><td></td><td><b>{$mod_strings['LBL_CONFIRM_DB_TYPE']}</b></td><td>{$_SESSION['setup_db_type']}</td></tr>
118             <tr><td></td><td><b>{$mod_strings['LBL_DBCONF_HOST_NAME']}</b></td><td>{$_SESSION['setup_db_host_name']}</td></tr>
119             <tr>
120                 <td></td>
121                 <td><b>{$mod_strings['LBL_DBCONF_DB_NAME']}</b></td>
122                 <td>
123                                         {$_SESSION['setup_db_database_name']} {$dbCreate}
124                 </td>
125             </tr>
126 EOQ;
127
128 $out .=<<<EOQ
129             <tr>
130                 <td></td>
131                 <td><b>{$mod_strings['LBL_DBCONF_DB_ADMIN_USER']}</b></td>
132                 <td>{$_SESSION['setup_db_admin_user_name']}</td>
133             </tr>
134             <tr>
135                 <td></td>
136                 <td><b>{$mod_strings['LBL_DBCONF_DEMO_DATA']}</b></td>
137                 <td>{$demoData}</td>
138             </tr>
139 EOQ;
140 if($yesNoDropCreate){
141
142 $out .=<<<EOQ
143             <tr>
144                 <td></td>
145                 <td><b>{$mod_strings['LBL_DBCONF_DB_DROP']}</b></td>
146                 <td>{$yesNoDropCreate}</td>
147             </tr>
148 EOQ;
149
150 }
151
152
153 if(isset($_SESSION['install_type'])  && !empty($_SESSION['install_type'])  && $_SESSION['install_type']=='custom'){
154 $out .=<<<EOQ
155
156            <tr><td colspan="3" align="left"></td></tr>
157             <tr>
158                 <th colspan="3" align="left">{$mod_strings['LBL_SITECFG_TITLE']}</th>
159             </tr>
160             <tr>
161                 <td></td>
162                 <td><b>{$mod_strings['LBL_SITECFG_URL']}</b></td>
163                 <td>{$_SESSION['setup_site_url']}</td>
164             </tr>
165             <tr>
166            <tr><td colspan="3" align="left"></td></tr>
167                 <th colspan="3" align="left">{$mod_strings['LBL_SITECFG_SUGAR_UPDATES']}</th>
168             </tr>
169             <tr>
170                 <td></td>
171                 <td><b>{$mod_strings['LBL_SITECFG_SUGAR_UP']}</b></td>
172                 <td>{$yesNoSugarUpdates}</td>
173             </tr>
174             <tr>
175            <tr><td colspan="3" align="left"></td></tr>
176                 <th colspan="3" align="left">{$mod_strings['LBL_SITECFG_SITE_SECURITY']}</th>
177             </tr>
178             <tr>
179                 <td></td>
180                 <td><b>{$mod_strings['LBL_SITECFG_CUSTOM_SESSION']}?</b></td>
181                 <td>{$yesNoCustomSession}</td>
182             </tr>
183             <tr>
184                 <td></td>
185                 <td><b>{$mod_strings['LBL_SITECFG_CUSTOM_LOG']}?</b></td>
186                 <td>{$yesNoCustomLog}</td>
187             </tr>
188             <tr>
189                 <td></td>
190                 <td><b>{$mod_strings['LBL_SITECFG_CUSTOM_ID']}?</b></td>
191                 <td>{$yesNoCustomId}</td>
192             </tr>
193 EOQ;
194 }
195
196 $out .=<<<EOQ
197
198            <tr><td colspan="3" align="left"></td></tr>
199           <tr><th colspan="3" align="left">{$mod_strings['LBL_SYSTEM_CREDS']}</th></tr>
200             <tr>
201                 <td></td>
202                 <td><b>{$mod_strings['LBL_DBCONF_DB_USER']}</b></td>
203                 <td>
204                     {$_SESSION['setup_db_sugarsales_user']}
205                 </td>
206             </tr>
207             <tr>
208                 <td></td>
209                 <td><b>{$mod_strings['LBL_DBCONF_DB_PASSWORD']}</b></td>
210                 <td>
211                     <span id='hide_db_admin_pass'>{$mod_strings['LBL_HIDDEN']}</span>
212                     <span style='display:none' id='show_db_admin_pass'>{$_SESSION['setup_db_sugarsales_password']}</span>
213                 </td>
214             </tr>
215             <tr>
216                 <td></td>
217                 <td><b>{$mod_strings['LBL_SITECFG_ADMIN_Name']}</b></td>
218                 <td>
219                     Admin
220                 </td>
221             </tr>
222             <tr>
223                 <td></td>
224                 <td><b>{$mod_strings['LBL_SITECFG_ADMIN_PASS']}</b></td>
225                 <td>
226                     <span id='hide_site_admin_pass'>{$mod_strings['LBL_HIDDEN']}</span>
227                     <span style='display:none' id='show_site_admin_pass'>{$_SESSION['setup_site_admin_password']}</span>
228                 </td>
229             </tr>
230
231 EOQ;
232
233
234
235
236
237
238 $envString = '
239            <tr><td colspan="3" align="left"></td></tr><tr><th colspan="3" align="left">'.$mod_strings['LBL_SYSTEM_ENV'].'</th></tr>';
240
241     // PHP VERSION
242         $envString .='
243           <tr>
244              <td></td>
245             <td><b>'.$mod_strings['LBL_CHECKSYS_PHPVER'].'</b></td>
246             <td >'.constant('PHP_VERSION').'</td>
247           </tr>';
248
249
250 //Begin List of already known good variables.  These were checked during the initial sys check
251 // XML Parsing
252         $envString .='
253       <tr>
254         <td></td>
255         <td><strong>'.$mod_strings['LBL_CHECKSYS_XML'].'</strong></td>
256         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
257       </tr>';
258
259
260
261 // mbstrings
262
263         $envString .='
264       <tr>
265         <td></td>
266         <td><strong>'.$mod_strings['LBL_CHECKSYS_MBSTRING'].'</strong></td>
267         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
268       </tr>';
269
270 // config.php
271         $envString .='
272       <tr>
273         <td></td>
274         <td><strong>'.$mod_strings['LBL_CHECKSYS_CONFIG'].'</strong></td>
275         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
276       </tr>';
277
278 // custom dir
279
280
281         $envString .='
282       <tr>
283         <td></td>
284         <td><strong>'.$mod_strings['LBL_CHECKSYS_CUSTOM'].'</strong></td>
285         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
286       </tr>';
287
288
289 // modules dir
290         $envString .='
291       <tr>
292         <td></td>
293         <td><strong>'.$mod_strings['LBL_CHECKSYS_MODULE'].'</strong></td>
294         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
295       </tr>';
296
297 // upload dir
298         $envString .='
299       <tr>
300         <td></td>
301         <td><strong>'.$mod_strings['LBL_CHECKSYS_UPLOAD'].'</strong></td>
302         <td>'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
303       </tr>';
304
305 // data dir
306
307         $envString .='
308       <tr>
309         <td></td>
310         <td><strong>'.$mod_strings['LBL_CHECKSYS_DATA'].'</strong></td>
311         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
312       </tr>';
313
314 // cache dir
315     $error_found = true;
316         $envString .='
317       <tr>
318         <td></td>
319         <td><strong>'.$mod_strings['LBL_CHECKSYS_CACHE'].'</strong></td>
320         <td  >'.$mod_strings['LBL_CHECKSYS_OK'].'</td>
321       </tr>';
322 // End already known to be good
323
324 // memory limit
325 $memory_msg     = "";
326 // CL - fix for 9183 (if memory_limit is enabled we will honor it and check it; otherwise use unlimited)
327 $memory_limit = ini_get('memory_limit');
328 if(empty($memory_limit)){
329     $memory_limit = "-1";
330 }
331 if(!defined('SUGARCRM_MIN_MEM')) {
332     define('SUGARCRM_MIN_MEM', 40*1024*1024);
333 }
334 $sugarMinMem = constant('SUGARCRM_MIN_MEM');
335 // logic based on: http://us2.php.net/manual/en/ini.core.php#ini.memory-limit
336 if( $memory_limit == "" ){          // memory_limit disabled at compile time, no memory limit
337     $memory_msg = "<b>{$mod_strings['LBL_CHECKSYS_MEM_OK']}</b>";
338 } elseif( $memory_limit == "-1" ){   // memory_limit enabled, but set to unlimited
339     $memory_msg = "{$mod_strings['LBL_CHECKSYS_MEM_UNLIMITED']}";
340 } else {
341     $mem_display = $memory_limit;
342     preg_match('/^\s*([0-9.]+)\s*([KMGTPE])B?\s*$/i', $memory_limit, $matches);
343     $num = (float)$matches[1];
344     // Don't break so that it falls through to the next case.
345     switch (strtoupper($matches[2])) {
346         case 'G':
347             $num = $num * 1024;
348         case 'M':
349             $num = $num * 1024;
350         case 'K':
351             $num = $num * 1024;
352     }
353     $memory_limit_int = intval($num);
354     $SUGARCRM_MIN_MEM = (int) constant('SUGARCRM_MIN_MEM');
355     if( $memory_limit_int < constant('SUGARCRM_MIN_MEM') ){
356         // Bug59667: The string ERR_CHECKSYS_MEM_LIMIT_2 already has 'M' in it,
357         // so we divide the constant by 1024*1024.
358         $min_mem_in_megs = constant('SUGARCRM_MIN_MEM')/(1024*1024);
359         $memory_msg = "<span class='stop'><b>$memory_limit{$mod_strings['ERR_CHECKSYS_MEM_LIMIT_1']}" . $min_mem_in_megs . "{$mod_strings['ERR_CHECKSYS_MEM_LIMIT_2']}</b></span>";
360         $memory_msg = str_replace('$memory_limit', $mem_display, $memory_msg);
361     } else {
362         $memory_msg = "{$mod_strings['LBL_CHECKSYS_OK']} ({$memory_limit})";
363     }
364 }
365
366           $envString .='
367       <tr>
368         <td></td>
369         <td><strong>'.$mod_strings['LBL_CHECKSYS_MEM'].'</strong></td>
370         <td  >'.$memory_msg.'</td>
371       </tr>';
372
373     // zlib
374     if(function_exists('gzclose')) {
375         $zlibStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
376     } else {
377         $zlibStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_ZLIB']}</b></span>";
378     }
379             $envString .='
380           <tr>
381             <td></td>
382             <td><strong>'.$mod_strings['LBL_CHECKSYS_ZLIB'].'</strong></td>
383             <td  >'.$zlibStatus.'</td>
384           </tr>';
385
386     // zip
387     if(class_exists("ZipArchive")) {
388         $zipStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
389     } else {
390         $zipStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_ZIP']}</b></span>";
391     }
392             $envString .='
393           <tr>
394             <td></td>
395             <td><strong>'.$mod_strings['LBL_CHECKSYS_ZIP'].'</strong></td>
396             <td  >'.$zipStatus.'</td>
397           </tr>';
398
399     // PCRE
400     if(defined('PCRE_VERSION')) {
401         if (version_compare(PCRE_VERSION, '7.0') < 0) {
402             $pcreStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_PCRE_VER']}</b></span>";
403         }
404         else {
405             $pcreStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
406         }
407     } else {
408         $pcreStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_PCRE']}</b></span>";
409     }
410             $envString .='
411           <tr>
412             <td></td>
413             <td><strong>'.$mod_strings['LBL_CHECKSYS_PCRE'].'</strong></td>
414             <td  >'.$pcreStatus.'</td>
415           </tr>';
416
417     // imap
418     if(function_exists('imap_open')) {
419         $imapStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
420     } else {
421         $imapStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_IMAP']}</b></span>";
422     }
423
424             $envString .='
425           <tr>
426             <td></td>
427             <td><strong>'.$mod_strings['LBL_CHECKSYS_IMAP'].'</strong></td>
428             <td  >'.$imapStatus.'</td>
429           </tr>';
430
431
432     // cURL
433     if(function_exists('curl_init')) {
434         $curlStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
435     } else {
436         $curlStatus = "<span class='stop'><b>{$mod_strings['ERR_CHECKSYS_CURL']}</b></span>";
437     }
438
439             $envString .='
440           <tr>
441             <td></td>
442             <td><strong>'.$mod_strings['LBL_CHECKSYS_CURL'].'</strong></td>
443             <td  >'.$curlStatus.'</td>
444           </tr>';
445
446
447       //CHECK UPLOAD FILE SIZE
448         $upload_max_filesize = ini_get('upload_max_filesize');
449         $upload_max_filesize_bytes = return_bytes($upload_max_filesize);
450         if(!defined('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')){
451             define('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES', 6 * 1024 * 1024);
452         }
453
454         if($upload_max_filesize_bytes > constant('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')) {
455             $fileMaxStatus = "{$mod_strings['LBL_CHECKSYS_OK']}</font>";
456         } else {
457             $fileMaxStatus = "<span class='stop'><b>{$mod_strings['ERR_UPLOAD_MAX_FILESIZE']}</font></b></span>";
458         }
459
460             $envString .='
461           <tr>
462             <td></td>
463             <td><strong>'.$mod_strings['LBL_UPLOAD_MAX_FILESIZE_TITLE'].'</strong></td>
464             <td  >'.$fileMaxStatus.'</td>
465           </tr>';
466
467       //CHECK Sprite support
468         if(function_exists('imagecreatetruecolor'))
469         {
470             $spriteSupportStatus = "{$mod_strings['LBL_CHECKSYS_OK']}</font>";
471         }else{
472             $spriteSupportStatus = "<span class='stop'><b>{$mod_strings['ERROR_SPRITE_SUPPORT']}</b></span>";
473         }
474             $envString .='
475           <tr>
476             <td></td>
477             <td><strong>'.$mod_strings['LBL_SPRITE_SUPPORT'].'</strong></td>
478             <td  >'.$spriteSupportStatus.'</td>
479           </tr>';
480
481         // Suhosin allow to use upload://
482         if (UploadStream::getSuhosinStatus() == true || (strpos(ini_get('suhosin.perdir'), 'e') !== false && strpos($_SERVER["SERVER_SOFTWARE"],'Microsoft-IIS') === false))
483         {
484             $suhosinStatus = "{$mod_strings['LBL_CHECKSYS_OK']}";
485         }
486         else
487         {
488             $suhosinStatus = "<span class='stop'><b>{$app_strings['ERR_SUHOSIN']}</b></span>";
489         }
490         $envString .= '
491         <tr>
492             <td></td>
493             <td><strong>PHP allows to use stream (' . UploadStream::STREAM_NAME . '://)</strong></td>
494             <td>' . $suhosinStatus . '</td>
495         </tr>
496         ';
497
498 // PHP.ini
499 $phpIniLocation = get_cfg_var("cfg_file_path");
500           $envString .='
501       <tr>
502         <td></td>
503         <td><strong>'.$mod_strings['LBL_CHECKSYS_PHP_INI'].'</strong></td>
504         <td  >'.$phpIniLocation.'</td>
505       </tr>';
506
507 $out .= $envString;
508
509 $out .=<<<EOQ
510
511         </table>
512         </td>
513     </tr>
514     <tr>
515         <td align="right" colspan="2">
516         <table cellspacing="0" cellpadding="0" border="0" class="stdTable">
517         <tr><th align="left" colspan="2">&nbsp;</th></tr>
518 EOQ;
519
520 // CRON Settings
521 if ( !isset($sugar_config['default_language']) )
522     $sugar_config['default_language'] = $_SESSION['default_language'];
523 if ( !isset($sugar_config['cache_dir']) )
524     $sugar_config['cache_dir'] = $sugar_config_defaults['cache_dir'];
525 if ( !isset($sugar_config['site_url']) )
526     $sugar_config['site_url'] = $_SESSION['setup_site_url'];
527 if ( !isset($sugar_config['translation_string_prefix']) )
528     $sugar_config['translation_string_prefix'] = $sugar_config_defaults['translation_string_prefix'];
529 $mod_strings_scheduler = return_module_language($GLOBALS['current_language'], 'Schedulers');
530 $error = '';
531
532 if (!isset($_SERVER['Path'])) {
533     $_SERVER['Path'] = getenv('Path');
534 }
535 if(is_windows()) {
536 if(isset($_SERVER['Path']) && !empty($_SERVER['Path'])) { // IIS IUSR_xxx may not have access to Path or it is not set
537     if(!strpos($_SERVER['Path'], 'php')) {
538 //        $error = '<em>'.$mod_strings_scheduler['LBL_NO_PHP_CLI'].'</em>';
539     }
540 }
541 $cronString = '
542                         <tr>
543                             <td align="left" colspan="2">
544                             <font color="red">
545                                                 '.$mod_strings_scheduler['LBL_CRON_WINDOWS_DESC'].'<br>
546                                 </font>
547                                                 cd '.realpath('./').'<br>
548                                                 php.exe -f cron.php
549                                                 <br>'.$error.'
550                                 </td>
551                         </tr>
552 ';
553 } else {
554 if(isset($_SERVER['Path']) && !empty($_SERVER['Path'])) { // some Linux servers do not make this available
555     if(!strpos($_SERVER['PATH'], 'php')) {
556 //        $error = '<em>'.$mod_strings_scheduler['LBL_NO_PHP_CLI'].'</em>';
557     }
558 }
559 $cronString = '
560                         <tr>
561                             <td align="left" colspan="2">
562                             <font color="red">
563                                                 '.$mod_strings_scheduler['LBL_CRON_INSTRUCTIONS_LINUX'].'
564                                 </font>
565                                                 '.$mod_strings_scheduler['LBL_CRON_LINUX_DESC'].'<br>
566                                                 *&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;
567                                                 cd '.realpath('./').'; php -f cron.php > /dev/null 2>&1
568                                                 <br>'.$error.'
569                                 </td>
570                         </tr>
571 ';
572 }
573
574 $out .= $cronString;
575
576 $out .=<<<EOQ
577         </table>
578         </td>
579     </tr>
580     <tr>
581         <td colspan='3' align='right'>
582                 <input type="button" class="button" name="print_summary" id="button_print_summary_settings" value="{$mod_strings['LBL_PRINT_SUMM']}"
583                 onClick='window.print()' onCluck='window.open("install.php?current_step="+(document.setConfig.current_step.value -1)+"&goto={$mod_strings["LBL_NEXT"]}&print=true");' />&nbsp;
584         </td>
585     </tr>
586     <tr>
587         <td align="right" colspan="2">
588         <hr>
589         <table cellspacing="0" cellpadding="0" border="0" class="stdTable">
590             <tr>
591               <td align=right>
592                     <input type="button" class="button" id="show_pass_button" value="{$mod_strings['LBL_SHOW_PASS']}"
593                     onClick='togglePass();' />
594               </td>
595                 <td>
596                         <input type="hidden" name="goto" id="goto">
597                     <input class="button" type="button" value="{$mod_strings['LBL_BACK']}" id="button_back_settings" onclick="document.getElementById('goto').value='{$mod_strings['LBL_BACK']}';document.getElementById('form').submit();" />
598                 </td>
599                 <td>
600                         <input class="button" type="button" value="{$mod_strings['LBL_LANG_BUTTON_COMMIT']}" onclick="document.getElementById('goto').value='{$mod_strings['LBL_NEXT']}';document.getElementById('form').submit();" id="button_next2"/>
601                 </td>
602             </tr>
603         </table>
604         </td>
605     </tr>
606 </table>
607 </form>
608 <br>
609 <script>
610 function togglePass(){
611     if(document.getElementById('show_site_admin_pass').style.display == ''){
612         document.getElementById('show_pass_button').value = "{$mod_strings['LBL_SHOW_PASS']}";
613         document.getElementById('hide_site_admin_pass').style.display = '';
614         document.getElementById('hide_db_admin_pass').style.display = '';
615         document.getElementById('show_site_admin_pass').style.display = 'none';
616         document.getElementById('show_db_admin_pass').style.display = 'none';
617
618     }else{
619         document.getElementById('show_pass_button').value = "{$mod_strings['LBL_HIDE_PASS']}";
620         document.getElementById('show_site_admin_pass').style.display = '';
621         document.getElementById('show_db_admin_pass').style.display = '';
622         document.getElementById('hide_site_admin_pass').style.display = 'none';
623         document.getElementById('hide_db_admin_pass').style.display = 'none';
624
625     }
626 }
627 </script>
628 </body>
629 </html>
630
631
632 EOQ;
633 echo $out;