function render()
{
$sBigIcon = "glyph2x-magic";
$sBaikalVersion = BAIKAL_VERSION;
$sBaikalConfiguredVersion = BAIKAL_CONFIGURED_VERSION;
if (BAIKAL_CONFIGURED_VERSION === BAIKAL_VERSION) {
$sMessage = "Your system is configured to use version <strong>" . $sBaikalConfiguredVersion . "</strong>.<br />There's no upgrade to be done.";
} else {
$sMessage = "Upgrading Baïkal from version <strong>" . $sBaikalConfiguredVersion . "</strong> to version <strong>" . $sBaikalVersion . "</strong>";
}
$sHtml = <<<HTML
<header class="jumbotron subhead" id="overview">
\t<h1><i class="{$sBigIcon}"></i>Baïkal upgrade wizard</h1>
\t<p class="lead">{$sMessage}</p>
</header>
HTML;
try {
$bSuccess = $this->upgrade(BAIKAL_CONFIGURED_VERSION, BAIKAL_VERSION);
} catch (\Exception $e) {
$bSuccess = false;
$this->aErrors[] = 'Uncaught exception during upgrade: ' . (string) $e;
}
if (!empty($this->aErrors)) {
$sHtml .= "<h3>Errors</h3>" . implode("<br />\n", $this->aErrors);
}
if (!empty($this->aSuccess)) {
$sHtml .= "<h3>Successful operations</h3>" . implode("<br />\n", $this->aSuccess);
}
if ($bSuccess === false) {
$sHtml .= "<p> </p><p><span class='label label-important'>Error</span> Baïkal has not been upgraded. See the section 'Errors' for details.</p>";
} else {
$sHtml .= "<p> </p><p>Baïkal has been successfully upgraded. You may now <a class='btn btn-success' href='" . PROJECT_URI . "admin/'>Access the Baïkal admin</a></p>";
}
return $sHtml;
}