'. $s .''; } if ( $result === S9Y_I_WARNING ) { $data['i_warning'] = true; return ''. $s .' [?]'; } if ( $result === S9Y_I_ERROR ) { $errorCount++; $data['i_error'] = true; return ''. $s .' [!]'; } } /* If register_globals is enabled and we use the dual GET/POST submission method, we will receive the value of the POST-variable inside the GET-variable, which is of course unwanted. Thus we transfer a new variable GETSTEP via POST and set that to an internal GET value. */ if (!empty($serendipity['POST']['getstep']) && is_numeric($serendipity['POST']['getstep'])) { $serendipity['GET']['step'] = $serendipity['POST']['getstep']; } /* From configuration to install */ if ( sizeof($_POST) > 1 && $serendipity['GET']['step'] == '3' ) { /* One problem, if the user chose to do an easy install, not all config vars has been transfered Therefore we fetch all config vars with their default values, and merge them with our POST data */ $config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE); foreach ( $config as $category ) { foreach ( $category['items'] as $item ) { if ( !isset($_POST[$item['var']]) ) { $_POST[$item['var']] = serendipity_query_default($item['var'], $item['default']); } } } if ( is_array($errors = serendipity_checkInstallation()) ) { $data['is_errors'] = true; $data['errors'] = $errors; $from = $_POST; /* Back to configuration, user did something wrong */ $serendipity['GET']['step'] = $serendipity['POST']['step']; } else { /* We're good, move to install process */ $serendipity['GET']['step'] = '3'; } } $data['s9yGETstep'] = $serendipity['GET']['step']; if ( (int)$serendipity['GET']['step'] == 0 ) { $data['getstepint0'] = true; $data['print_ERRORS_ARE_DISPLAYED_IN'] = sprintf(ERRORS_ARE_DISPLAYED_IN, serendipity_installerResultDiagnose(S9Y_I_ERROR, RED), serendipity_installerResultDiagnose(S9Y_I_WARNING, YELLOW), serendipity_installerResultDiagnose(S9Y_I_SUCCESS, GREEN)); $data['s9yversion'] = $serendipity['version']; $errorCount = 0; if (is_readable(S9Y_INCLUDE_PATH . 'checksums.inc.php')) { $badsums = serendipity_verifyFTPChecksums(); if (empty($badsums)) { $data['installerResultDiagnose_CHECKSUMS'][] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, CHECKSUMS_PASS); } else { foreach ($badsums as $file => $sum) { $data['installerResultDiagnose_CHECKSUMS'][] = serendipity_installerResultDiagnose(S9Y_I_WARNING, sprintf(CHECKSUM_FAILED, $file)); } } } else { $data['installerResultDiagnose_CHECKSUMS'][] = serendipity_installerResultDiagnose(S9Y_I_WARNING, CHECKSUMS_NOT_FOUND); } $data['php_uname'] = php_uname('s') .' '. php_uname('r') .', '. php_uname('m'); $data['php_sapi_name'] = php_sapi_name(); if ( version_compare(phpversion(), '5.3', '>=') ) { $data['installerResultDiagnose_VERSION'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES .', '. phpversion()); } else { $data['installerResultDiagnose_VERSION'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NO); } if ( sizeof(($_res = serendipity_probeInstallation('dbType'))) == 0 ) { $data['installerResultDiagnose_DBTYPE'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NONE); } else { $data['installerResultDiagnose_DBTYPE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, implode(', ', $_res)); } if ( extension_loaded('session') ) { $data['installerResultDiagnose_SESSION'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_SESSION'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, NO); } if ( extension_loaded('pcre') ) { $data['installerResultDiagnose_PCRE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_PCRE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, NO); } if ( extension_loaded('gd') ) { $data['installerResultDiagnose_GD'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_GD'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } if ( extension_loaded('openssl') ) { $data['installerResultDiagnose_OPENSSL'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_OPENSSL'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } if ( extension_loaded('mbstring') ) { $data['installerResultDiagnose_MBSTR'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_MBSTR'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } if ( extension_loaded('iconv') ) { $data['installerResultDiagnose_ICONV'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_ICONV'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } if ( extension_loaded('zlib') ) { $data['installerResultDiagnose_ZLIB'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_ZLIB'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } if ($binary = serendipity_query_default('convert', false)) { $data['installerResultDiagnose_IM'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, $binary); } else { $data['installerResultDiagnose_IM'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_FOUND); } if ( !serendipity_ini_bool(ini_get('safe_mode')) ) { $data['installerResultDiagnose_SSM'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF'); } else { $data['installerResultDiagnose_SSM'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON'); } if ( serendipity_ini_bool(ini_get('register_globals')) ) { $data['installerResultDiagnose_SRG'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON'); } else { $data['installerResultDiagnose_SRG'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF'); } if ( !serendipity_ini_bool(ini_get('magic_quotes_gpc')) ) { $data['installerResultDiagnose_SMQG'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF'); } else { $data['installerResultDiagnose_SMQG'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON'); } if ( !serendipity_ini_bool(ini_get('magic_quotes_runtime')) ) { $data['installerResultDiagnose_SMQR'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF'); } else { $data['installerResultDiagnose_SMQR'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, 'ON'); } if ( !serendipity_ini_bool(ini_get('session.use_trans_sid')) ) { $data['installerResultDiagnose_SSUTS'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF'); } else { $data['installerResultDiagnose_SSUTS'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON'); } if ( serendipity_ini_bool(ini_get('allow_url_fopen')) ) { $data['installerResultDiagnose_SAUF'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'ON'); } else { $data['installerResultDiagnose_SAUF'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, 'OFF'); } if ( serendipity_ini_bool(ini_get('file_uploads')) ) { $data['installerResultDiagnose_SFU'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'ON'); } else { $data['installerResultDiagnose_SFU'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, 'OFF'); } if ( serendipity_ini_bytesize(ini_get('post_max_size')) >= (10*1024*1024) ) { $data['installerResultDiagnose_SPMS'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('post_max_size')); } else { $data['installerResultDiagnose_SPMS'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('post_max_size')); } if ( serendipity_ini_bytesize(ini_get('upload_max_filesize')) >= (10*1024*1024) ) { $data['installerResultDiagnose_SUMF'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('upload_max_filesize')); } else { $data['installerResultDiagnose_SUMF'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('upload_max_filesize')); } if ( serendipity_ini_bytesize(ini_get('memory_limit')) >= ((PHP_INT_SIZE == 4 ? 8 : 16)*1024*1024) ) { $data['installerResultDiagnose_SML'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('memory_limit')); } else { $data['installerResultDiagnose_SML'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('memory_limit')); } $basewritable = False; if ( is_writable($basedir) ) { $data['installerResultDiagnose_BASE_WRITABLE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); $basewritable = True; } if ( is_writable($basedir . PATH_SMARTY_COMPILE) ) { $data['installerResultDiagnose_COMPILE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); } else { if ($basewritable && !is_dir($basedir . PATH_SMARTY_COMPILE)) { $data['installerResultDiagnose_COMPILE'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); #This directory will be created later in the process } else { $data['installerResultDiagnose_COMPILE'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE); $showWritableNote = true; } } if ( is_writable($basedir . 'archives/') ) { $data['installerResultDiagnose_ARCHIVES'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); } else { if ($basewritable && !is_dir($basedir . 'archives/')) { $data['installerResultDiagnose_ARCHIVES'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); #This directory will be created later in the process } else { $data['installerResultDiagnose_ARCHIVES'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE); $showWritableNote = true; } } if ( is_writable($basedir . 'plugins/') ) { $data['installerResultDiagnose_PLUGINS'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); } else { $data['installerResultDiagnose_PLUGINS'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_WRITABLE . NOT_WRITABLE_SPARTACUS); } if ( is_dir($basedir .'uploads/') ) { $data['is_dir_uploads'] = true; if ( is_writable($basedir . 'uploads/') ) { $data['installerResultDiagnose_UPLOADS'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); } else { if ($basewritable && !is_dir($basedir . 'uploads/')) { $data['installerResultDiagnose_UPLOADS'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE); #This directory will be created later in the process } else { $data['installerResultDiagnose_UPLOADS'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE); $showWritableNote = true; } } } if (function_exists('is_executable')) { $data['is_imb_executable'] = true; if ($binary = serendipity_query_default('convert', false)) { if (is_executable($binary)) { $data['installerResultDiagnose_IMB'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES); } else { $data['installerResultDiagnose_IMB'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NO); } } else { $data['installerResultDiagnose_IMB'] = serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_FOUND); } } $data['showWritableNote'] = $showWritableNote; $data['errorCount'] = $errorCount; } elseif ( $serendipity['GET']['step'] == '2a' ) { $config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE, null, array('simpleInstall')); $data['ob_serendipity_printConfigTemplate'] = serendipity_printConfigTemplate($config, $from, true, false, false); } elseif ( $serendipity['GET']['step'] == '2b' ) { $config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE); $data['ob_serendipity_printConfigTemplate'] = serendipity_printConfigTemplate($config, $from, true, false, false); } elseif ( $serendipity['GET']['step'] == '3' ) { $serendipity['dbPrefix'] = $_POST['dbPrefix']; $t = serendipity_db_query("SELECT * FROM {$serendipity['dbPrefix']}authors", false, 'both', false, false, false, true); $data['authors_query'] = $t; if ( is_array($t) ) { // void } else { serendipity_installDatabase(); $data['install_DB'] = true; $authorid = serendipity_addAuthor($_POST['user'], $_POST['pass'], $_POST['realname'], $_POST['email'], USERLEVEL_ADMIN, 1); $mail_comments = (serendipity_db_bool($_POST['want_mail']) ? 1 : 0); serendipity_set_user_var('mail_comments', $mail_comments, $authorid); serendipity_set_user_var('mail_trackbacks', $mail_comments, $authorid); serendipity_set_user_var('right_publish', 1, $authorid); serendipity_addDefaultGroup('USERLEVEL_EDITOR_DESC', USERLEVEL_EDITOR); serendipity_addDefaultGroup('USERLEVEL_CHIEF_DESC', USERLEVEL_CHIEF); serendipity_addDefaultGroup('USERLEVEL_ADMIN_DESC', USERLEVEL_ADMIN); $data['add_authors'] = true; serendipity_set_config_var('template', $serendipity['defaultTemplate']); $data['set_template_vars'] = true; include_once S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php'; serendipity_plugin_api::register_default_plugins(); $data['register_default_plugins'] = true; } $errors = serendipity_installFiles($basedir); $data['errors_sif'] = $errors; if ( serendipity_updateConfiguration() ) { $data['s9y_installed'] = true; } echo serendipity_smarty_show("admin/installer.inc.tpl", $data); return; } include_once dirname(dirname(__FILE__)) . "/functions.inc.php"; if (!is_object($serendipity['smarty'])) { serendipity_smarty_init(); } $serendipity['smarty']->assign($data); $tfile = serendipity_getTemplateFile("admin/installer.inc.tpl"); ob_start(); include $tfile; $content = ob_get_contents(); ob_end_clean(); // eval a string template and do not store compiled code echo $serendipity['smarty']->display('eval:'.$content); /* vim: set sts=4 ts=4 expandtab : */