Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 2120)
+++ branches/2.8.x/CHANGELOG	(revision 2121)
@@ -11,6 +11,9 @@
 ! = Update/Change
 ===============================================================================
 
+16 Mar-2015 Build 2121 Manuela v.d.Decken(DarkViper)
+! SqlImport::setDefaultCollation() requesting charsets modified
+! framework/initialize  some fixes and modifications
 10 Mar-2015 Build 2120 Manuela v.d.Decken(DarkViper)
 # framework/WbAdaptor some litte fixes
 + framework/WbDatabaseHelper contains now all maintenance methods from WbDatabase
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 2120)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 2121)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.4');
-if(!defined('REVISION')) define('REVISION', '2120');
+if(!defined('REVISION')) define('REVISION', '2121');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/initialize.php
===================================================================
--- branches/2.8.x/wb/framework/initialize.php	(revision 2120)
+++ branches/2.8.x/wb/framework/initialize.php	(revision 2121)
@@ -37,55 +37,56 @@
  * sanitize $_SERVER['HTTP_REFERER']
  * @param string $sWbUrl qualified startup URL of current application
  */
-	function initSanitizeHttpReferer($sWbUrl) {
-		$sTmpReferer = '';
-		if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '') {
-			$sTmpReferer = $_SERVER['HTTP_REFERER'];
-			$aRefUrl = parse_url($_SERVER['HTTP_REFERER']);
-			if ($aRefUrl !== false) {
-				$aRefUrl['host'] = isset($aRefUrl['host']) ? $aRefUrl['host'] : '';
-				$aRefUrl['path'] = isset($aRefUrl['path']) ? $aRefUrl['path'] : '';
-				$aRefUrl['fragment'] = isset($aRefUrl['fragment']) ? '#'.$aRefUrl['fragment'] : '';
-				$aWbUrl = parse_url($sWbUrl);
-				if ($aWbUrl !== false) {
-					$aWbUrl['host'] = isset($aWbUrl['host']) ? $aWbUrl['host'] : '';
-					$aWbUrl['path'] = isset($aWbUrl['path']) ? $aWbUrl['path'] : '';
-					if (strpos($aRefUrl['host'].$aRefUrl['path'],
-							   $aWbUrl['host'].$aWbUrl['path']) !== false) {
-						$aRefUrl['path'] = preg_replace('#^'.$aWbUrl['path'].'#i', '', $aRefUrl['path']);
-						$sTmpReferer = $sWbUrl.$aRefUrl['path'].$aRefUrl['fragment'];
-					}
-					unset($aWbUrl);
-				}
-				unset($aRefUrl);
-			}
-		}
-		$_SERVER['HTTP_REFERER'] = $sTmpReferer;
-	}
+    function initSanitizeHttpReferer($sWbUrl) {
+        $sTmpReferer = '';
+        if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '') {
+            define('ORG_REFERER', ($_SERVER['HTTP_REFERER'] ?: ''));
+            $sTmpReferer = $_SERVER['HTTP_REFERER'];
+            $aRefUrl = parse_url($_SERVER['HTTP_REFERER']);
+            if ($aRefUrl !== false) {
+                $aRefUrl['host'] = isset($aRefUrl['host']) ? $aRefUrl['host'] : '';
+                $aRefUrl['path'] = isset($aRefUrl['path']) ? $aRefUrl['path'] : '';
+                $aRefUrl['fragment'] = isset($aRefUrl['fragment']) ? '#'.$aRefUrl['fragment'] : '';
+                $aWbUrl = parse_url($sWbUrl);
+                if ($aWbUrl !== false) {
+                    $aWbUrl['host'] = isset($aWbUrl['host']) ? $aWbUrl['host'] : '';
+                    $aWbUrl['path'] = isset($aWbUrl['path']) ? $aWbUrl['path'] : '';
+                    if (strpos($aRefUrl['host'].$aRefUrl['path'],
+                               $aWbUrl['host'].$aWbUrl['path']) !== false) {
+                        $aRefUrl['path'] = preg_replace('#^'.$aWbUrl['path'].'#i', '', $aRefUrl['path']);
+                        $sTmpReferer = $sWbUrl.$aRefUrl['path'].$aRefUrl['fragment'];
+                    }
+                    unset($aWbUrl);
+                }
+                unset($aRefUrl);
+            }
+        }
+        $_SERVER['HTTP_REFERER'] = $sTmpReferer;
+    }
 /**
  * Set constants for system/install values
  * @throws RuntimeException
  */
