Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1999)
+++ branches/2.8.x/CHANGELOG	(revision 2000)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+14 Nov-2013 Build 2000 Manuela v.d.Decken(DarkViper)
+! WbAdaptor::getWbConstants() now on import skip constants holding database settings
 14 Nov-2013 Build 1999 Manuela v.d.Decken(DarkViper)
 ! admin/pages/PageTree added list of sections to the tooltip of 'manage_sections'
 13 Nov-2013 Build 1998 Manuela v.d.Decken(DarkViper)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1999)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 2000)
@@ -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', '1999');
+if(!defined('REVISION')) define('REVISION', '2000');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/WbAdaptor.php
===================================================================
--- branches/2.8.x/wb/framework/WbAdaptor.php	(revision 1999)
+++ branches/2.8.x/wb/framework/WbAdaptor.php	(revision 2000)
@@ -104,7 +104,9 @@
 		$aConsts = get_defined_constants(true);
 		foreach($aConsts['user'] as $sKey=>$sVal)
 		{
-			// change all path items to trailing slash scheme
+		// skip possible existing database constants
+			if (preg_match('/^db_|^TABLE_PREFIX$/i', $sKey)) { continue; }
+		// change all path items to trailing slash scheme
 			switch($sKey):
 				case 'WB_URL': 
 					$sVal = rtrim(str_replace('\\', '/', $sVal), '/').'/';
@@ -187,10 +189,6 @@
 					$sKey = 'DefaultTheme';
 					$this->_aSys['Request'][$sKey] = $sVal; 
 					break;
-				case 'TABLE_PREFIX':
-					$sKey = 'TablePrefix';
-					$this->_aSys['System'][$sKey] = $sVal; 
-					break;
 				case 'OCTAL_FILE_MODE':
 					$sVal = ((intval($sVal) & ~0111)|0600); // o-x/g-x/u-x/o+rw
 					$sKey = 'OctalFileMode';
Index: branches/2.8.x/wb/modules/MultiLingual/Lib.php
===================================================================
--- branches/2.8.x/wb/modules/MultiLingual/Lib.php	(revision 1999)
+++ branches/2.8.x/wb/modules/MultiLingual/Lib.php	(revision 2000)
@@ -78,7 +78,7 @@
 	{
 		// if new Pagecode is missing then set the own page ID
 		$entry = ( !isset($iNewPageCode) ? $iPageId : $iNewPageCode);
-		$sql = 'UPDATE `'.$this->_oReg->TablePrefix.$sTable.'` '
+		$sql = 'UPDATE `'.$this->_oDb->TablePrefix.$sTable.'` '
 		     . 'SET `page_code`='.$entry.', '
 		     .     '`modified_when` = '.time().' '
 		     . 'WHERE `page_id` = '.$iPageId;
@@ -94,8 +94,9 @@
 	{
 		$sql = 'SELECT DISTINCT `language`,'
 		     .                 '`page_id`,`level`,`parent`,`root_parent`,`page_code`,`link`,'
-		     .                 '`visibility`,`viewing_groups`,`viewing_users`,`position`,`page_title` '
-		     . 'FROM `'.$this->_oReg->TablePrefix.'pages` '
+		     .                 '`visibility`,`viewing_groups`,`viewing_users`,`position`,'
+		     .                 '`page_title`,`tooltip` '
+		     . 'FROM `'.$this->_oDb->TablePrefix.'pages` '
 		     . 'WHERE `level`= \'0\' '
 		     .   'AND `root_parent`=`page_id` '
 		     .   'AND (`visibility`!=\'none\' '
@@ -116,8 +117,9 @@
 	{
 		$sql = 'SELECT `language`,'
 		     .        '`page_id`,`level`,`parent`,`root_parent`,`page_code`,`link`,'
-		     .        '`visibility`,`viewing_groups`,`viewing_users`,`position`,`page_title` '
-		     .  'FROM `'.$this->_oReg->TablePrefix.'pages`'
+		     .        '`visibility`,`viewing_groups`,`viewing_users`,`position`,'
+		     .        '`page_title`,`tooltip` '
+		     .  'FROM `'.$this->_oDb->TablePrefix.'pages`'
 		     .  'WHERE `page_code` = '.$iPageCode.' '
 		     .  'ORDER BY `position`';
 		return $this->_oDb->query($sql);
@@ -130,7 +132,7 @@
 	 */
 	private function _getLangAddonsDbResult ( $sLangKey='' ) 
 	{
-		$sql = 'SELECT `directory`,`name`  FROM `'.$this->_oReg->TablePrefix.'addons` '
+		$sql = 'SELECT `directory`,`name`  FROM `'.$this->_oDb->TablePrefix.'addons` '
 		     . 'WHERE `type` = \'language\' '
 		     . ( ($sLangKey!='') ? ' AND `directory` = \''.$langKey.'\' ' : '')
 		     . 'ORDER BY `directory`';
@@ -144,9 +146,9 @@
 	 */
 	private function _getPageListDbResult ( $parent ) 
 	{
-	    $sql = 'SELECT `language`,'
+	    $sql = 'SELECT `language`,`tooltip`,'
 		     .        '`page_id`,`page_title`,`menu_title`, `page_code`, `parent` '
-		     . 'FROM `'.$this->_oReg->TablePrefix.'pages` '
+		     . 'FROM `'.$this->_oDb->TablePrefix.'pages` '
 		     . 'WHERE `parent` = '.$parent. ' '
 		     . 'ORDER BY `position`';
 		return $this->_oDb->query($sql);
@@ -159,8 +161,8 @@
 		{
 			while($page = $oRes->fetchRow(MYSQL_ASSOC))
 			{
-			if(!$this->_oApp->page_is_visible($page)) {continue;}
-			$aRetval[$page['language']] = $page;
+				if(!$this->_oApp->page_is_visible($page)) {continue;}
+				$aRetval[$page['language']] = $page;
 			}
 		}
 		return $aRetval;
@@ -175,9 +177,9 @@
 			{
 				if (( $value['page_id'] != $this_page ) )
 				{
-				$entries [$value['page_id']]['language'] = $value['language'];
-				$entries [$value['page_id']]['menu_title'] = $value['menu_title'];
-				$this->_getPageList($value['page_id'], $this_page );
+					$entries [$value['page_id']]['language'] = $value['language'];
+					$entries [$value['page_id']]['menu_title'] = $value['menu_title'];
+					$this->_getPageList($value['page_id'], $this_page );
 				}
 			}
 		}
@@ -237,28 +239,34 @@
 	*/
 	private function _getLangMenuData ( ) 
 	{
-		$data = array();
-		$SetLanguageUrl = array();
-		$SetLanguageIcons = array();
-		$SetLanguageIcons = $this->_getLanguagesDetailsInUsed( );
-		if(sizeof($SetLanguageIcons)>1) 
+		$aTplData = array();
+	// get root pages for all used languages
+		$aAllowedRootLanguages = $this->_getLanguagesDetailsInUsed( );
+		if(sizeof($aAllowedRootLanguages)>1)
 		{
-			$pages = $this->_getPageCodeValues( $this->_oApp->page_code );
-			$tmppage = array_intersect_key($pages,$SetLanguageIcons);
-			$pages = array_merge($SetLanguageIcons,$tmppage);
-			foreach ( $SetLanguageIcons AS $value) 
+		// get all pages witch the same page_code
+			$aMatchingPages = $this->_getPageCodeValues( $this->_oApp->page['page_code'] );
+		// remove all pages from list with not avaliable languages
+			$aPossibleMatchingPages = array_intersect_key($aMatchingPages, $aAllowedRootLanguages);
+		// add Allowed root pages to possible matches
+			$aAvailablePages = array_merge($aPossibleMatchingPages, $aAllowedRootLanguages);
+			foreach ( $aAvailablePages AS $aPage)
 			{
-				$data[] = array(
-				      'sIconUrl' => $this->_oReg->AppRel . 'modules/' . basename(dirname(__FILE__)) . '/',
-				      'bCurrent' => ( ($value['language'] == $this->_oReg->Language ) ? true : false),
-				      'sUrl' => $this->_oReg->AppRel.$this->_oReg->PagesDir.trim($pages[$value['language']]['link'],'/').$this->_oReg->PageExtension,
-				      'sTitle' => $pages[$value['language']]['page_title'],
-				      'FilePrefix' => strtolower($pages[$value['language']]['language']),
-				      'sExtension' => $this->_sExtension,
+				$aTplData[] = array(
+				    'sIconUrl'         => $this->_oReg->AppRel . 'modules/'
+					                    . basename(dirname(__FILE__)) . '/',
+				    'bCurrentLanguage' => (($aPage['language'] == $this->_oReg->Language) ? true : false),
+				    'sTargetPageUrl'   => $this->_oReg->AppRel . $this->_oReg->PagesDir
+				                        . trim($aAvailablePages[$aPage['language']]['link'],'/')
+					                    . $this->_oReg->PageExtension,
+				    'sPageTitle'       => $aAvailablePages[$aPage['language']]['page_title'],
+				    'sFilename'        => strtolower($aAvailablePages[$aPage['language']]['language']),
+				    'sImageType'       => $this->_sExtension,
+					'sToolTip'         => $aAvailablePages[$aPage['language']]['tooltip']
 				);
 			}
 		}
-		return $data;
+		return $aTplData;
 	}
 
 	/**
@@ -279,7 +287,6 @@
     private function _detectIE()
     {
         preg_match('/MSIE (.*?);/', $_SERVER['HTTP_USER_AGENT'], $aMatches);
-
         if (count($aMatches)>1){
           return true;
         }
