Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1979)
+++ branches/2.8.x/CHANGELOG	(revision 1980)
@@ -11,6 +11,9 @@
 ! = Update/Change
 ===============================================================================
 
+10 Oct-2013 Build 1980 Dietmar Woellbrink (Luisehahne)
+! /framework/initialize.php::SetInstallPathConstants() setting of DOCUMENT_ROOT now compatible for windows installation
+! /framework/functions.php::rebuild_all_accessfiles() Optimize rebuild access file coding
 10 Oct-2013 Build 1979 Manuela v.d.Decken(DarkViper)
 # /admin/pages/PageTree forgotten changes from rev.1973
 08 Oct-2013 Build 1978 Dietmar Woellbrink (Luisehahne)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1979)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1980)
@@ -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', '1979');
+if(!defined('REVISION')) define('REVISION', '1980');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/initialize.php
===================================================================
--- branches/2.8.x/wb/framework/initialize.php	(revision 1979)
+++ branches/2.8.x/wb/framework/initialize.php	(revision 1980)
@@ -80,8 +80,9 @@
 		}
 		if(!defined('ADMIN_REL')){ define('ADMIN_REL', WB_REL.'/'.ADMIN_DIRECTORY); }
 		if(!defined('DOCUMENT_ROOT')) {
-			
-			define('DOCUMENT_ROOT', preg_replace('/'.preg_quote(WB_REL, '/').'$/', '', WB_PATH));
+            define('DOCUMENT_ROOT', preg_replace('/'.preg_quote(str_replace('\\', '/', WB_REL), '/').'$/', '', str_replace('\\', '/', WB_PATH)));			
+            // creating $_SERVER['DOCUMENT_ROOT'] for Windows IIS Server
+            $_SERVER['DOCUMENT_ROOT'] = DOCUMENT_ROOT;
 		}
 		if(!defined('TMP_PATH')){ define('TMP_PATH', WB_PATH.'/temp'); }
 	}
Index: branches/2.8.x/wb/framework/functions.php
===================================================================
--- branches/2.8.x/wb/framework/functions.php	(revision 1979)
+++ branches/2.8.x/wb/framework/functions.php	(revision 1980)
@@ -1446,63 +1446,74 @@
 	}
 }
 