-	function initSetInstallPathConstants() {
-		if(!defined('DEBUG')){ define('DEBUG', false); } // normaly set in config file
-		if(!defined('ADMIN_DIRECTORY')){ define('ADMIN_DIRECTORY', 'admin'); }
-		if(!preg_match('/xx[a-z0-9_][a-z0-9_\-\.]+/i', 'xx'.ADMIN_DIRECTORY)) {
-			throw new RuntimeException('Invalid admin-directory: ' . ADMIN_DIRECTORY);
-		}
-		if(!defined('WB_PATH')){ define('WB_PATH', dirname(dirname(__FILE__))); }
-		if(!defined('ADMIN_URL')){ define('ADMIN_URL', rtrim(WB_URL, '/\\').'/'.ADMIN_DIRECTORY); }
-		if(!defined('ADMIN_PATH')){ define('ADMIN_PATH', WB_PATH.'/'.ADMIN_DIRECTORY); }
-		if(!defined('WB_REL')){
-			$x1 = parse_url(WB_URL);
-			define('WB_REL', (isset($x1['path']) ? $x1['path'] : ''));
-		}
-		if(!defined('ADMIN_REL')){ define('ADMIN_REL', WB_REL.'/'.ADMIN_DIRECTORY); }
-		if(!defined('DOCUMENT_ROOT')) {
-			define('DOCUMENT_ROOT', preg_replace('/'.preg_quote(str_replace('\\', '/', WB_REL), '/').'$/', '', str_replace('\\', '/', WB_PATH)));
-			$_SERVER['DOCUMENT_ROOT'] = DOCUMENT_ROOT;
-		}
-		if(!defined('TMP_PATH')){ define('TMP_PATH', WB_PATH.'/temp'); }
-	}
+    function initSetInstallPathConstants() {
+        if(!defined('DEBUG')){ define('DEBUG', false); } // normaly set in config file
+        if(!defined('ADMIN_DIRECTORY')){ define('ADMIN_DIRECTORY', 'admin'); }
+        if(!preg_match('/xx[a-z0-9_][a-z0-9_\-\.]+/i', 'xx'.ADMIN_DIRECTORY)) {
+            throw new RuntimeException('Invalid admin-directory: ' . ADMIN_DIRECTORY);
+        }
+        if(!defined('WB_PATH')){ define('WB_PATH', dirname(__DIR__)); }
+        if(!defined('ADMIN_URL')){ define('ADMIN_URL', rtrim(WB_URL, '/\\').'/'.ADMIN_DIRECTORY); }
+        if(!defined('ADMIN_PATH')){ define('ADMIN_PATH', WB_PATH.'/'.ADMIN_DIRECTORY); }
+        if(!defined('WB_REL')){
+            $x1 = parse_url(WB_URL);
+            define('WB_REL', (isset($x1['path']) ? $x1['path'] : ''));
+        }
+        if(!defined('ADMIN_REL')){ define('ADMIN_REL', WB_REL.'/'.ADMIN_DIRECTORY); }
+        if(!defined('DOCUMENT_ROOT')) {
+            define('DOCUMENT_ROOT', preg_replace('/'.preg_quote(str_replace('\\', '/', WB_REL), '/').'$/', '', str_replace('\\', '/', WB_PATH)));
+            $_SERVER['DOCUMENT_ROOT'] = DOCUMENT_ROOT;
+        }
+        if(!defined('TMP_PATH')){ define('TMP_PATH', WB_PATH.'/temp'); }
+    }
 /**
  * checkValidCaller
  * @param array $aCaller list of allowed scripts
@@ -93,22 +94,22 @@
  * @throws RuntimeException
  * @description test if acctual file is called from one of the given list
  */
-	function initCheckValidCaller(array $aCaller)
-	{
+    function initCheckValidCaller(array $aCaller)
+    {
         return true;
-		$x = debug_backtrace();
-		if(sizeof($x) == 0) {
-			return true;
-		}
-		$sPattern = '/('.str_replace('#', '|', preg_quote(implode('#', $aCaller), '/')).')$/si';
-		foreach($x as $aStep) {
-			// define the scripts which can read the configuration
-			if(preg_match($sPattern, $aStep['file'])) {
-				return true;
-			}
-		}
-		throw new RuntimeException('illegal file request!');
-	}
+        $x = debug_backtrace();
+        if(sizeof($x) == 0) {
+            return true;
+        }
+        $sPattern = '/('.str_replace('#', '|', preg_quote(implode('#', $aCaller), '/')).')$/si';
+        foreach($x as $aStep) {
+            // define the scripts which can read the configuration
+            if(preg_match($sPattern, $aStep['file'])) {
+                return true;
+            }
+        }
+        throw new RuntimeException('illegal file request!');
+    }
 /**
  * Read DB settings from configuration file
  * @return array
@@ -115,41 +116,44 @@
  * @throws RuntimeException
  * 
  */
