mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
76dcb97a6f
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@108831 467b73ca-7a2a-4603-9d3b-597d59a354a9
337 lines
16 KiB
HTML
337 lines
16 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>SilverStripe CMS / Framework Installation</title>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<script type="text/javascript">
|
|
function $(id) {
|
|
return document.getElementById(id);
|
|
}
|
|
function show(id) {
|
|
document.getElementById(id).style.display = '';
|
|
}
|
|
function hide(id) {
|
|
document.getElementById(id).style.display = 'none';
|
|
}
|
|
function getElementsByClassName(classname, node) {
|
|
if(!node) node = document.getElementsByTagName("body")[0];
|
|
var a = [];
|
|
var re = new RegExp('\\b' + classname + '\\b');
|
|
var els = node.getElementsByTagName("*");
|
|
for(var i=0,j=els.length; i<j; i++)
|
|
if(re.test(els[i].className))a.push(els[i]);
|
|
return a;
|
|
}
|
|
function toggleDisabledFields(el) {
|
|
if(!el.checked) {
|
|
// Go through each environment supported field and enable
|
|
document.getElementById('db_server').disabled = '';
|
|
document.getElementById('db_username').disabled = '';
|
|
document.getElementById('db_password').disabled = '';
|
|
document.getElementById('admin_username').disabled = '';
|
|
document.getElementById('admin_password').disabled = '';
|
|
document.getElementById('devsites').disabled = '';
|
|
var dbs = getElementsByClassName('databaseClass');
|
|
for(var i = 0; i < dbs.length; i++) {
|
|
dbs[i].disabled = '';
|
|
}
|
|
} else {
|
|
// Go through each environment supported field and disable
|
|
document.getElementById('db_server').disabled = 'disabled';
|
|
document.getElementById('db_username').disabled = 'disabled';
|
|
document.getElementById('db_password').disabled = 'disabled';
|
|
document.getElementById('admin_username').disabled = 'disabled';
|
|
document.getElementById('admin_password').disabled = 'disabled';
|
|
document.getElementById('devsites').disabled = 'disabled';
|
|
var dbs = getElementsByClassName('databaseClass');
|
|
for(var i = 0; i < dbs.length; i++) {
|
|
dbs[i].disabled = 'disabled';
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/layout.css">
|
|
<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/typography.css">
|
|
<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/form.css">
|
|
<link rel="stylesheet" type="text/css" href="sapphire/dev/install/install.css">
|
|
<link rel="shortcut icon" href="favicon.ico">
|
|
</head>
|
|
<body>
|
|
<div id="BgContainer">
|
|
<div id="Container">
|
|
<div id="Header">
|
|
<h1>SilverStripe CMS / Framework Installation</h1>
|
|
<p>Version <?php echo $silverstripe_version; ?></p>
|
|
</div>
|
|
|
|
<div id="Navigation"> </div>
|
|
<div class="clear"><!-- --></div>
|
|
|
|
<div id="Layout">
|
|
<div class="typography">
|
|
<h1>Welcome to SilverStripe</h1>
|
|
<p>Thanks for choosing to use SilverStripe! Please follow the instructions below to get SilverStripe installed.</p>
|
|
|
|
<form action="install.php" method="post">
|
|
<?php if(isset($hasErrorOtherThanDatabase)) { ?>
|
|
<p class="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/doku.php?id=server-requirements">server requirements wiki page</a>.
|
|
</p>
|
|
<?php } else { ?>
|
|
<?php if($req->hasWarnings()) { ?>
|
|
<p class="warning">
|
|
There are some issues that we recommend you look at before installing, however, you are still able to install the software.
|
|
Please see below 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 wiki page</a>.
|
|
</p>
|
|
<?php } else if(!$dbReq->hasErrors() && !$adminReq->hasErrors()) { ?>
|
|
<p class="good">You're ready to install!</p>
|
|
<?php } ?>
|
|
|
|
<?php if($dbReq->hasErrors()) { ?>
|
|
<p class="error">
|
|
The database details don't appear to be correct. Please <a href="#database_credentials">review and correct</a> before installing.
|
|
</p>
|
|
<?php } else { ?>
|
|
<p class="good">
|
|
These database details look all good!
|
|
</p>
|
|
<?php } ?>
|
|
|
|
<?php if($adminReq->hasErrors()) { ?>
|
|
<p class="error">
|
|
Please <a href="#AdminAccount">enter an email address and password</a> for the default administrator account before installing.
|
|
</p>
|
|
<?php } ?>
|
|
|
|
<h3>Template to install:</h3>
|
|
<ul id="Themes">
|
|
<li><input type="radio" name="template" value="blackcandy" id="BlackCandy" <?php if(!isset($_POST['template']) || $_POST['template'] == 'blackcandy') {?>checked="checked"<?php }?>><label for="BlackCandy">BlackCandy, default template ready to use.</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, ready to begin the tutorial.</label></li>
|
|
</ul>
|
|
<p>You can change the template or download another from the SilverStripe website after installation.</p>
|
|
|
|
<input type="checkbox" id="stats" name="stats" checked="checked"><label for="stats">Send information on my webserver to SilverStripe (this is only version information, used for statistical purposes)</label><br>
|
|
|
|
<?php if($alreadyInstalled) { ?>
|
|
<p class="warning">
|
|
<strong>Note:</strong> It seems as though SilverStripe is already installed here. If you ask me to install, I will overwrite
|
|
the <strong>.htaccess</strong> and <strong>mysite/_config.php</strong> files.
|
|
<br>
|
|
<input type="checkbox" id="ReIn" name="force_reinstall" onclick="document.getElementById('install_button').disabled = !this.checked"><label for="ReIn">That's okay, please re-install SilverStripe and overwrite these files.</label>
|
|
</p>
|
|
<?php } ?>
|
|
|
|
<p>
|
|
<?php if($alreadyInstalled) { ?>
|
|
<input id="install_button" type="submit" disabled="disabled" class="action" name="go" value="Install SilverStripe" onclick="document.getElementById('saving_top').style.display = ''; this.value = 'Installing SilverStripe...'">
|
|
<?php } else { ?>
|
|
<input id="install_button" type="submit" class="action" name="go" value="Install SilverStripe" onclick="document.getElementById('saving_top').style.display = ''; this.value = 'Installing SilverStripe...'">
|
|
<?php } ?>
|
|
|
|
<span id="saving_top" style="display: none">
|
|
|
|
<img src="cms/images/network-save.gif">
|
|
(this will take a minute or so)
|
|
</span>
|
|
</p>
|
|
<?php } ?>
|
|
|
|
<h4 class="sectionHeading">Database</h4>
|
|
<div id="database_credentials" class="section">
|
|
<?php if($envFileExists) { ?>
|
|
<div id="use_environment_field" class="field">
|
|
<input id="use_environment" type="checkbox" name="useEnv" <?php if($usingEnv) echo "checked=\"checked\"" ?> onclick="toggleDisabledFields(this);">
|
|
<label for="use_environment">Use _ss_environment file for configuration</label>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<div class="field">
|
|
<label>Database type:</label>
|
|
<ul id="database_selection">
|
|
<?php
|
|
foreach($databaseClasses as $class => $details) {
|
|
$checked = ($databaseConfig['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 ? 'style="font-weight:normal;color:grey" ' : 'style="color:green"')."for=\"$class\">{$details['title']}</label>";
|
|
if ($help) {
|
|
echo '<div class="error databaseError">'.$help.'</div>';
|
|
}
|
|
echo "</li>";
|
|
}
|
|
?>
|
|
</ul>
|
|
</div>
|
|
<div class="field">
|
|
<label for="db_server">Database server:</label>
|
|
<span class="middleColumn">
|
|
<input id="db_server" class="text" type="text" name="db[server]" value="<?php echo $databaseConfig['server']; ?>" <?php if($usingEnv && defined('SS_DATABASE_SERVER')) echo 'disabled="disabled"'; ?>>
|
|
</span>
|
|
</div>
|
|
<div class="field">
|
|
<label for="db_username">Database username:</label>
|
|
<span class="middleColumn">
|
|
<input id="db_username" class="text" type="text" name="db[username]" value="<?php echo $databaseConfig['username']; ?>" <?php if($usingEnv && defined('SS_DATABASE_USERNAME')) echo 'disabled="disabled"'; ?>>
|
|
</span>
|
|
</div>
|
|
<div class="field">
|
|
<label for="db_password">Database password:</label>
|
|
<span class="middleColumn">
|
|
<input id="db_password" class="text" type="password" name="db[password]" value="<?php echo $databaseConfig['password']; ?>" <?php if($usingEnv && defined('SS_DATABASE_PASSWORD')) echo 'disabled="disabled"'; ?>>
|
|
</span>
|
|
</div>
|
|
<div class="field">
|
|
<label for="db_database">Database name:</label>
|
|
<span class="middleColumn">
|
|
<input id="db_database" class="text" type="text" name="db[database]" value="<?php echo $databaseConfig['database']; ?>" onchange="this.value = this.value.replace(/[\/\\:*?"<>|. \t]+/g,'');">
|
|
</span>
|
|
</div>
|
|
<div class="action">
|
|
<input type="submit" class="action" value="Re-check requirements">
|
|
</div>
|
|
</div>
|
|
|
|
<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="clear"><!-- --></div>
|
|
|
|
<?php $dbReq->showTable("Database Configuration"); ?>
|
|
|
|
<h4 class="sectionHeading">SilverStripe Administration Account</h4>
|
|
<div id="AdminAccount" class="section">
|
|
<div class="field">
|
|
<label for="admin_username">Administrator email:</label>
|
|
<span class="middleColumn">
|
|
<input type="text" class="text" 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">Administrator password:</label>
|
|
<span class="middleColumn">
|
|
<input type="password" class="text" 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 class="field">
|
|
<label for="admin_firstname">Administrator first name:</label>
|
|
<span class="middleColumn">
|
|
<input type="text" class="text" name="admin[firstname]" id="admin_firstname" value="<?php echo $adminConfig['firstname']; ?>">
|
|
</span>
|
|
</div>
|
|
<div class="field">
|
|
<label for="admin_surname">Administrator surname:</label>
|
|
<span class="middleColumn">
|
|
<input type="text" class="text" name="admin[surname]" id="admin_surname" value="<?php echo $adminConfig['surname']; ?>">
|
|
</span>
|
|
</div>
|
|
<div class="action">
|
|
<input type="submit" class="action" value="Re-check requirements">
|
|
</div>
|
|
</div>
|
|
|
|
<p id="adminAcc" class="helpText">
|
|
We will set up 1 administrator account for you automatically. Enter the email address and password. If you'd
|
|
rather log-in with a username instead of an email address, enter that instead.
|
|
</p>
|
|
|
|
<h4 class="sectionHeading">Server configuration</h4>
|
|
<div class="section">
|
|
<div class="field">
|
|
<label for="devsites">Development servers:</label>
|
|
<span class="middleColumn">
|
|
<textarea name="devsites" id="devsites" rows="5" cols="10">
|
|
<?php if(@$_POST['devsites']) echo $_POST['devsites'];
|
|
else echo 'localhost
|
|
127.0.0.1'; ?></textarea>
|
|
</span>
|
|
</div>
|
|
<div class="field">
|
|
<label for="locale">Locale:</label>
|
|
<span class="middleColumn">
|
|
<select name="locale" id="locale">
|
|
<?php
|
|
$selectedLocale = isset($_POST['locale']) ? $_POST['locale'] : $defaultLocale;
|
|
foreach($locales as $code => $details) {
|
|
$selected = $code == $selectedLocale ? ' selected="true"' : '';
|
|
echo "<option$selected value=\"$code\">{$details[0]} - {$details[1]}</option>\n";
|
|
}
|
|
?>
|
|
</select>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<p id="devHelp" class="helpText">
|
|
SilverStripe allows you to run a site in <a href="http://doc.silverstripe.org/doku.php?id=configuration">development mode</a>.
|
|
This shows all error messages in the web browser instead of emailing them to the administrator, and allows
|
|
the database to be built without logging in as administrator. Please enter the host/domain names for servers
|
|
you will be using for development.
|
|
</p>
|
|
|
|
<h4 id="requirements">Requirements</h4>
|
|
<?php $req->showTable(); ?>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="clear"><!-- --></div>
|
|
</div>
|
|
|
|
<div id="Footer">
|
|
<div class="footerTop"><!-- --></div>
|
|
<p><a href="http://www.silverstripe.org">SilverStripe Open Source CMS / Framework</a> | Copyright © 2010 SilverStripe Limited</p>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
var children = $('database_selection').childNodes;
|
|
var disabledAdapterClick = function(e) {
|
|
// Hide all existing warnings
|
|
var elements = getElementsByClassName('databaseError');
|
|
for(var i = 0; i < elements.length; i++) elements[i].style.display = 'none';
|
|
if (this.parentNode.childNodes[0].getAttribute('notavailable')) {
|
|
// Show the warning for this adapter
|
|
getElementsByClassName('databaseError', this.parentNode)[0].style.display = 'block';
|
|
return false;
|
|
}
|
|
}
|
|
for(var i = 0; i < children.length; i++) {
|
|
if (children[i].nodeType != 3) {
|
|
children[i].childNodes[0].nextSibling.onclick = disabledAdapterClick;
|
|
children[i].childNodes[0].onclick = disabledAdapterClick;
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|