-if(!function_exists('rebuild_all_accessfiles')){
-	function rebuild_all_accessfiles($bShowDetails=false ) {
-        global $database;
-    	$aRetval = array();
-    	/**
-    	 * try to remove access files and build new folder protect files
-    	 */
-//   	$sTempDir = (defined('PAGES_DIRECTORY') && (PAGES_DIRECTORY != '') ? PAGES_DIRECTORY : '').'/';
-        $sTreeToDelete = WbAdaptor::getInstance()->AppPath.WbAdaptor::getInstance()->PagesDir;
-    	if(($sTreeToDelete!='') && is_writeable($sTreeToDelete)==true) {
-//    	 	if(rm_full_dir (WB_PATH.$sTempDir, true, $aProtectedFiles )==false) {
-//    			$aRetval[] = 'Could not delete existing access files';
-//    	 	}
-			$aDeleteLog = array();	// <<< geändert
-            DeleteAccessFilesTree($sTreeToDelete, $aDeleteLog);	// <<< geändert
-            if($bShowDetails) {
-                $aRetval = array_merge($aRetval, $aDeleteLog);	// <<< geändert
-            }
+if(!function_exists('rebuild_all_accessfiles'))
+{
+	function rebuild_all_accessfiles($bShowDetails=false ) 
+	{
+		$oDb = WbDatabase::getInstance();
+		$oReg = WbAdaptor::getInstance();
+	// try to remove access files and build new folder protect files
+        $sTreeToDelete = $oReg->AppPath.$oReg->PagesDir;
+    	if(($sTreeToDelete!='') && is_writeable($sTreeToDelete)==true)
+		{
+			$aDeleteLog = array();
+            DeleteAccessFilesTree($sTreeToDelete, $aDeleteLog);
+		// show details if debug is set
+            if($bShowDetails) { $aRetval = $aDeleteLog; }
     	}
-
-		$aRetval = array_merge($aRetval,createFolderProtectFile(rtrim( WB_PATH.PAGES_DIRECTORY,'/') ));
-
-    	/**
-    	 * Reformat/rebuild all existing access files
-    	 */
-//        $sql = 'SELECT `page_id`,`root_parent`,`link`, `level` FROM `'.TABLE_PREFIX.'pages` ORDER BY `link`';
-		$sql  = 'SELECT `page_id`,`root_parent`,`link`, `level` ';
-		$sql .= 'FROM `'.TABLE_PREFIX.'pages` ';
-		$sql .= 'WHERE `link` != \'\' ORDER BY `link` ';
-        if (($oPage = $database->query($sql)))
+	// set logging informations
+		$aRetval = array_merge((isset($aRetval) ? $aRetval : array()),
+		                       createFolderProtectFile(rtrim( $oReg->AppPath.$oReg->PagesDir, '/') ));
+	// Reformat/rebuild all existing access files
+		$sql  = 'SELECT `page_id`,`root_parent`,`parent`,`link`,`level`,`page_trail` '
+		      . 'FROM `'.$oDb->TablePrefix.'pages` '
+		      . 'WHERE `link` != \'\' '
+		      . 'ORDER BY `link`';
+        if (($oPage = $oDb->query($sql)))
         {
-            $x = 0;
-            while (($page = $oPage->fetchRow(MYSQL_ASSOC)))
+            $iFileCounter = 0;
+		// iterate over all existing page records
+            while (($aPageRecord = $oPage->fetchRow(MYSQL_ASSOC)))
             {
-                // Work out level
-                $level = level_count($page['page_id']);
-                // Work out root parent
-                $root_parent = root_parent($page['page_id']);
-                // Work out page trail
-                $page_trail = get_page_trail($page['page_id']);
-                // Update page with new level and link
-                $sql  = 'UPDATE `'.TABLE_PREFIX.'pages` SET ';
-                $sql .= '`root_parent` = '.$root_parent.', ';
-                $sql .= '`level` = '.$level.', ';
-                $sql .= '`page_trail` = "'.$page_trail.'" ';
-                $sql .= 'WHERE `page_id` = '.$page['page_id'];
-
-                if(!$database->query($sql)) {}
-                $filename = WB_PATH.PAGES_DIRECTORY.$page['link'].PAGE_EXTENSION;
-                create_access_file($filename, $page['page_id'], $page['level']);
-                $x++;
+		// --- begin reorg tree structure ------------------------------------------------
+			// rebuild level entries
+				$sql = 'SELECT `level`+1 AS `level`, `page_trail` '
+				     . 'FROM `'.$oDb->TablePrefix.'pages` '
+					 . 'WHERE `page_id`='.$aPageRecord['parent'];
+			// search for parent record
+				$oParent = $oDb->query($sql);
+				if(($aParentRecord = $oParent->fetchRow(MYSQLI_ASSOC)))
+				{
+				// get values from existing parent record
+					$aPageRecord['level'] = intval($aParentRecord['level']);
+					$aPageRecord['root_parent'] = intval($aParentRecord['page_trail']);
+					$aPageRecord['page_trail'] = (string)$aParentRecord['page_trail'].','.(string)$aPageRecord['page_id'];
+				}else
+				{
+				// set as root record if no parentrecord exists
+					$aPageRecord['level'] = 0;
+					$aPageRecord['root_parent'] = $aPageRecord['page_id'];
+					$aPageRecord['page_trail'] = (string)$aPageRecord['page_id'];
+				}
+			// update current record with regenerated values
+                $sql  = 'UPDATE `'.$oDb->TablePrefix.'pages` '
+				      . 'SET `root_parent`='.$aPageRecord['root_parent'].', '
+				      .     '`level`='.$aPageRecord['level'].', '
+				      .     '`page_trail`=\''.$aPageRecord['page_trail'].'\' '
+				      . 'WHERE `page_id`='.$aPageRecord['page_id'];
+				$oDb->query($sql);
+		// --- end reorg tree structure --------------------------------------------------
+                $sFilename = $oReg->AppPath.$oReg->PagesDir.$aPageRecord['link'].$oReg->PageExtension;
+				$oAccessFile = new AccessFile($sFilename, $aPageRecord['page_id']);
+				$oAccessFile->write();
+				unset($oAccessFile);
+                $iFileCounter++;
             }
-            $aRetval[] = 'Number of new formated access files: '.$x.'';
+            $aRetval[] = 'Number of new formated access files: '.$iFileCounter;
         }
-    return $aRetval;
-	}
-}
+		return $aRetval;
+	} // end of function rebuild_all_accessfiles()
+} // endif
 
 if(!function_exists('upgrade_modules')){
 	function upgrade_modules($aModuleList) {