-	function initReadSetupFile()
-	{
-	// check for valid file request. Becomes more stronger in next version
-		initCheckValidCaller(array('save.php','index.php','config.php','upgrade-script.php'));
-		$aCfg = array();
+    function initReadSetupFile()
+    {
+    // check for valid file request. Becomes more stronger in next version
+        initCheckValidCaller(array('save.php','index.php','config.php','upgrade-script.php'));
+        $aCfg = array();
 
-		$sSetupFile = dirname(dirname(__FILE__)).'/setup.ini.php';
-		if(is_readable($sSetupFile)) {
-			$aCfg = parse_ini_file($sSetupFile, true);
-			foreach($aCfg['Constants'] as $key=>$value) {
-				switch($key):
-					case 'DEBUG':
-						$value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
-						if(!defined('DEBUG')) { define('DEBUG', $value); }
-						break;
-					case 'WB_URL': // << case is set deprecated
-					case 'AppUrl':
-						$value = trim(str_replace('\\', '/', $value), '/'); 
-						if(!defined('WB_URL')) { define('WB_URL', $value); }
-						break;
-					case 'ADMIN_DIRECTORY': // << case is set deprecated
-					case 'AcpDir':
-						$value = trim(str_replace('\\', '/', $value), '/'); 
-						if(!defined('ADMIN_DIRECTORY')) { define('ADMIN_DIRECTORY', $value); }
-						break;
-					default:
-						if(!defined($key)) { define($key, $value); }
-						break;
-				endswitch;
-			}
-		}
-		return $aCfg;
-//		throw new RuntimeException('unable to read setup.ini.php');
-	}
- /**
+        $sSetupFile = dirname(dirname(__FILE__)).'/setup.ini.php';
+        if(is_readable($sSetupFile)) {
+            $aCfg = parse_ini_file($sSetupFile, true);
+            if (!isset($aCfg['Constants']) || !isset($aCfg['DataBase'])) {
+                throw new InvalidArgumentException('configuration missmatch in setup.ini.php');
+            }
+            foreach($aCfg['Constants'] as $key=>$value) {
+                switch($key):
+                    case 'DEBUG':
+                        $value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
+                        if(!defined('DEBUG')) { define('DEBUG', $value); }
+                        break;
+                    case 'WB_URL': // << case is set deprecated
+                    case 'AppUrl':
+                        $value = trim(str_replace('\\', '/', $value), '/');
+                        if(!defined('WB_URL')) { define('WB_URL', $value); }
+                        break;
+                    case 'ADMIN_DIRECTORY': // << case is set deprecated
+                    case 'AcpDir':
+                        $value = trim(str_replace('\\', '/', $value), '/');
+                        if(!defined('ADMIN_DIRECTORY')) { define('ADMIN_DIRECTORY', $value); }
+                        break;
+                    default:
+                        if(!defined($key)) { define($key, $value); }
+                        break;
+                endswitch;
+            }
+        }
+        return $aCfg;
+//      throw new RuntimeException('unable to read setup.ini.php');
+    }
+/**
  * GetDbConnectData
  * @param array $aCfg
  * @param string $sDbConnectType  can be 'url' or 'dsn'
@@ -156,43 +160,44 @@
  * @return array
  *
  */
-	function initGetDbConnectData(array $aCfg, $sDbConnectType = 'url')
-	{
-		if(defined('DB_TYPE'))
-		{
-		// import constants for compatibility reasons
-			$db = array();
-			if(defined('DB_TYPE'))      { $db['type']         = DB_TYPE; }
-			if(defined('DB_USERNAME'))  { $db['user']         = DB_USERNAME; }
-			if(defined('DB_PASSWORD'))  { $db['pass']         = DB_PASSWORD; }
-			if(defined('DB_HOST'))      { $db['host']         = DB_HOST; }
-			if(defined('DB_PORT'))      { $db['port']         = DB_PORT; }
-			if(defined('DB_NAME'))      { $db['name']         = DB_NAME; }
-			if(defined('DB_CHARSET'))   { $db['charset']      = DB_CHARSET; }
-			if(defined('TABLE_PREFIX')) { $db['table_prefix'] = TABLE_PREFIX; }
-			$aCfg['DataBase'] = $db;
-		}
-		// sanitize values
-		$db = $aCfg['DataBase'];
-		$db['type'] = isset($db['type']) ? $db['type'] : 'mysql';
-		$db['user'] = isset($db['user']) ? $db['user'] : 'foo';
-		$db['pass'] = isset($db['pass']) ? $db['pass'] : 'bar';
-		$db['host'] = isset($db['host']) ? $db['host'] : 'localhost';
-		$db['port'] = isset($db['port']) ? $db['port'] : '3306';
-		$db['port'] = ($db['port'] != '3306') ? $db['port'] : '';
-		$db['name'] = isset($db['name']) ? $db['name'] : 'dummy';
-		$db['charset'] = isset($db['charset']) ? trim($db['charset']) : 'utf8';
-		$db['table_prefix'] = (isset($db['table_prefix']) ? $db['table_prefix'] : '');
+    function initGetDbConnectData(array $aCfg, $sDbConnectType = 'url')
+    {
+        if(defined('DB_TYPE'))
+        {
+        // import constants for compatibility reasons
+            $db = array();
+            if(defined('DB_TYPE'))      { $db['type']         = DB_TYPE; }
+            if(defined('DB_USERNAME'))  { $db['user']         = DB_USERNAME; }
+            if(defined('DB_PASSWORD'))  { $db['pass']         = DB_PASSWORD; }
+            if(defined('DB_HOST'))      { $db['host']         = DB_HOST; }
+            if(defined('DB_PORT'))      { $db['port']         = DB_PORT; }
+            if(defined('DB_NAME'))      { $db['name']         = DB_NAME; }
+            if(defined('DB_CHARSET'))   { $db['charset']      = DB_CHARSET; }
+            if(defined('TABLE_PREFIX')) { $db['table_prefix'] = TABLE_PREFIX; }
+            $aCfg['DataBase'] = $db;
+        }
+        // sanitize values
+        $db = $aCfg['DataBase'];
+        $db['type'] = isset($db['type']) ? $db['type'] : 'mysql';
+        $db['user'] = isset($db['user']) ? $db['user'] : 'foo';
+        $db['pass'] = isset($db['pass']) ? $db['pass'] : 'bar';
+        $db['host'] = isset($db['host']) ? $db['host'] : 'localhost';
+        $db['port'] = isset($db['port']) ? $db['port'] : '3306';
+        $db['port'] = ($db['port'] != '3306') ? $db['port'] : '';
+        $db['socket'] = isset($db['socket']) ? $db['socket'] : '';
+        $db['name'] = isset($db['name']) ? $db['name'] : 'dummy';
+        $db['charset'] = isset($db['charset']) ? trim($db['charset']) : 'utf8';
+        $db['table_prefix'] = (isset($db['table_prefix']) ? $db['table_prefix'] : '');
         if (isset($db['options']) && is_array($db['options'])) {
             foreach ($db['options'] as $key=>$value) {
                 $aRetval['options'][constant($key)] = $value;
             }
         }
-		if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $db['table_prefix']); }
-		if($sDbConnectType == 'dsn') {
-		// build dsn to connect
+        if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $db['table_prefix']); }
+        if($sDbConnectType == 'dsn') {
+        // build dsn to connect
             $aRetval['dsn']      = $db['type'].':dbname='.$db['name'].';host='.$db['host']
-						         . ($db['port'] != '' ? ';port='.(int)$db['port'] : '');
+                                 . ($db['port'] != '' ? ';port='.(int)$db['port'] : '');
             if ($db['charset'] == 'utf8') {
                 $aRetval['dsn'] .= ';charset=UTF8';
                 $aRetval['options'][constant('PDO::MYSQL_ATTR_INIT_COMMAND')]  = 'SET NAMES \'UTF8\'';
@@ -201,170 +206,172 @@
             $aRetval['user']     = $db['user'];
             $aRetval['password'] = $db['pass'];
             $aRetval['addons']   = array('CHARSET' => $db['charset'], 'TABLE_PREFIX' => $db['table_prefix']);
-		}else { 
-		// build url to connect
+        }else {
+        // build url to connect
             $aRetval['url'] = $db['type'].'://'.$db['user'].':'.$db['pass'].'@'
-						    . $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
-						    . '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
-		}
-		return $aRetval;
-	}
+                            . $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
+                            . '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
+        }
+        return $aRetval;
+    }
 
 /* ***************************************************************************************
  * Start initialization                                                                  *
  ****************************************************************************************/
