mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-27 04:56:02 +02:00
Causes minor UI issues if you try use database configuration values that happen to have " or other values in them.
291 lines
15 KiB
HTML
291 lines
15 KiB
HTML
<!doctype html>
|
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
|
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
|
|
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
|
<head>
|
|
<title>SilverStripe CMS / Framework Installation</title>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<script type="text/javascript" src="<?php echo FRAMEWORK_NAME; ?>/thirdparty/jquery/jquery.js"></script>
|
|
<script type="text/javascript" src="<?php echo FRAMEWORK_NAME; ?>/dev/install/install.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="<?php echo FRAMEWORK_NAME; ?>/dev/install/css/install.css">
|
|
<link rel="shortcut icon" href="favicon.ico">
|
|
</head>
|
|
<body>
|
|
<div id="BgContainer">
|
|
<div id="Container">
|
|
<div id="Header">
|
|
<h1>SilverStripe</h1>
|
|
<div class="left">
|
|
<h2>CMS / Framework Installation <?php if($silverstripe_version) echo "<small>Version $silverstripe_version</small>"; ?></h2>
|
|
<p>Thanks for choosing to use SilverStripe! Please follow the instructions below and you should be up in running in no time.<br>
|
|
If you get stuck, head over to the <a href="http://silverstripe.org/installing-silverstripe" target="_blank">installation forum</a>, or check out our list of <a href="http://doc.silverstripe.org/doku.php?id=suggested-web-hosts" target="_blank">suggested web hosts</a> known to work with SilverStripe.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="Navigation"> </div>
|
|
<div class="clear"><!-- --></div>
|
|
|
|
<div id="Layout">
|
|
<div class="typography">
|
|
<form action="install.php" method="post">
|
|
<?php if(isset($hasErrorOtherThanDatabase)) { ?>
|
|
<p class="message error">
|
|
You aren't currently able to install the software. Please <a href="#requirements">see below</a> for details.<br>
|
|
If you are having problems meeting the requirements, see the <a href="http://doc.silverstripe.org/framework/en/installation/server-requirements">server requirements</a>.
|
|
</p>
|
|
<?php if (isset($phpIniLocation)) { ?>
|
|
<p>Your php.ini file is located at <?php echo $phpIniLocation; ?></p>
|
|
<?php } ?>
|
|
<?php } else { ?>
|
|
<?php if($alreadyInstalled) { ?>
|
|
<div class="message warning">
|
|
<p><strong>Note:</strong> SilverStripe is already installed here.<br>
|
|
If you wish to reinstall SilverStripe, please delete the <strong>mysite/_config.php</strong> file first.</p>
|
|
</div>
|
|
<?php } else if($req->hasWarnings()) { ?>
|
|
<div class="message warning">
|
|
<p>There are some issues that we recommend you look at before installing, however, you are still able to install the software.
|
|
<br>Please see below for details. If you are having problems meeting the requirements, see the <a href="http://doc.silverstripe.org/framework/en/installation/server-requirements">server requirements</a>.</p>
|
|
</div>
|
|
<?php } else if(!$dbReq->hasErrors() && !$adminReq->hasErrors()) { ?>
|
|
<div class="message goodInstall"><p>You're ready to install! Please confirm the configuration options below. <a href="#install">Install SilverStripe</a></p>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<?php if($dbReq->hasErrors()) { ?>
|
|
<div class="message error">
|
|
<p>The database details don't appear to be correct. Please <a href="#database_credentials">review and correct</a> before installing.</p>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<?php if($adminReq->hasErrors()) { ?>
|
|
<div class="message error">
|
|
<p>Please <a href="#AdminAccount">enter an email address and password</a> for the default administrator account before installing.</p>
|
|
</div>
|
|
<?php } ?>
|
|
<?php } ?>
|
|
|
|
<h3 class="sectionHeading" id="requirements">Requirements <small>Step 1 of 5</small></h3>
|
|
<?php $req->showTable(); ?>
|
|
<?php $dbReq->showTable(); ?>
|
|
|
|
<p class="helpText requirementsHelpText">
|
|
Read more about our <a href="http://doc.silverstripe.org/framework/en/installation/server-requirements" target="_blank">server requirements</a>.
|
|
</p>
|
|
|
|
<div class="action">
|
|
<input type="submit" class="action" value="Re-check requirements">
|
|
</div>
|
|
<div class="clear"><!-- --></div>
|
|
<h3 class="sectionHeading">Database Configuration <small>Step 2 of 5</small></h3>
|
|
<div id="database_credentials" class="section">
|
|
|
|
<?php $dbReq->showTable("Database Configuration"); ?>
|
|
|
|
<p id="dbHelp" class="helpText">
|
|
SilverStripe stores its content in a relational SQL database. Please provide the username and password to connect to the server here.
|
|
If this account has permission to create databases, then we will create the database for you; otherwise, you must give the name of a
|
|
database that already exists.<br><br>
|
|
<strong>Other databases:</strong><br>
|
|
Databases in the list that are greyed out cannot currently be used. Click on them for more information and possible remedies.
|
|
</p>
|
|
<div class="fields">
|
|
<div class="field">
|
|
<ul id="database_selection">
|
|
<?php
|
|
foreach($databaseClasses as $class => $details) {
|
|
$checked = ($databaseConfig['type'] == $class || $type == $class) ? ' checked="checked"' : '';
|
|
$disabled = $help = '';
|
|
if($usingEnv) {
|
|
// All are disabled by default when environment is used
|
|
$disabled = 'disabled="disabled"';
|
|
// If SS_DATABASE_CLASS is specified, check the database in the list
|
|
if(defined('SS_DATABASE_CLASS') && SS_DATABASE_CLASS == $class) {
|
|
$checked = ' checked="checked"';
|
|
}
|
|
} else {
|
|
$disabled = !$details['supported'] || !$details['hasModule'] ? 'notavailable="true"' : '';
|
|
if ($disabled) {
|
|
if (!$details['supported'] && !$details['hasModule']) {
|
|
$help = 'PHP does not have the required extension, and SilverStripe does not have the correct module installed';
|
|
$helpText = '<li style="width:auto">'.$details['missingExtensionText'].'</li>';
|
|
$helpText .= '<li style="width:auto">'.$details['missingModuleText'].'</li>';
|
|
} else if ($details['supported'] && !$details['hasModule']) {
|
|
$help = 'PHP has the required extension, but SilverStripe is missing the module';
|
|
$helpText = '<li style="width:auto">'.$details['missingModuleText'].'</li>';
|
|
} else if (!$details['supported'] && $details['hasModule']) {
|
|
$help = 'SilverStripe has the module installed, but PHP is missing the required extension';
|
|
$helpText = '<li style="width:auto">'.$details['missingExtensionText'].'</li>';
|
|
}
|
|
$help .= "<ul>$helpText</ul>";
|
|
}
|
|
}
|
|
echo "<li>";
|
|
echo "<input id=\"$class\" class=\"databaseClass\" type=\"radio\" name=\"db[type]\" value=\"$class\"$checked $disabled>";
|
|
echo "<label class=\"left\" ".($help || $disabled ? 'style="font-weight:normal;color:grey" ' : 'style="color:green"')."for=\"$class\">{$details['title']}</label>";
|
|
if ($help) {
|
|
echo '<div class="message error databaseError"><p>'.$help.'</p></div>';
|
|
}
|
|
|
|
// generate db-specific config fields
|
|
echo '<div class="dbfields">';
|
|
if(isset($details['fields'])) foreach($details['fields'] as $fieldName => $fieldSpec) {
|
|
$fieldTitle = $fieldSpec['title'];
|
|
$fieldType = ($fieldName == 'password') ? 'password' : 'text';
|
|
|
|
// values
|
|
$defaultValue = (isset($fieldSpec['default'])) ? $fieldSpec['default'] : null;
|
|
if($usingEnv && isset($fieldSpec['envVar']) && defined($fieldSpec['envVar'])) {
|
|
$value = constant($fieldSpec['envVar']);
|
|
} else {
|
|
$value = (isset($databaseConfig[$fieldName])) ? $databaseConfig[$fieldName] : $defaultValue;
|
|
}
|
|
|
|
// attributes
|
|
$attrs = array(
|
|
'id' => "db_{$class}_{$fieldName}",
|
|
'class' => 'text',
|
|
'type' => $fieldType,
|
|
'name' => "db[$class][$fieldName]",
|
|
'value' => $value,
|
|
);
|
|
if($usingEnv && isset($fieldSpec['envVar']) && defined($fieldSpec['envVar'])) {
|
|
$attrs['disabled'] = 'disabled';
|
|
}
|
|
if(isset($fieldSpec['envVar'])) {
|
|
$attrs['class'] .= ' configured-by-env';
|
|
}
|
|
$attrHTML = '';
|
|
foreach($attrs as $attrName => $attrValue) $attrHTML .= "$attrName=\"" . htmlspecialchars($attrValue) . '"';
|
|
if(isset($fieldSpec['attributes'])) $attrs = array_merge($attrs, $fieldSpec['attributes']);
|
|
|
|
// html
|
|
echo "<div class=\"field\">";
|
|
echo "<label for=\"db_{$class}_$fieldName\">$fieldTitle:</label>";
|
|
echo "<span class=\"middleColumn\">";
|
|
echo "<input $attrHTML>";
|
|
echo "</span>";
|
|
echo "</div>";
|
|
}
|
|
echo '</div>';
|
|
|
|
echo "</li>";
|
|
}
|
|
?>
|
|
</ul>
|
|
|
|
<?php if($envFileExists) { ?>
|
|
<div id="use_environment_field" class="field">
|
|
<input id="use_environment" type="checkbox" name="useEnv" <?php if($usingEnv) echo "checked=\"checked\"" ?>>
|
|
<label for="use_environment">Use _ss_environment file for configuration (<a href="http://doc.silverstripe.org/framework/en/topics/environment-management" target="_blank">?</a>)</label>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
</div>
|
|
|
|
<div class="action">
|
|
<input type="submit" class="action" value="Re-check requirements">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="clear"><!-- --></div>
|
|
|
|
<h3 class="sectionHeading">CMS Admin Account <small>Step 3 of 5</small></h3>
|
|
|
|
<div id="AdminAccount" class="section">
|
|
|
|
<div class="fieldGroup">
|
|
<p class="helpText">We will set up the first administrator account for you automatically. You can change these details later in the "Security" section within the CMS.</p>
|
|
|
|
<div class="field">
|
|
<label for="admin_username">Email:</label>
|
|
<span class="middleColumn">
|
|
<input type="text" class="text configured-by-env" name="admin[username]" id="admin_username" value="<?php echo $adminConfig['username']; ?>" <?php if($usingEnv && defined('SS_DEFAULT_ADMIN_USERNAME')) echo 'disabled="disabled"' ?>>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label for="admin_password">Password:</label>
|
|
<span class="middleColumn">
|
|
<input type="password" class="text configured-by-env" name="admin[password]" id="admin_password" value="<?php echo $adminConfig['password']; ?>" <?php if($usingEnv && defined('SS_DEFAULT_ADMIN_PASSWORD')) echo 'disabled="disabled"' ?>>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="fieldGroup">
|
|
<p class="helpText">
|
|
"Default language" determines the default locale settings
|
|
(for dates, currencies, etc.), as well as the default language
|
|
of the CMS interface. This can be changed for each user.
|
|
<br>
|
|
<strong>Warning:</strong> The CMS interface may be missing translations in certain locales.
|
|
</p>
|
|
|
|
<div class="field">
|
|
<label for="locale">Default language:</label>
|
|
<span class="middleColumn">
|
|
<select name="locale" id="locale">
|
|
<?php
|
|
$selectedLocale = isset($_POST['locale']) ? $_POST['locale'] : $defaultLocale;
|
|
foreach($locales as $code => $title) {
|
|
$selected = $code == $selectedLocale ? ' selected="selected"' : '';
|
|
echo "<option$selected value=\"$code\">{$title}</option>\n";
|
|
}
|
|
?>
|
|
</select>
|
|
</span>
|
|
</div>
|
|
<div class="clear"><!-- --></div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3 class="sectionHeading">Theme selection <small>Step 4 of 5</small></h3>
|
|
<p class="helpText">You can change the theme or <a href="http://silverstripe.org/themes">download</a> another from the SilverStripe website after installation.</p>
|
|
<ul id="Themes">
|
|
<li><input type="radio" name="template" value="simple" id="Simple" <?php if(!isset($_POST['template']) || $_POST['template'] == 'simple') {?>checked="checked"<?php }?>><label for="Simple"><a href="https://github.com/silverstripe-themes/silverstripe-simple">Simple</a> - our default theme ready to use, or begin the <a href="http://doc.silverstripe.org/framework/en/tutorials" target="_blank">tutorial</a>.</label></li>
|
|
<li><input type="radio" name="template" value="tutorial" id="EmptyTemplate" <?php if(isset($_POST['template']) && $_POST['template'] == 'tutorial') {?>checked="checked"<?php }?>><label for="EmptyTemplate">Empty template</label></li>
|
|
</ul>
|
|
<h3 class="sectionHeading" id="install">Confirm Install <small>Step 5 of 5</small></h3>
|
|
|
|
<?php if(isset($hasErrorOtherThanDatabase)) { ?>
|
|
<p class="error">
|
|
You aren't currently able to install the software. Please <a href="#requirements">see above</a> for details.<br>
|
|
If you are having problems meeting the requirements, see the <a href="http://doc.silverstripe.org/doku.php?id=server-requirements">server requirements page</a>.
|
|
</p>
|
|
<?php } else { ?>
|
|
<p id="stats-container">
|
|
<input type="checkbox" id="stats" name="stats" checked="checked">
|
|
<label for="stats">Send information about my webserver to silverstripe.org<br />
|
|
<small>(anonymous version information, used for statistical purposes)</small>
|
|
</label><p>
|
|
|
|
<p>
|
|
<?php if($alreadyInstalled) { ?>
|
|
<input id="install_button" type="submit" disabled="disabled" class="action" name="go" value="Install SilverStripe">
|
|
<?php } else { ?>
|
|
<input id="install_button" type="submit" class="action" name="go" value="Install SilverStripe">
|
|
<?php } ?>
|
|
|
|
<span id="saving_top" style="display: none">
|
|
|
|
<img src="<?php echo FRAMEWORK_NAME; ?>/images/network-save.gif" alt="Saving">
|
|
(this will take a minute or so)
|
|
</span>
|
|
</p>
|
|
<?php } ?>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="clear"><!-- --></div>
|
|
</div>
|
|
|
|
<div id="Footer">
|
|
<div class="footerTop"><!-- --></div>
|
|
<p><a href="http://silverstripe.org">SilverStripe Open Source CMS / Framework</a> | Copyright © <?php echo date('Y'); ?> SilverStripe Limited</p>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|