function display()
 {
     $config = eZINI::instance('setup.ini');
     $siteType = $this->chosenSiteType();
     $availableDatabaseList = false;
     if (isset($this->PersistenceList['database_info_available'])) {
         $availableDatabaseList = $this->PersistenceList['database_info_available'];
     }
     $databaseList = $availableDatabaseList;
     $databaseCounter = 0;
     if (!isset($siteType['title'])) {
         $siteType['title'] = $siteType['name'];
     }
     $siteType['errors'] = array();
     if (!isset($siteType['url'])) {
         $siteType['url'] = 'http://' . eZSys::hostName() . eZSys::indexDir(false);
     }
     if (!isset($siteType['site_access_illegal'])) {
         $siteType['site_access_illegal'] = false;
     }
     if (!isset($siteType['db_already_chosen'])) {
         $siteType['db_already_chosen'] = false;
     }
     if (!isset($siteType['db_not_empty'])) {
         $siteType['db_not_empty'] = 0;
     }
     if (!isset($siteType['database'])) {
         if (is_array($databaseList)) {
             $matchedDBName = false;
             // First try database name match
             foreach ($databaseList as $databaseName) {
                 $dbName = trim(strtolower($databaseName));
                 $identifier = trim(strtolower($siteType['identifier']));
                 if ($dbName == $identifier) {
                     $matchedDBName = $databaseName;
                     break;
                 }
             }
             if (!$matchedDBName) {
                 $matchedDBName = $databaseList[$databaseCounter++];
             }
             $databaseList = array_values(array_diff($databaseList, array($matchedDBName)));
             $siteType['database'] = $matchedDBName;
         } else {
             $siteType['database'] = '';
         }
     }
     if (!isset($siteType['existing_database'])) {
         $siteType['existing_database'] = eZStepInstaller::DB_DATA_APPEND;
     }
     $this->Tpl->setVariable('db_not_empty', 0);
     $this->Tpl->setVariable('db_already_chosen', 0);
     $this->Tpl->setVariable('db_charset_differs', 0);
     $this->Tpl->setVariable('site_access_illegal', 0);
     $this->Tpl->setVariable('site_access_illegal_name', 0);
     // TODO: remove sites error array
     if (isset($this->Error[0])) {
         $error = $this->Error[0];
         $type = 'site';
         if (is_array($error)) {
             $type = $error['type'];
             $error = $error['error_code'];
         }
         if ($type == 'site') {
             switch ($error) {
                 case eZStepInstaller::DB_ERROR_NOT_EMPTY:
                     $this->Tpl->setVariable('db_not_empty', 1);
                     $siteType['db_not_empty'] = 1;
                     break;
                 case eZStepInstaller::DB_ERROR_ALREADY_CHOSEN:
                     $this->Tpl->setVariable('db_already_chosen', 1);
                     $siteType['db_already_chosen'] = 1;
                     break;
                 case self::SITE_ACCESS_ILLEGAL:
                     $this->Tpl->setVariable('site_access_illegal', 1);
                     $siteType['site_access_illegal'] = 1;
                     break;
             }
         } else {
             if ($type == 'db') {
                 if ($error == eZStepInstaller::DB_ERROR_CHARSET_DIFFERS) {
                     $this->Tpl->setVariable('db_charset_differs', 1);
                 }
                 $siteType['errors'][] = $this->databaseErrorInfo(array('error_code' => $error, 'database_info' => $this->PersistenceList['database_info'], 'site_type' => $siteType));
             }
         }
     }
     $this->storeSiteType($siteType);
     $this->Tpl->setVariable('database_default', $config->variable('DatabaseSettings', 'DefaultName'));
     $this->Tpl->setVariable('database_available', $availableDatabaseList);
     $this->Tpl->setVariable('site_type', $siteType);
     // Return template and data to be shown
     $result = array();
     // Display template
     $result['content'] = $this->Tpl->fetch('design:setup/init/site_details.tpl');
     $result['path'] = array(array('text' => ezpI18n::tr('design/standard/setup/init', 'Site details'), 'url' => false));
     return $result;
 }
 function setAccessValues(&$siteType)
 {
     $accessType = $siteType['access_type'];
     if ($accessType == 'url') {
         $siteType['access_type_value'] = $siteType['identifier'];
         $siteType['admin_access_type_value'] = $siteType['identifier'] . '_admin';
     } else {
         if ($accessType == 'port') {
             $siteType['access_type_value'] = 8080;
             // default port values
             $siteType['admin_access_type_value'] = 8081;
         } else {
             if ($accessType == 'hostname') {
                 $siteType['access_type_value'] = $siteType['identifier'] . '.' . eZSys::hostName();
                 $siteType['admin_access_type_value'] = $siteType['identifier'] . '-admin.' . eZSys::hostName();
             } else {
                 $siteType['access_type_value'] = $accessType;
                 $siteType['admin_access_type_value'] = $accessType . '_admin';
             }
         }
     }
 }