+// test for existing and active old config.php
+    if (defined('TABLE_PREFIX')) { /** TODO */ }
 // initialize debug evaluation values ---	
-	$starttime = array_sum(explode(" ",microtime()));
-	$iPhpDeclaredClasses = sizeof(get_declared_classes());
-	$sDbConnectType = 'url'; // depending from class WbDatabase it can be 'url' or 'dsn'
-// PHP less then 5.3.2 is prohibited ---
-	if (version_compare(PHP_VERSION, '5.3.2', '<')) {
-		$sMsg = '<p style="color: #ff0000;">WebsiteBaker is not able to run with PHP-Version less then 5.3.2!!<br />'
-		      . 'Please change your PHP-Version to any kind from 5.3.2 and up!<br />'
-		      . 'If you have problems to solve that, ask your hosting provider for it.<br  />'
-		      . 'The very best solution is the use of PHP-5.4 and up</p>';
-		die($sMsg);
-	}
-// disable all kind of magic_quotes in PHP versions before 5.4 ---
-	if (function_exists('get_magic_quotes_gpc') && filter_var(get_magic_quotes_gpc(), FILTER_VALIDATE_BOOLEAN)) {
-		$sMsg = '<p style="color: #ff0000;">WebsiteBaker is not able to run with magic_quotes=on!!<br />'
-		      . 'Please change your PHP-ini or add a _htaccess file to switch this setting to off!<br />'
-		      . 'If you have problems to solve that, ask your hosting provider for it.<br  />'
-		      . 'The very best solution is the use of PHP-5.4 and up</p>';
-		die($sMsg);
-	}
+    $starttime = array_sum(explode(" ",microtime()));
+    $iPhpDeclaredClasses = sizeof(get_declared_classes());
+    $sDbConnectType = 'url'; // depending from class WbDatabase it can be 'url' or 'dsn'
+    // calculate maximum timestamp
+    if (!defined('MAX_TIMESTAMP')) { define('MAX_TIMESTAMP', pow(2, 31)-1); } // 2038-01-19 04:14:07
+// PHP less then 5.4.0 is prohibited ---
+    if (version_compare(PHP_VERSION, '5.4.0', '<')) {
+        $sMsg = '<p style="color: #ff0000;">WebsiteBaker is not able to run with PHP-Version less then 5.4.0!!<br />'
+              . 'Please change your PHP-Version to any kind from 5.4.0 and up!<br />'
+              . 'If you have problems to solve that, ask your hosting provider for it.<br  />'
+              . 'The very best solution is the use of PHP-5.5 and up</p>';
+        die($sMsg);
+    }
+    if (! defined('SYSTEM_RUN')) { define('SYSTEM_RUN', true); }
 // load configuration ---
-	$aCfg = initReadSetupFile();
+    $aCfg = initReadSetupFile();
 // sanitize $_SERVER['HTTP_REFERER'] ---
-	initSetInstallPathConstants();
-	initSanitizeHttpReferer(WB_URL);
+    initSetInstallPathConstants();
+    initSanitizeHttpReferer(WB_URL);
 // register WB basic autoloader ---
