smartified installer.inc

This commit is contained in:
Ian 2012-03-02 15:29:41 +01:00
parent 7689d4129f
commit 35ce0408d9
2 changed files with 563 additions and 447 deletions

View File

@ -1,6 +1,4 @@
<?php # $Id$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
if (IN_serendipity !== true) {
die ("Don't hack!");
@ -14,6 +12,8 @@ define('S9Y_I_ERROR', -1);
define('S9Y_I_WARNING', 0);
define('S9Y_I_SUCCESS', 1);
$data = array();
if (defined('S9Y_DATA_PATH')) {
// Shared installation. S9Y_INCLUDE_PATH points to repository,
// S9Y_DATA_PATH points to the local directory.
@ -23,6 +23,8 @@ if (defined('S9Y_DATA_PATH')) {
$basedir = serendipity_query_default('serendipityPath', false);
}
$data['basedir'] = $basedir;
/**
* Checks a return code constant if it's successfull or an error and return HTML code
*
@ -37,13 +39,16 @@ if (defined('S9Y_DATA_PATH')) {
function serendipity_installerResultDiagnose($result, $s) {
global $errorCount;
if ( $result === S9Y_I_SUCCESS ) {
$data['i_success'] = true;
return '<span class="serendipityAdminMsgSuccessInstall" style="color: green; font-weight: bold">'. $s .'</span>';
}
if ( $result === S9Y_I_WARNING ) {
$data['i_warning'] = true;
return '<span class="serendipityAdminMsgWarningInstall" style="color: orange; font-weight: bold">'. $s .' [?]</span>';
}
if ( $result === S9Y_I_ERROR ) {
$errorCount++;
$data['i_error'] = true;
return '<span class="serendipityAdminMsgErrorInstall" style="color: red; font-weight: bold">'. $s .' [!]</span>';
}
}
@ -56,7 +61,7 @@ if (!empty($serendipity['POST']['getstep']) && is_numeric($serendipity['POST']['
}
/* From configuration to install */
if ( sizeof($_POST) > 1 && $serendipity['GET']['step'] == 3 ) {
if ( sizeof($_POST) > 1 && (int)$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 */
@ -70,9 +75,7 @@ if ( sizeof($_POST) > 1 && $serendipity['GET']['step'] == 3 ) {
}
if ( is_array($errors = serendipity_checkInstallation()) ) {
foreach ( $errors as $error ) {
echo '<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_error.png') . '" alt="" />'. $error .'</div>';
}
$data['errors'] = $errors;
$from = $_POST;
/* Back to configuration, user did something wrong */
@ -83,451 +86,266 @@ if ( sizeof($_POST) > 1 && $serendipity['GET']['step'] == 3 ) {
}
}
$data['s9yGETstep'] = $serendipity['GET']['step'];
if ( (int)$serendipity['GET']['step'] == 0 ) {
?>
<?php echo WELCOME_TO_INSTALLATION ?>.
<br /><?php echo FIRST_WE_TAKE_A_LOOK ?>.
<br /><?php echo sprintf(ERRORS_ARE_DISPLAYED_IN, serendipity_installerResultDiagnose(S9Y_I_ERROR, RED), serendipity_installerResultDiagnose(S9Y_I_WARNING, YELLOW), serendipity_installerResultDiagnose(S9Y_I_SUCCESS, GREEN)); ?>.
<br />
<br>
<div align="center">- <?php echo sprintf(PRE_INSTALLATION_REPORT, $serendipity['version']) ?> -</div><br />
$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'];
<?php $errorCount = 0 ?>
<div align="center">
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold"><?php echo INTEGRITY ?></td>
</tr>
<?php if (is_readable(S9Y_INCLUDE_PATH . 'checksums.inc.php')) {
$badsums = serendipity_verifyFTPChecksums();
?>
<?php if (empty($badsums)) {?>
<tr>
<td colspan="2"><?php echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, CHECKSUMS_PASS); ?></td>
</tr>
<?php } else {
foreach ($badsums as $file => $sum) {
?>
<tr>
<td colspan="2"><?php echo serendipity_installerResultDiagnose(S9Y_I_WARNING, sprintf(CHECKSUM_FAILED, $file)); ?></td>
</tr>
<?php }
$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);
}
} else { ?>
<tr>
<td colspan="2"><?php echo serendipity_installerResultDiagnose(S9Y_I_WARNING, CHECKSUMS_NOT_FOUND); ?></td>
</tr>
<?php } ?>
</table>
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold"><?php echo PHP_INSTALLATION ?></td>
</tr>
<tr>
<td><?php echo OPERATING_SYSTEM ?></td>
<td><?php echo php_uname('s') .' '. php_uname('r') .', '. php_uname('m') ?></td>
</tr>
<tr>
<td><?php echo WEBSERVER_SAPI ?></td>
<td><?php echo php_sapi_name() ?></td>
</tr>
<tr>
<td>PHP version >= 5.2.6</td>
<td width="200"><?php
if ( version_compare(phpversion(), '5.2.6', '>=') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES .', '. phpversion());
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NO);
}
?></td>
</tr>
<tr>
<td>Database extensions</td>
<td width="200"><?php
if ( sizeof(($_res = serendipity_probeInstallation('dbType'))) == 0 ) {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NONE);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, implode(', ', $_res));
}
?></td>
</tr>
<tr>
<td>Session extension</td>
<td width="200"><?php
if ( extension_loaded('session') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, NO);
}
?></td>
</tr>
<tr>
<td>PCRE extension</td>
<td width="200"><?php
if ( extension_loaded('pcre') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, NO);
}
?></td>
</tr>
<tr>
<td>GDlib extension</td>
<td width="200"><?php
if ( extension_loaded('gd') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
?></td>
</tr>
<tr>
<td>OpenSSL extension</td>
<td><?php
if ( extension_loaded('openssl') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
?></td>
</tr>
<tr>
<td>mbstring extension</td>
<td width="200"><?php
if ( extension_loaded('mbstring') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
?></td>
</tr>
<tr>
<td>iconv extension</td>
<td width="200"><?php
if ( extension_loaded('iconv') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
?></td>
</tr>
<tr>
<td>zlib extension</td>
<td width="200"><?php
if ( extension_loaded('zlib') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
?></td>
</tr>
<tr>
<td>Imagemagick binary </td>
<td><?php
if ($binary = serendipity_query_default('convert', false)) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, $binary);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_FOUND);
}
?></td>
</tr>
</table>
<br />
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="3" style="font-weight: bold"><?PHP echo PHPINI_CONFIGURATION ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="150"><em><?php echo RECOMMENDED ?></em></td>
<td width="150"><em><?php echo ACTUAL ?></em></td>
</tr>
<tr>
<td>safe_mode</td>
<td width="150"><strong><?php echo 'OFF' ?></strong></td>
<td width="150"><?php
if ( !serendipity_ini_bool(ini_get('safe_mode')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON');
}
?></td>
</tr>
<tr>
<td>register_globals</td>
<td width="150"><strong><?php echo 'OFF' ?></strong></td>
<td width="150"><?php
if ( serendipity_ini_bool(ini_get('register_globals')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF');
}
?></td>
</tr>
<tr>
<td>magic_quotes_gpc</td>
<td width="150"><strong><?php echo 'OFF' ?></strong></td>
<td width="150"><?php
if ( !serendipity_ini_bool(ini_get('magic_quotes_gpc')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON');
}
?></td>
</tr>
<tr>
<td>magic_quotes_runtime</td>
<td width="150"><strong><?php echo 'OFF' ?></strong></td>
<td width="150"><?php
if ( !serendipity_ini_bool(ini_get('magic_quotes_runtime')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, 'ON');
}
?></td>
</tr>
<tr>
<td>session.use_trans_sid</td>
<td width="150"><strong><?php echo 'OFF' ?></strong></td>
<td width="150"><?php
if ( !serendipity_ini_bool(ini_get('session.use_trans_sid')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'OFF');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, 'ON');
}
?></td>
</tr>
<tr>
<td>allow_url_fopen</td>
<td width="150"><strong><?php echo 'ON' ?></strong></td>
<td width="150"><?php
if ( serendipity_ini_bool(ini_get('allow_url_fopen')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'ON');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, 'OFF');
}
?></td>
</tr>
<tr>
<td>file_uploads</td>
<td width="150"><strong><?php echo 'ON' ?></strong></td>
<td width="150"><?php
if ( serendipity_ini_bool(ini_get('file_uploads')) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, 'ON');
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, 'OFF');
}
?></td>
</tr>
<tr>
<td>post_max_size</td>
<td width="150"><strong>10M</strong></td>
<td width="150"><?php
if ( serendipity_ini_bytesize(ini_get('post_max_size')) >= (10*1024*1024) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('post_max_size'));
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('post_max_size'));
}
?></td>
</tr>
<tr>
<td>upload_max_filesize</td>
<td width="150"><strong>10M</strong></td>
<td width="150"><?php
if ( serendipity_ini_bytesize(ini_get('upload_max_filesize')) >= (10*1024*1024) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('upload_max_filesize'));
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('upload_max_filesize'));
}
?></td>
</tr>
<tr>
<td>memory_limit</td>
<td width="150"><strong><?php echo (PHP_INT_SIZE == 4 ? '8M' : '16M'); ?></strong></td>
<td width="150"><?php
if ( serendipity_ini_bytesize(ini_get('memory_limit')) >= ((PHP_INT_SIZE == 4 ? 8 : 16)*1024*1024) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, ini_get('memory_limit'));
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, ini_get('memory_limit'));
}
?></td>
</tr>
$data['php_uname'] = php_uname('s') .' '. php_uname('r') .', '. php_uname('m');
$data['php_sapi_name'] = php_sapi_name();
</table>
if ( version_compare(phpversion(), '5.2.6', '>=') ) {
$data['installerResultDiagnose_VERSION'] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES .', '. phpversion());
} else {
$data['installerResultDiagnose_VERSION'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NO);
}
<br />
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold"><?php echo PERMISSIONS ?></td>
</tr>
<tr>
<td style="vertical-align: top"><?php echo $basedir ?></td>
<td width="200"><?php
$basewritable = False;
if ( is_writable($basedir) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
$basewritable = True;
} else {
#Figure out if we already have all we need
#PATH_SMARTY_COMPILE/
#uploads/
#archives/
#.htaccess
#serendipity_config_local.inc.php
# For completeness we could test to make sure the directories
# really are directories, but that's probably overkill
foreach (array('archives/', PATH_SMARTY_COMPILE . '/', 'uploads/', '.htaccess', 'serendipity_config_local.inc.php') as $path) {
if (!is_writeable($basedir . $path)) {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
break;
}
}
if (!$showWritableNote) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
}
}
?></td>
</tr>
<tr>
<td style="vertical-align: top"><?php echo $basedir . PATH_SMARTY_COMPILE?></td>
<td width="200"><?php
if ( is_writable($basedir . PATH_SMARTY_COMPILE) ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
} else {
if ($basewritable && !is_dir($basedir . PATH_SMARTY_COMPILE)) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
#This directory will be created later in the process
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
}
}
?></td>
</tr>
<tr>
<td style="vertical-align: top"><?php echo $basedir . 'archives/'?></td>
<td width="200"><?php
if ( is_writable($basedir . 'archives/') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
} else {
if ($basewritable && !is_dir($basedir . 'archives/')) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
#This directory will be created later in the process
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
}
}
?></td>
</tr>
<tr>
<td style="vertical-align: top"><?php echo $basedir . 'plugins/'?></td>
<td width="200"><?php
if ( is_writable($basedir . 'plugins/') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_WRITABLE . NOT_WRITABLE_SPARTACUS);
}
?></td>
</tr>
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));
}
<?php if ( is_dir($basedir .'uploads/') ) { ?>
<tr>
<td style="vertical-align: top"><?php echo $basedir . 'uploads/'?></td>
<td width="200"><?php
if ( is_writable($basedir . 'uploads/') ) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
} else {
if ($basewritable && !is_dir($basedir . 'uploads/')) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
#This directory will be created later in the process
} else {
echo serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
}
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_WRITABLE'][] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
$basewritable = True;
} else {
#Figure out if we already have all we need
#PATH_SMARTY_COMPILE/
#uploads/
#archives/
#.htaccess
#serendipity_config_local.inc.php
# For completeness we could test to make sure the directories
# really are directories, but that's probably overkill
foreach (array('archives/', PATH_SMARTY_COMPILE . '/', 'uploads/', '.htaccess', 'serendipity_config_local.inc.php') as $path) {
if (!is_writeable($basedir . $path)) {
$data['installerResultDiagnose_WRITABLE'][] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
break;
}
?></td>
</tr>
<?php } ?>
<?php if (function_exists('is_executable')) { ?>
<tr>
<td style="vertical-align: top">Execute Imagemagick binary </td>
<td><?php
if ($binary = serendipity_query_default('convert', false)) {
if (is_executable($binary)) {
echo serendipity_installerResultDiagnose(S9Y_I_SUCCESS, YES);
} else {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NO);
}
}
if (!$showWritableNote) {
$data['installerResultDiagnose_WRITABLE'][] = serendipity_installerResultDiagnose(S9Y_I_SUCCESS, WRITABLE);
}
}
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 {
echo serendipity_installerResultDiagnose(S9Y_I_WARNING, NOT_FOUND);
$data['installerResultDiagnose_UPLOADS'] = serendipity_installerResultDiagnose(S9Y_I_ERROR, NOT_WRITABLE);
$showWritableNote = true;
}
?></td>
</tr>
<?php } ?>
</table>
}
}
<?php if ( $showWritableNote === true ) { ?>
<div class="serendipityAdminMsgNote"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="<?php echo serendipity_getTemplateFile('admin/img/admin_msg_note.png'); ?>" alt="" /><?php echo sprintf(PROBLEM_PERMISSIONS_HOWTO, 'chmod 1777') ?></div>
<?php } ?>
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);
}
}
<div align="center">
<?php if ( $errorCount > 0 ) { ?>
<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="<?php echo serendipity_getTemplateFile('admin/img/admin_msg_error.png'); ?>" alt="" /><?php echo PROBLEM_DIAGNOSTIC ?></div>
<h2><a href="serendipity_admin.php"><?php echo RECHECK_INSTALLATION ?></a></h2>
<?php } else { ?>
<?php echo SELECT_INSTALLATION_TYPE ?>:
<h2><a href="?serendipity[step]=2a"><?php echo SIMPLE_INSTALLATION ?></a> - <a href="?serendipity[step]=2b"><?php echo EXPERT_INSTALLATION ?></a></h2>
<?php } ?>
</div>
</div>
$data['showWritableNote'] = $showWritableNote;
$data['errorCount'] = $errorCount;
<?php } elseif ( $serendipity['GET']['step'] == '2a' ) { ?>
<form action="?" method="post">
<input type="hidden" name="serendipity[step]" value="<?php echo $serendipity['GET']['step'] ?>">
<input type="hidden" name="serendipity[getstep]" value="3">
<?php
} elseif ( $serendipity['GET']['step'] == '2a' ) {
ob_start();
$config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE, null, array('simpleInstall'));
serendipity_printConfigTemplate($config, $from, true, false, false);
?>
<div align="center"><input name="submit" type="submit" value="<?php echo COMPLETE_INSTALLATION ?>" class="serendipityPrettyButton input_button"></div>
</form>
$data['ob_serendipity_printConfigTemplate'] = ob_get_contents();
ob_end_clean();
<?php } elseif ( $serendipity['GET']['step'] == '2b' ) { ?>
<form action="?" method="post">
<input type="hidden" name="serendipity[step]" value="<?php echo $serendipity['GET']['step'] ?>">
<input type="hidden" name="serendipity[getstep]" value="3">
<?php
} elseif ( $serendipity['GET']['step'] == '2b' ) {
ob_start();
$config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE);
serendipity_printConfigTemplate($config, $from, true, false, false);
?>
<div align="center"><input name="submit" type="submit" value="<?php echo COMPLETE_INSTALLATION ?>" class="serendipityPrettyButton input_button"></div>
</form>
$data['ob_serendipity_printConfigTemplate'] = ob_get_contents();
ob_end_clean();
<?php } elseif ( (int)$serendipity['GET']['step'] == 3 ) { ?>
<?php
} elseif ( (int)$serendipity['GET']['step'] == 3 ) {
$data['getstepint3'] = true;
$serendipity['dbPrefix'] = $_POST['dbPrefix'];
echo CHECK_DATABASE_EXISTS .'...';
$t = serendipity_db_query("SELECT * FROM {$serendipity['dbPrefix']}authors", false, 'both', false, false, false, true);
$data['authors_query'] = $t;
if ( is_array($t) ) {
echo ' <strong>'. THEY_DO .'</strong>, '. WONT_INSTALL_DB_AGAIN;
echo '<br />';
echo '<br />';
// void
} else {
echo ' <strong>'. THEY_DONT .'</strong>';
echo '<br />';
serendipity_installDatabase();
$data['install_DB'] = true;
echo CREATE_DATABASE;
serendipity_installDatabase();
echo ' <strong>' . DONE . '</strong><br />';
echo sprintf(CREATING_PRIMARY_AUTHOR, htmlspecialchars($_POST['user'])) .'...';
$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);
@ -536,38 +354,34 @@ if ( (int)$serendipity['GET']['step'] == 0 ) {
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;
echo ' <strong>' . DONE . '</strong><br />';
echo SETTING_DEFAULT_TEMPLATE .'... ';
serendipity_set_config_var('template', $serendipity['defaultTemplate']);
echo ' <strong>' . DONE . '</strong><br />';
$data['set_template_vars'] = true;
echo INSTALLING_DEFAULT_PLUGINS .'... ';
include_once S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php';
serendipity_plugin_api::register_default_plugins();
echo ' <strong>' . DONE . '</strong><br />';
$data['register_default_plugins'] = true;
}
echo sprintf(ATTEMPT_WRITE_FILE, '.htaccess') . '... ';
$errors = serendipity_installFiles($basedir);
if ( $errors === true ) {
echo ' <strong>' . DONE . '</strong><br />';
} else {
echo ' <strong>' . FAILED . '</strong><br />';
foreach ( $errors as $error ) {
echo '<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_error.png') . '" alt="" />' . $error .'</div>';
}
}
$data['errors_sif'] = $errors;
if ( serendipity_updateConfiguration() ) {
echo '<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png'). '" alt="" />' . SERENDIPITY_INSTALLED .'</div>';
echo '<div align="center" style="font-size: large"><a href="'. $_POST['serendipityHTTPPath'] .'">'. VISIT_BLOG_HERE .'</a></div>';
echo '<div align="center">'. THANK_YOU_FOR_CHOOSING .'</div>';
} else {
echo '<div class="serendipityAdminMsgError"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_error.png') . '" alt="" />'. ERROR_DETECTED_IN_INSTALL .'</div>';
}
$data['s9y_installed'] = true;
}
}
if (!is_object($serendipity['smarty'])) {
serendipity_smarty_init();
}
$serendipity['smarty']->assign($data);
$tfile = dirname(__FILE__) . "/tpl/installer.inc.tpl";
$content = $serendipity['smarty']->fetch('file:'. $tfile); // short notation with Smarty3 in S9y 1.7 and up
echo $content;
/* vim: set sts=4 ts=4 expandtab : */

