Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1869)
+++ branches/2.8.x/CHANGELOG	(revision 1870)
@@ -12,6 +12,9 @@
 ===============================================================================
 
 
+21 Feb-2013 Build 1870 Dietmar Woellbrink (Luisehahne)
+# solved installation issues
+! upgrade-script sanitize pages_directory before creating access files
 20 Feb-2013 Build 1869 Dietmar Woellbrink (Luisehahne)
 # solved renaming access files by page settings if php as apachehandler
 19 Feb-2013 Build 1868 Dietmar Woellbrink (Luisehahne)
Index: branches/2.8.x/wb/upgrade-script.php
===================================================================
--- branches/2.8.x/wb/upgrade-script.php	(revision 1869)
+++ branches/2.8.x/wb/upgrade-script.php	(revision 1870)
@@ -39,8 +39,20 @@
 if(file_exists($config_file) && !defined('WB_URL'))
 {
 	require($config_file);
+
 }
-
+// solved wrong pages_directory value before creating access files
+$sql  = 'SELECT `value` FROM `'.TABLE_PREFIX.'settings` ';
+$sql .= 'WHERE `name`=\'pages_directory\' ';
+$sTmpDir = WbDatabase::getInstance()->get_one($sql);
+$sTmpDir = ( (strpos($sTmpDir,'/',0)===false) && (strlen($sTmpDir)>1)  ? '/'.$sTmpDir : rtrim($sTmpDir,'/') );
+$sPagesDir = defined('PAGES_DIRECTORY') ? PAGES_DIRECTORY : '';
+if(($sTmpDir != $sPagesDir)) {
+	$sql = 'UPDATE `'.TABLE_PREFIX.'settings` SET '
+		.  '`value` = \''.$sTmpDir.'\' '
+		.  'WHERE `name`=\'pages_directory\' ';
+	if(!WbDatabase::getInstance()->query($sql) ) {}
+}
 //require_once(WB_PATH.'/framework/class.admin.php');
 if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
 require_once(WB_PATH.'/framework/functions.php');
@@ -59,7 +71,6 @@
 // set addition settings if not exists, otherwise upgrade will be breaks
 if(!defined('WB_SP')) { define('WB_SP',''); }
 if(!defined('WB_REVISION')) { define('WB_REVISION',''); }
-
 // database tables including in WB package
 $aPackage = array (
     'settings','groups','addons','pages','sections','search','users',
@@ -358,6 +369,7 @@
 <p class="info">This script upgrades an existing WebsiteBaker <strong> <?php echo $oldRevision; ?></strong> installation to the <strong> <?php echo $newRevision ?> </strong>.<br />The upgrade script alters the existing WB database to reflect the changes introduced with WB 2.8.x</p>
 
 <?php
+
 /**
  * Check if disclaimer was accepted
  */
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1869)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1870)
@@ -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.3');
-if(!defined('REVISION')) define('REVISION', '1869');
+if(!defined('REVISION')) define('REVISION', '1870');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/initialize.php
===================================================================
--- branches/2.8.x/wb/framework/initialize.php	(revision 1869)
+++ branches/2.8.x/wb/framework/initialize.php	(revision 1870)
@@ -188,8 +188,19 @@
 									 ? false 
 									 : $aSetting['value'])
 								 );
+			$aSetting['name'] = strtoupper($aSetting['name']);
+			if($aSetting['name'] == 'STRING_FILE_MODE') {
+				$iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600);
+				define('OCTAL_FILE_MODE', $iTmp);
+				define('STRING_FILE_MODE', sprintf('0%03o', $iTmp));
+			}elseif($aSetting['name'] == 'STRING_DIR_MODE') {
+				$iTmp = (intval(octdec($aSetting['value'])) |0711);
+				define('OCTAL_DIR_MODE', $iTmp);
+				define('STRING_DIR_MODE', sprintf('0%03o', $iTmp));
+			}else {
 			// make global const from setting
-			@define(strtoupper($aSetting['name']), $aSetting['value']);
+				@define($aSetting['name'], $aSetting['value']);
+			}
 		}
 	}else { throw new AppException($database->get_error()); }
 // get/set users timezone ---