-	$sTmp = dirname(__FILE__).'/WbAutoloader.php';
-	if(!class_exists('WbAutoloader')){ 
-		include($sTmp);
-	}
-	WbAutoloader::doRegister(array(ADMIN_DIRECTORY=>'a', 'modules'=>'m', 'templates'=>'t', 'include'=>'i'));
+    $sTmp = dirname(__FILE__).'/WbAutoloader.php';
+    if(!class_exists('WbAutoloader')){
+        include($sTmp);
+    }
+    WbAutoloader::doRegister(array(ADMIN_DIRECTORY=>'a', 'modules'=>'m', 'templates'=>'t', 'include'=>'i'));
 // instantiate and initialize adaptor for temporary registry replacement ---
     $oReg = WbAdaptor::getInstance();
-	$oReg->getWbConstants();
+    $oReg->getWbConstants();
 // register TWIG autoloader ---
-	$sTmp = dirname(dirname(__FILE__)).'/include/Sensio/Twig/lib/Twig/Autoloader.php';
-	if(!class_exists('Twig_Autoloader')) { 
-		include($sTmp); 
-	}
-	Twig_Autoloader::register();
+    $sTmp = dirname(dirname(__FILE__)).'/include/Sensio/Twig/lib/Twig/Autoloader.php';
+    if(!class_exists('Twig_Autoloader') && is_readable($sTmp)) {
+        include($sTmp);
+    	Twig_Autoloader::register();
+    }
 // register PHPMailer autoloader ---
-    if (!function_exists('PHPMailerAutoload')) {
-        require($oReg->AppPath.'include/phpmailer/PHPMailerAutoload.php');
+    $sTmp = $oReg->AppPath.'include/phpmailer/PHPMailerAutoload.php';
+    if (!function_exists('PHPMailerAutoload') && is_readable($sTmp)) {
+        require($sTmp);
     }
 // aktivate exceptionhandler ---
-	if(!function_exists('globalExceptionHandler')) {
-		include(dirname(__FILE__).'/globalExceptionHandler.php');
-	}
+    if(!function_exists('globalExceptionHandler')) {
+        include(dirname(__FILE__).'/globalExceptionHandler.php');
+    }
 // ---------------------------
 // get Database connection data from configuration
-	$aSqlData = initGetDbConnectData($aCfg, $sDbConnectType);
+    $aSqlData = initGetDbConnectData($aCfg, $sDbConnectType);
 // Create global database instance ---
-	$oDb = $database = WbDatabase::getInstance();
-	if($sDbConnectType == 'dsn') {
-		$bTmp = $oDb->doConnect($aSqlData['dsn'], $aSqlData['user'], $aSqlData['password'], null, $aSqlData['addons']);
-	}else {
-		$bTmp = $oDb->doConnect($aSqlData['url']);
-	}
+    $oDb = $database = WbDatabase::getInstance();
+    if($sDbConnectType == 'dsn') {
+        $bTmp = $oDb->doConnect($aSqlData['dsn'], $aSqlData['user'], $aSqlData['password'], null, $aSqlData['addons']);
+    }else {
+        $bTmp = $oDb->doConnect($aSqlData['url']);
+    }
 // remove critical data from memory
-	unset($aSqlData, $aCfg);
+    unset($aSqlData, $aCfg);
 
-	if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $oDb->TablePrefix); }
+    if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $oDb->TablePrefix); }
 
 // load global settings from database and define global consts from ---
