\n"; echo "
\n"; echo "verifing database connection
\n"; try { $db = DB::newInstance($cfg['db']['dsn'],$cfg['db']['user'],$cfg['db']['passwd']); echo "- database connection successfull


\n"; if (!$valid) die('terminated'); switch ($_REQUEST['step']) { case 1: if (file_exists($systablefile)) { echo "using database:".$db->getDatabase()."
\n"; echo "- systables.xml found

\n"; $tablesdef = simplexml_load_file($systablefile); foreach ($tablesdef as $tabledef) { $tableInfo = TableInfo::fromXML($tabledef); if (isset($_REQUEST['createtable']) && in_array($tableInfo->getName(),$_REQUEST['createtable'])) { echo "-- creating table : ".$tableInfo->getName(); try { if ($db->tableExists($tableInfo->getName())) $db->dropTable($tableInfo->getName()); $db->createTable($tableInfo); echo "... OK

"; } catch (SQLException $e) { echo "...error!

".$e->getMessage()."
".$e->getQuery().'
'; } } if ($db->tableExists($tableInfo->getName())) { $realTableInfo = $db->table($tableInfo->getName())->getInfo(); $diff = $tableInfo->compareTo($realTableInfo); if (isset($diff->missingColumns)) { foreach ($diff->missingColumns as $missing) { $colNum = $tableInfo->getColumnNum($missing); $colInfo = $tableInfo->getColumnInfo($colNum); $preCol = false; if ($colNum > 0) $preCol = $tableInfo->getColumnInfo($colNum-1)->getName(); if ($preCol) $db->table($tableInfo->getName())->addColumn($colInfo,$preCol); else $db->table($tableInfo->getName())->addColumn($colInfo); } } if (isset($_REQUEST['removecolumns']) && in_array($tableInfo->getName(),$_REQUEST['removecolumns'])) { echo "-- fixing table : ".$tableInfo->getName(); try { if (isset($diff->additionalColumns)) { foreach($diff->additionalColumns as $colToRemove) $db->table($tableInfo->getName())->removeColumn($colToRemove); } echo "... OK

"; } catch (SQLException $e) { echo "...error!

".$e->getMessage()."
".$e->getQuery().'
'; } } } } } else { echo "- systables.xml missing

\n"; $valid = false; } if ($valid) { echo 'Go to next step page'; } else echo 'go back'; break; case 3: echo '
All done, now remove the /install directory
'; echo 'Then you can go to the admin page or the main page'; break; } echo ''; } ?>