/home/coolpkct/www/websites/cake3.cool.rocks/admin/commands/setup.php
<?php
/**
 * Part of Showkase web site management package
 *
 * @package Showkase
 * @author Jack Hardie {@link http://www.jhardie.com}
 * @copyright Copyright (c) 2012, SimpleViewer Inc.
 */
defined('SK_ACCESS')||die('<h1>403: Forbidden</h1>');
$sep = DIRECTORY_SEPARATOR;
require_once "commands{$sep}command.php" ;
require_once "classes{$sep}sitesetupscreen.php";
require_once "classes{$sep}sitesetup.php";
require_once "classes{$sep}repairer.php";
require_once "classes{$sep}themeset.php";
require_once "classes{$sep}pageset.php";
require_once "classes{$sep}pagefactory.php";
require_once "classes{$sep}helpers.php";
require_once "classes{$sep}site.php";
 
/**
 * Command - Setup
 *
 * @package Showkase
 */
class Setup extends Command
{
    function doExecute( Request $request )
    {
        unset ($_SESSION['pageIndex']);
        $config = SkConfig::getInstance();
        $setup = new SiteSetup();
        $context = array('token' => $request->newToken());
        if ($request->propertyIsSet('setupSubmit')) {
            try {
                if (!$request->validatePost()) {
                    throw new Exception('No action. Re-submission or remote submission is not allowed.');
                }
                $oldContentPath = $config->getDocRootRelativeContentPath();
                $setup->doSetup($request);
                $themeSet = new ThemeSet();
                $site = new Site($themeSet);
                $pageFactory = new PageFactory($themeSet);
                if ($oldContentPath != $config->getDocRootRelativeContentPath()) {
                    // user may have changed installation directory name
                    // look for existing pages that might have out of date paths
                    $repairer = new Repairer();
                    $repairer->scanPagesData();
                    $repairer->rebuildPagesData(new PageSet(), $pageFactory);
                }
                $setup->saveConfig();
                $context['pageTypes'] = $themeSet->getPageTypes();
                $host = Helpers::getHost();
                $skUrl = htmlspecialchars(str_replace('\\', '/', dirname($host.$_SERVER['PHP_SELF']).'/'), ENT_QUOTES, 'UTF-8');
                Board::addMessage('<span style="font-size: 22px; font-weight: bold">Success – your site is set up.', "warning");
                $message = '
You are logged into Showkase.<br>
Your admin address is http://'.$skUrl;
                Board::addMessage($message);
                $screen = new PagesScreen('Showkase – pages', 'pages', 'pages');
                if (isset($_SESSION[SESSION_DEFAULT_PASS]) && $_SESSION[SESSION_DEFAULT_PASS]) {
                    Board::addMessage('User name: admin, password: admin');
                }
                $context['siteTitle'] = $site->getLayerVar('ss_siteTitle');
                print $screen->getHtml($context);
                return;
            } catch (Exception $e) {
              Board::addExceptionMessage($e, 'error');
            }
        }
        $screen = new SiteSetupScreen();
        print $screen->getHtml($context);
    }
}