-	$sql = 'SELECT `name`, `value` FROM `'.TABLE_PREFIX.'settings`';
-	if(($oSettings = $database->query($sql))) {
-		if(!$oSettings->numRows()) { throw new AppException('no settings found'); }
-		while($aSetting = $oSettings->fetchRow(MYSQL_ASSOC)) {
-			//sanitize true/false values
-			$aSetting['value'] = ($aSetting['value'] == 'true' 
-								  ? true 
-								  : ($aSetting['value'] == 'false' 
-									 ? false 
-									 : $aSetting['value'])
-								 );
-			$sSettingName = strtoupper($aSetting['name']);
-			switch($sSettingName):
-				case 'STRING_FILE_MODE':
-					$iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600);
-					if(!defined('OCTAL_FILE_MODE')) { define('OCTAL_FILE_MODE', $iTmp); }
-					if(!defined('STRING_FILE_MODE')) { define('STRING_FILE_MODE', sprintf('0%03o', $iTmp)); }
-					break;
-				case 'STRING_DIR_MODE':
-					$iTmp = (intval(octdec($aSetting['value'])) |0711);
-					if(!defined('OCTAL_DIR_MODE')) { define('OCTAL_DIR_MODE', $iTmp); }
-					if(!defined('STRING_DIR_MODE')) { define('STRING_DIR_MODE', sprintf('0%03o', $iTmp)); }
-					break;
-				case 'PAGES_DIRECTORY':
-					// sanitize pages_directory
-					$sTmp = trim($aSetting['value'], '/');
-					$sTmp = ($sTmp == '' ? '' : '/'.$sTmp);
-					if(!defined('PAGES_DIRECTORY')) { define('PAGES_DIRECTORY', $sTmp); }
-					break;
-				default: // make global const from setting
-					if(!defined($sSettingName)) { define($sSettingName, $aSetting['value']); }
-					break;
-			endswitch;
-		}
-	}else { throw new AppException($database->get_error()); }
+    $sql = 'SELECT `name`, `value` FROM `'.$oDb->TablePrefix.'settings`';
+    if(($oSettings = $oDb->doQuery($sql))) {
+        if(!$oSettings->numRows()) { throw new AppException('no settings found'); }
+        while($aSetting = $oSettings->fetchRow(MYSQL_ASSOC)) {
+            //sanitize true/false values
+            $aSetting['value'] = ($aSetting['value'] == 'true'
+                                  ? true
+                                  : ($aSetting['value'] == 'false'
+                                     ? false
+                                     : $aSetting['value'])
+                                 );
+            $sSettingName = strtoupper($aSetting['name']);
+            switch($sSettingName):
+                case 'STRING_FILE_MODE':
+                    $iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600);
+                    if(!defined('OCTAL_FILE_MODE')) { define('OCTAL_FILE_MODE', $iTmp); } // deprecated
+                    if(!defined('FILE_MODE_OCTAL')) { define('FILE_MODE_OCTAL', $iTmp); }
+                    if(!defined('STRING_FILE_MODE')) { define('STRING_FILE_MODE', sprintf('0%03o', $iTmp)); } // deprecated
+                    if(!defined('FILE_MODE_STRING')) { define('FILE_MODE_STRING', sprintf('0%03o', $iTmp)); }
+                    break;
+                case 'STRING_DIR_MODE':
+                    $iTmp = (intval(octdec($aSetting['value'])) |0711);
+                    if(!defined('OCTAL_DIR_MODE')) { define('OCTAL_DIR_MODE', $iTmp); } // deprecated
+                    if(!defined('DIR_MODE_OCTAL')) { define('DIR_MODE_OCTAL', $iTmp); }
+                    if(!defined('STRING_DIR_MODE')) { define('STRING_DIR_MODE', sprintf('0%03o', $iTmp)); } // deprecated
+                    if(!defined('DIR_MODE_STRING')) { define('DIR_MODE_STRING', sprintf('0%03o', $iTmp)); }
+                    break;
+                case 'PAGES_DIRECTORY':
+                    // sanitize pages_directory
+                    $sTmp = trim($aSetting['value'], '/');
+                    $sTmp = ($sTmp == '' ? '' : '/'.$sTmp);
+                    if(!defined('PAGES_DIRECTORY')) { define('PAGES_DIRECTORY', $sTmp); }
+                    break;
+                default: // make global const from setting
+                    if(!defined($sSettingName)) { define($sSettingName, $aSetting['value']); }
+                    break;
+            endswitch;
+        }
+    }else { throw new AppException($database->get_error()); }
 // set error-reporting from loaded settings ---
-	if(intval(ER_LEVEL) > 0 ) {
-		error_reporting(ER_LEVEL);
-		if( intval(ini_get ( 'display_errors' )) == 0 ) {
-			ini_set('display_errors', 1);
-		}
-	}
+    if(intval(ER_LEVEL) > 0 ) {
+        error_reporting(ER_LEVEL);
+        if( intval(ini_get ( 'display_errors' )) == 0 ) {
+            ini_set('display_errors', 1);
+        }
+    }
 // Start a session ---
-	if(!defined('SESSION_STARTED')) {
-		session_name(APP_NAME.'_session_id');
-		@session_start();
-		define('SESSION_STARTED', true);
-	}
+    if(!defined('SESSION_STARTED')) {
+        session_name(APP_NAME.'_session_id');
+        @session_start();
+        define('SESSION_STARTED', true);
+    }
 // get/set server timezone ---
-	if(!defined('SERVER_TIMEZONE')) { define('SERVER_TIMEZONE', "UTC"); }
-	date_default_timezone_set( SERVER_TIMEZONE );
-	if(!defined('MAX_TIME')) { define('MAX_TIME', (pow(2, 31)-1)); } // 32-Bit Timestamp of 19 Jan 2038 03:14:07 GMT
-	$sTmp = (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] != '') ? $_SERVER['HTTP_DNT'] : '0';
-	if(!defined('DO_NOT_TRACK')) { define('DO_NOT_TRACK', ($sTmp[0] == '1')); }
+    if(!defined('SERVER_TIMEZONE')) { define('SERVER_TIMEZONE', "UTC"); }
+    date_default_timezone_set( SERVER_TIMEZONE );
+    if(!defined('MAX_TIME')) { define('MAX_TIME', (pow(2, 31)-1)); } // 32-Bit Timestamp of 19 Jan 2038 03:14:07 GMT
+    $sTmp = (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] != '') ? $_SERVER['HTTP_DNT'] : '0';
+    if(!defined('DO_NOT_TRACK')) { define('DO_NOT_TRACK', ($sTmp[0] == '1')); }
 // get/set users timezone ---