View File

@ -0,0 +1,302 @@
{** please return correct markup for these serendipity_installerResultDiagnose notices in the upper PHP file
{if $i_success}
return '<span class="serendipityAdminMsgSuccessInstall" style="color: green; font-weight: bold">'. $s .'</span>';
{/if}
{if $i_warning}
return '<span class="serendipityAdminMsgWarningInstall" style="color: orange; font-weight: bold">'. $s .' [?]</span>';
{/if}
{if $i_error}
return '<span class="serendipityAdminMsgErrorInstall" style="color: red; font-weight: bold">'. $s .' [!]</span>';
{/if}
**}
{* From configuration to install *}
{if ( sizeof($smarty.post) > 1 && $s9yGETstep == 3 )}
{if is_array($errors)}
{foreach $errors AS $error}
<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_error.png'}" alt="" />{$error}</div>
{/foreach}
{/if}
{/if}
{if $getstepint0}
{$CONST.WELCOME_TO_INSTALLATION}.
<br />{$CONST.FIRST_WE_TAKE_A_LOOK}.
<br />{$print_ERRORS_ARE_DISPLAYED_IN}.
<br />
<br>
<div align="center">- {$CONST.PRE_INSTALLATION_REPORT|sprintf:$s9yversion} -</div><br />
<div align="center">
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold">{$CONST.INTEGRITY}</td>
</tr>
{foreach $installerResultDiagnose_CHECKSUMS AS $cksum}
<tr>
<td colspan="2">{$cksum}</td>
</tr>
{/foreach}
</table>
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold">{$CONST.PHP_INSTALLATION}</td>
</tr>
<tr>
<td>{$CONST.OPERATING_SYSTEM}</td>
<td>{$php_uname}</td>
</tr>
<tr>
<td>{$CONST.WEBSERVER_SAPI}</td>
<td>{$php_sapi_name}</td>
</tr>
<tr>
<td>PHP version >= 5.2.6</td>
<td width="200">{$installerResultDiagnose_VERSION}</td>
</tr>
<tr>
<td>Database extensions</td>
<td width="200">{$installerResultDiagnose_DBTYPE}</td>
</tr>
<tr>
<td>Session extension</td>
<td width="200">{$installerResultDiagnose_SESSION}</td>
</tr>
<tr>
<td>PCRE extension</td>
<td width="200">{$installerResultDiagnose_PCRE}</td>
</tr>
<tr>
<td>GDlib extension</td>
<td width="200">{$installerResultDiagnose_GD}</td>
</tr>
<tr>
<td>OpenSSL extension</td>
<td>{$installerResultDiagnose_OPENSSL}</td>
</tr>
<tr>
<td>mbstring extension</td>
<td width="200">{$installerResultDiagnose_MBSTR}</td>
</tr>
<tr>
<td>iconv extension</td>
<td width="200">{$installerResultDiagnose_ICONV}</td>
</tr>
<tr>
<td>zlib extension</td>
<td width="200">{$installerResultDiagnose_ZLIB}</td>
</tr>
<tr>
<td>Imagemagick binary </td>
<td>{$installerResultDiagnose_IM}</td>
</tr>
</table>
<br />
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="3" style="font-weight: bold">{$CONST.PHPINI_CONFIGURATION}</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="150"><em>{$CONST.RECOMMENDED}</em></td>
<td width="150"><em>{$CONST.ACTUAL}</em></td>
</tr>
<tr>
<td>safe_mode</td>
<td width="150"><strong>OFF</strong></td>
<td width="150">{$installerResultDiagnose_SSM}</td>
</tr>
<tr>
<td>register_globals</td>
<td width="150"><strong>OFF</strong></td>
<td width="150">{$installerResultDiagnose_SRG}</td>
</tr>
<tr>
<td>magic_quotes_gpc</td>
<td width="150"><strong>OFF</strong></td>
<td width="150">{$installerResultDiagnose_SMQG}</td>
</tr>
<tr>
<td>magic_quotes_runtime</td>
<td width="150"><strong>OFF</strong></td>
<td width="150">{$installerResultDiagnose_SMQR}</td>
</tr>
<tr>
<td>session.use_trans_sid</td>
<td width="150"><strong>OFF</strong></td>
<td width="150">{$installerResultDiagnose_SSUTS}</td>
</tr>
<tr>
<td>allow_url_fopen</td>
<td width="150"><strong>ON</strong></td>
<td width="150">{$installerResultDiagnose_SAUF}</td>
</tr>
<tr>
<td>file_uploads</td>
<td width="150"><strong>ON</strong></td>
<td width="150">{$installerResultDiagnose_SFU}</td>
</tr>
<tr>
<td>post_max_size</td>
<td width="150"><strong>10M</strong></td>
<td width="150">{$installerResultDiagnose_SPMS}</td>
</tr>
<tr>
<td>upload_max_filesize</td>
<td width="150"><strong>10M</strong></td>
<td width="150">{$installerResultDiagnose_SUMF}</td>
</tr>
<tr>
<td>memory_limit</td>
<td width="150"><strong>{($CONST.PHP_INT_SIZE == 4) ? '8M' : '16M'}</strong></td>
<td width="150">{$installerResultDiagnose_SML}</td>
</tr>
</table>
<br />
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<tr>
<td colspan="2" style="font-weight: bold">{$CONST.PERMISSIONS}</td>
</tr>
<tr>
<td style="vertical-align: top">{$basedir}</td>
<td width="200">
{foreach $installerResultDiagnose_WRITABLE AS $fwrite}
{$fwrite}
{/foreach}
</td>
</tr>
<tr>
<td style="vertical-align: top">{$basedir}{$CONST.PATH_SMARTY_COMPILE}</td>
<td width="200">
{foreach $installerResultDiagnose_COMPILE AS $compile}
{$compile}
{/foreach}
</td>
</tr>
<tr>
<td style="vertical-align: top">{$basedir}archives/</td>
<td width="200">
{foreach $installerResultDiagnose_ARCHIVES AS $archives}
{$archives}
{/foreach}
</td>
</tr>
<tr>
<td style="vertical-align: top">{$basedir}plugins/</td>
<td width="200">
{foreach $installerResultDiagnose_PLUGINS AS $plugins}
{$plugins}
{/foreach}
</td>
</tr>
{if $is_dir_uploads}
<tr>
<td style="vertical-align: top">{$basedir}uploads/</td>
<td width="200">
{foreach $installerResultDiagnose_UPLOADS AS $uploads}
{$uploads}
{/foreach}
</td>
</tr>
{/if}
{if $is_imb_executable}
<tr>
<td style="vertical-align: top">Execute Imagemagick binary </td>
<td>
{foreach $installerResultDiagnose_IMB AS $im_binary}
{$im_binary}
{/foreach}
</td>
</tr>
{/if}
</table>
{if $showWritableNote}
<div class="serendipityAdminMsgNote"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_note.png'}" alt="" />{$CONST.PROBLEM_PERMISSIONS_HOWTO|sprintf:'chmod 1777'}</div>
{/if}
<div align="center">
{if $errorCount > 0}
<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_error.png'}" alt="" />{$CONST.PROBLEM_DIAGNOSTIC}</div>
<h2><a href="serendipity_admin.php">{$CONST.RECHECK_INSTALLATION}</a></h2>
{else}
{$CONST.SELECT_INSTALLATION_TYPE}:
<h2><a href="?serendipity[step]=2a">{$CONST.SIMPLE_INSTALLATION}</a> - <a href="?serendipity[step]=2b">{$CONST.EXPERT_INSTALLATION}</a></h2>
{/if}
</div>
</div> <!-- // div end -->
{elseif $s9yGETstep == '2a'}
<form action="?" method="post">
<input type="hidden" name="serendipity[step]" value="{$s9yGETstep}">
<input type="hidden" name="serendipity[getstep]" value="3">
{if $ob_serendipity_printConfigTemplate}{$ob_serendipity_printConfigTemplate}{/if}
<div align="center"><input name="submit" type="submit" value="{$CONST.COMPLETE_INSTALLATION}" class="serendipityPrettyButton input_button"></div>
</form>
{elseif $s9yGETstep == '2b'}
<form action="?" method="post">
<input type="hidden" name="serendipity[step]" value="{$s9yGETstep}">
<input type="hidden" name="serendipity[getstep]" value="3">
{if $ob_serendipity_printConfigTemplate}{$ob_serendipity_printConfigTemplate}{/if}
<div align="center"><input name="submit" type="submit" value="{$CONST.COMPLETE_INSTALLATION}" class="serendipityPrettyButton input_button"></div>
</form>
{elseif $getstepint3}
{$CONST.CHECK_DATABASE_EXISTS}&hellip;
{if is_array($authors_query)}
<strong>{$CONST.THEY_DO}</strong>, {$CONST.WONT_INSTALL_DB_AGAIN}
<br />
<br />
{else}
<strong>{$CONST.THEY_DONT}</strong>
<br />
{$CONST.CREATE_DATABASE}
{if $install_DB}
<strong>{$CONST.DONE}</strong><br />
{/if}
{$CONST.CREATING_PRIMARY_AUTHOR|sprintf:$marty.post.user|escape}$hellip;
{if $add_authors}
<strong>{$CONST.DONE}</strong><br />
{/if}
{$CONST.SETTING_DEFAULT_TEMPLATE}&hellip;
{if $set_template_vars}
<strong>{$CONST.DONE}</strong><br />
{/if}
{$CONST.INSTALLING_DEFAULT_PLUGINS}&hellip;
{if $register_default_plugins}
<strong>{$CONST.DONE}</strong><br />
{/if}
{/if}
{$CONST.ATTEMPT_WRITE_FILE|sprintf:'.htaccess'}&hellip;
{if $errors_sif === true}
<strong>{$CONST.DONE}</strong><br />
{else}
<strong>{$CONST.FAILED}</strong><br />
{foreach $errors_sif AS $error_f}
<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_error.png'}" alt="" />{$error_f}</div>
{/foreach}
{/if}
{if $s9y_installed}
<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_success.png'}" alt="" />{$CONST.SERENDIPITY_INSTALLED}</div>
<div align="center" style="font-size: large"><a href="{$smarty.post.serendipityHTTPPath}">{$CONST.VISIT_BLOG_HERE}</a></div>
<div align="center">{$CONST.THANK_YOU_FOR_CHOOSING}</div>
{else}
<div class="serendipityAdminMsgError"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="{serendipity_getFile file='admin/img/admin_msg_error.png'}" alt="" />{$CONST.ERROR_DETECTED_IN_INSTALL}</div>
{/if}
{/if}{* getstepint3 end *}