@@ -203,11 +214,6 @@
 // extended wb editor settings
 	define('EDIT_ONE_SECTION', false);
 	define('EDITOR_WIDTH', 0);
-// define numeric, octal values for chmod operations ---	
-	$string_file_mode = STRING_FILE_MODE; // STRING_FILE_MODE is set deprecated
-	define('OCTAL_FILE_MODE',(int) octdec($string_file_mode));
-	$string_dir_mode = STRING_DIR_MODE; // STRING_DIR_MODE is set deprecated
-	define('OCTAL_DIR_MODE',(int) octdec($string_dir_mode));
 // 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';
Index: branches/2.8.x/wb/framework/WbAutoloader.php
===================================================================
--- branches/2.8.x/wb/framework/WbAutoloader.php	(revision 1869)
+++ branches/2.8.x/wb/framework/WbAutoloader.php	(revision 1870)
@@ -14,18 +14,20 @@
  * Register WB - CoreAutoloader as SPL autoloader
  * @param array $aDirectories list of 'directory'=>'shortKey'
  */
-    static public function doRegister(array $aDirectories)
-    {
-		if(sizeof($aDirectories > 0)) {
-			self::$_aSearchpatterns[] = '/(^.[^_].*$)/i';
-			self::$_aReplacements[] = basename(dirname(__FILE__)).'_$1';
-			foreach($aDirectories as $value => $shortKey) {
-				self::$_aSearchpatterns[] = '/^'.$shortKey.'_/i';
-				self::$_aReplacements[] = $value.'_';
+	static public function doRegister(array $aDirectories)
+	{
+		if(!sizeof(self::$_aSearchpatterns)) {
+			if(sizeof($aDirectories > 0)) {
+				self::$_aSearchpatterns[] = '/(^.[^_].*$)/i';
+				self::$_aReplacements[] = basename(dirname(__FILE__)).'_$1';
+				foreach($aDirectories as $value => $shortKey) {
+					self::$_aSearchpatterns[] = '/^'.$shortKey.'_/i';
+					self::$_aReplacements[] = $value.'_';
+				}
 			}
 		}
-        spl_autoload_register(array(new self, 'CoreAutoloader'));
-    }
+		spl_autoload_register(array(new self, 'CoreAutoloader'));
+	}
 /**
  * tries autoloading the given class
  * @param  string $sClassName
Index: branches/2.8.x/wb/install/save.php
===================================================================
--- branches/2.8.x/wb/install/save.php	(revision 1869)
+++ branches/2.8.x/wb/install/save.php	(revision 1870)
@@ -17,6 +17,10 @@
 
 $debug = true;
 
+include(dirname(dirname(__FILE__)).'/framework/globalExceptionHandler.php'); 
+include(dirname(dirname(__FILE__)).'/framework/WbAutoloader.php');
+WbAutoloader::doRegister(array('admin'=>'a', 'modules'=>'m'));
+
 if (true === $debug) {
 	ini_set('display_errors', 1);
 	error_reporting(E_ALL);
@@ -31,10 +35,6 @@
 list($usec,$sec) = explode(' ',microtime());
 srand((float)$sec+((float)$usec*100000));
 $session_rand = rand(1000,9999);
-if(!class_exists('WbAutoloader', false)) {
-	include(dirname(dirname(__FILE__)).'/framework/WbAutoloader.php');
-}
-WbAutoloader::doRegister(array('admin'=>'a', 'modules'=>'m'));
 
 // Function to set error
 function set_error($message, $field_name = '') {
@@ -98,7 +98,7 @@
 		$default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3);
 		unlink($filename);
 	} else {
-		$default_file_mode = '0777';
+		$default_file_mode = '0666';
 	}
 	return $default_file_mode;
 }
@@ -328,9 +328,9 @@
 define('ADMIN_URL', $wb_url.'/'.ADMIN_DIRECTORY);
 
 // Check if the user has entered a correct path
-    if(!file_exists(WB_PATH.'/framework/class.admin.php')) {
-    	set_error('It appears the Absolute path that you entered is incorrect');
-    }
+	if(!file_exists(WB_PATH.'/framework/class.admin.php')) {
+		set_error('It appears the Absolute path that you entered is incorrect');
+	}
 	$sSqlUrl = DB_TYPE.'://'.DB_USERNAME.':'.DB_PASSWORD.'@'.DB_HOST.'/'.DB_NAME;
 	$database = WbDatabase::getInstance();
 	$database->doConnect($sSqlUrl);
@@ -351,8 +351,8 @@
 	}
 
 //  core tables only structure
-    $sSqlFileName = dirname(__FILE__).'/sql/websitebaker.sql';
-    if(!$database->SqlImport($sSqlFileName,TABLE_PREFIX, false)) { set_error($database->get_error()); }
+	$sSqlFileName = dirname(__FILE__).'/sql/websitebaker.sql';
+	if(!$database->SqlImport($sSqlFileName,TABLE_PREFIX, false)) { set_error($database->get_error()); }
 
 	require(ADMIN_PATH.'/interface/version.php');
 
@@ -430,19 +430,18 @@
 	if(!$database->query($insert_admin_group)) { set_error($database->get_error()); }
 
 // Admin user
-    $insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` VALUES (1, 1, '1', 1, '$admin_username', '".md5($admin_password)."', '', 0, '', 0, 'Administrator', '$admin_email', $default_timezone, '', '', '$default_language', '', 0, '');";
+	$insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` VALUES (1, 1, '1', 1, '$admin_username', '".md5($admin_password)."', '', 0, '', 0, 'Administrator', '$admin_email', $default_timezone, '', '', '$default_language', '', 0, '');";
 	if(!$database->query($insert_admin_user)) { set_error($database->get_error()); }
 
 // Search layout default data
-    $sSqlFileName = dirname(__FILE__).'/sql/wb_search_data.sql';
-    if(!$database->SqlImport($sSqlFileName,TABLE_PREFIX, false)) { set_error($database->get_error()); }
+	$sSqlFileName = dirname(__FILE__).'/sql/wb_search_data.sql';
+	if(!$database->SqlImport($sSqlFileName,TABLE_PREFIX, false)) { set_error($database->get_error()); }
 
+	require_once(WB_PATH.'/framework/initialize.php');
 // Include WB functions file
 	require_once(WB_PATH.'/framework/functions.php');
 // Re-connect to the database, this time using in-build database class
 	require_once(WB_PATH.'/framework/class.login.php');
-
-	require_once(WB_PATH.'/framework/initialize.php');
 	// Include the PclZip class file (thanks to
 	require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
 	// Install add-ons
@@ -490,9 +489,9 @@
 		set_error($database->get_error());
 	}
 
-    if ( sizeof(createFolderProtectFile( WB_PATH.MEDIA_DIRECTORY )) ) {  }
-    if ( sizeof(createFolderProtectFile( WB_PATH.MEDIA_DIRECTORY.'/home' )) ) {  }
-    if ( sizeof(createFolderProtectFile( WB_PATH.PAGES_DIRECTORY )) ) {  }
+	if ( sizeof(createFolderProtectFile( WB_PATH.MEDIA_DIRECTORY )) ) {  }
+	if ( sizeof(createFolderProtectFile( WB_PATH.MEDIA_DIRECTORY.'/home' )) ) {  }
+	if ( sizeof(createFolderProtectFile( WB_PATH.PAGES_DIRECTORY )) ) {  }
 
 // end of if install_tables
 