-	if(!defined('TIMEZONE')) { define('TIMEZONE', (isset($_SESSION['TIMEZONE']) ? $_SESSION['TIMEZONE'] : DEFAULT_TIMEZONE)); }
-	if(!defined('DATE_FORMAT')) { define('DATE_FORMAT', (isset($_SESSION['DATE_FORMAT']) ? $_SESSION['DATE_FORMAT'] : DEFAULT_DATE_FORMAT)); }
-	if(!defined('TIME_FORMAT')) { define('TIME_FORMAT', (isset($_SESSION['TIME_FORMAT']) ? $_SESSION['TIME_FORMAT'] : DEFAULT_TIME_FORMAT)); }
+    if(!defined('TIMEZONE')) { define('TIMEZONE', (isset($_SESSION['TIMEZONE']) ? $_SESSION['TIMEZONE'] : DEFAULT_TIMEZONE)); }
+    if(!defined('DATE_FORMAT')) { define('DATE_FORMAT', (isset($_SESSION['DATE_FORMAT']) ? $_SESSION['DATE_FORMAT'] : DEFAULT_DATE_FORMAT)); }
+    if(!defined('TIME_FORMAT')) { define('TIME_FORMAT', (isset($_SESSION['TIME_FORMAT']) ? $_SESSION['TIME_FORMAT'] : DEFAULT_TIME_FORMAT)); }
 // set Theme directory --- 
-	if(!defined('THEME_URL')) { define('THEME_URL',  WB_URL.'/templates/'.DEFAULT_THEME); }
-	if(!defined('THEME_PATH')) { define('THEME_PATH', WB_PATH.'/templates/'.DEFAULT_THEME); }
-	if(!defined('THEME_REL')) { define('THEME_REL',  WB_REL.'/templates/'.DEFAULT_THEME); }
+    if(!defined('THEME_URL')) { define('THEME_URL',  WB_URL.'/templates/'.DEFAULT_THEME); }
+    if(!defined('THEME_PATH')) { define('THEME_PATH', WB_PATH.'/templates/'.DEFAULT_THEME); }
+    if(!defined('THEME_REL')) { define('THEME_REL',  WB_REL.'/templates/'.DEFAULT_THEME); }
 // extended wb editor settings
-	if(!defined('EDIT_ONE_SECTION')) { define('EDIT_ONE_SECTION', false); }
-	if(!defined('EDITOR_WIDTH')) { define('EDITOR_WIDTH', 0); }
+    if(!defined('EDIT_ONE_SECTION')) { define('EDIT_ONE_SECTION', false); }
+    if(!defined('EDITOR_WIDTH')) { define('EDITOR_WIDTH', 0); }
 // define form security class and preload it ---
-	$sSecMod = (defined('SECURE_FORM_MODULE') && SECURE_FORM_MODULE != '') ? '.'.SECURE_FORM_MODULE : '';
-	$sSecMod = WB_PATH.'/framework/SecureForm'.$sSecMod.'.php';
-	require_once($sSecMod);
+    $sSecMod = (defined('SECURE_FORM_MODULE') && SECURE_FORM_MODULE != '') ? '.'.SECURE_FORM_MODULE : '';
+    $sSecMod = WB_PATH.'/framework/SecureForm'.$sSecMod.'.php';
+    require_once($sSecMod);
 // *** begin deprecated part *************************************************************
 // load settings for use in Captch and ASP module
-	if (!defined('WB_INSTALL_PROCESS') && !defined('ENABLED_CAPTCHA')) {
-		$sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_captcha_control`';
-		// request settings from database
-		if(($oSettings = $database->query($sql))) {
-			if(($aSetting = $oSettings->fetchRow(MYSQL_ASSOC))) {
-				define('ENABLED_CAPTCHA', ($aSetting['enabled_captcha'] == '1'));
-				define('ENABLED_ASP', ($aSetting['enabled_asp'] == '1'));
-				define('CAPTCHA_TYPE', $aSetting['captcha_type']);
-				define('ASP_SESSION_MIN_AGE', (int)$aSetting['asp_session_min_age']);
-				define('ASP_VIEW_MIN_AGE', (int)$aSetting['asp_view_min_age']);
-				define('ASP_INPUT_MIN_AGE', (int)$aSetting['asp_input_min_age']);
-			}
-		}
-	}
-	if(defined('ENABLED_ASP') && ENABLED_ASP && !isset($_SESSION['session_started'])) {
-		$_SESSION['session_started'] = time();
-	}
+    if (!defined('WB_INSTALL_PROCESS') && !defined('ENABLED_CAPTCHA')) {
+        $sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_captcha_control`';
+        // request settings from database
+        if(($oSettings = $database->query($sql))) {
+            if(($aSetting = $oSettings->fetchRow(MYSQL_ASSOC))) {
+                define('ENABLED_CAPTCHA', ($aSetting['enabled_captcha'] == '1'));
+                define('ENABLED_ASP', ($aSetting['enabled_asp'] == '1'));
+                define('CAPTCHA_TYPE', $aSetting['captcha_type']);
+                define('ASP_SESSION_MIN_AGE', (int)$aSetting['asp_session_min_age']);
+                define('ASP_VIEW_MIN_AGE', (int)$aSetting['asp_view_min_age']);
+                define('ASP_INPUT_MIN_AGE', (int)$aSetting['asp_input_min_age']);
+            }
+        }
+    }
+    if(defined('ENABLED_ASP') && ENABLED_ASP && !isset($_SESSION['session_started'])) {
+        $_SESSION['session_started'] = time();
+    }
 // *** end of deprecated part ************************************************************
 // get user language ---
     $sRequestMethod = '_'.strtoupper($_SERVER['REQUEST_METHOD']);
@@ -389,27 +396,45 @@
 // activate translations / load language definitions
 /** begin of deprecated part || will be replaced by class Translate **/	
 // Load Language file
-	if(!file_exists(WB_PATH.'/languages/'.LANGUAGE.'.php')) {
-		$sMsg = 'Error loading language file '.LANGUAGE.', please check configuration';
-		throw new AppException($sMsg);
-	} else {
-	// include language file
-		require_once(WB_PATH.'/languages/'.LANGUAGE.'.php');
-	}
+    if(!file_exists(WB_PATH.'/languages/'.LANGUAGE.'.php')) {
+        $sMsg = 'Error loading language file '.LANGUAGE.', please check configuration';
+        throw new AppException($sMsg);
+    } else {
+    // include language file
+        require_once(WB_PATH.'/languages/'.LANGUAGE.'.php');
+    }
 /** end of deprecated part **/
 // instantiate and initialize adaptor for temporary registry replacement ---
-	$oReg->getWbConstants();
+    $oReg->getWbConstants();
 // load and activate new global translation table
-	Translate::getInstance()->initialize('en',
-										 (defined('DEFAULT_LANGUAGE') ? DEFAULT_LANGUAGE : ''), 
-										 (defined('LANGUAGE') ? LANGUAGE : ''),
-										 'WbOldStyle',
-										 (Translate::CACHE_DISABLED|Translate::KEEP_MISSING)
-//										 (DEBUG ? Translate::CACHE_DISABLED|Translate::KEEP_MISSING : 0)
-										);
-	if(!class_exists('PasswordHash', false)) { include(WB_PATH.'/include/phpass/PasswordHash.php'); }
-	$oPass = Password::getInstance(new PasswordHash(Password::CRYPT_LOOPS_DEFAULT, Password::HASH_TYPE_AUTO));
-	if(defined('PASSWORD_CRYPT_LOOPS')) { $oPass->setIteration(PASSWORD_CRYPT_LOOPS); }
-	if(defined('PASSWORD_HASH_TYPES'))  { $oPass->setHashType(PASSWORD_HASH_TYPES); }
-// *** END OF FILE ***********************************************************************
- 
+    $oTrans = Translate::getInstance();
+/* initializise Translate old style */
+    $oTrans->initialize(
+        'en',
+        (defined('DEFAULT_LANGUAGE') ? DEFAULT_LANGUAGE : ''),
+        (defined('LANGUAGE') ? LANGUAGE : ''),
+        'WbOldStyle',
+//        (Translate::CACHE_DISABLED|Translate::KEEP_MISSING),
+        (DEBUG ? Translate::CACHE_DISABLED|Translate::KEEP_MISSING : 0)
+    );
+/* initializise Translate new style */
+/*
+    $oTrans->initialize(
+        new TranslateAdaptorWbOldStyle,
+        'en',
+        (defined('DEFAULT_LANGUAGE') ? DEFAULT_LANGUAGE : ''),
+        (defined('LANGUAGE') ? LANGUAGE : ''),
+//        (Translate::CACHE_DISABLED|Translate::KEEP_MISSING),
+        (DEBUG ? Translate::CACHE_DISABLED|Translate::KEEP_MISSING : 0),
+        $oReg->DirModeOctal,
+        $oReg->TempPath
+    );
+ */
+/* ****** */
+    $oReg->setDatabase(WbDatabase::getInstance());
+    $oReg->setTranslate(Translate::getInstance());
+    if(!class_exists('PasswordHash', false)) { include(WB_PATH.'/include/phpass/PasswordHash.php'); }
+    $oPass = Password::getInstance(new PasswordHash(Password::CRYPT_LOOPS_DEFAULT, Password::HASH_TYPE_AUTO));
+    if(defined('PASSWORD_CRYPT_LOOPS')) { $oPass->setIteration(PASSWORD_CRYPT_LOOPS); }
+    if(defined('PASSWORD_HASH_TYPES'))  { $oPass->setHashType(PASSWORD_HASH_TYPES); }
+/* *** END OF FILE ******************************************************************** */
Index: branches/2.8.x/wb/framework/SqlImport.php
===================================================================
--- branches/2.8.x/wb/framework/SqlImport.php	(revision 2120)
+++ branches/2.8.x/wb/framework/SqlImport.php	(revision 2121)
@@ -106,7 +106,7 @@
     {
         $bRetval = false;
         // test if selected collation is available on current server.
-        $sql = 'SHOW COLLATION LIKE \''.$this->oDb->escapeString($sCollation).'\'';
+        $sql = 'SHOW COLLATION LIKE \''.$this->oDb->escapeString(addcslashes($sCollation, '_%')).'\'';
         if (($oAvailCollations = $this->oDb->doQuery($sql))) {
             if (($oAvailCollations->numRows())) {
                 //use new collation
@@ -173,8 +173,7 @@
                 $sAction
             )
         );
-        $sAction = ($sAction == '' ? 'install' : $sAction);
-        if ($this->importSql($sAction)) {
+        if ($this->importSql(($sAction == '' ? 'install' : $sAction))) {
             return true;
         } else {
             $this->aErrMsg[] = $this->oDb->getError();
