Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 2097)
+++ branches/2.8.x/CHANGELOG	(revision 2098)
@@ -11,6 +11,9 @@
 ! = Update/Change
 ===============================================================================
 
+11 Feb-2014 Build 2098 Manuela v.d.Decken(DarkViper)
+! activate class Translate for all addons in admin/ (except pages/)
+! class.admin >> add translation of the current theme to Translate
 11 Feb-2014 Build 2097 Manuela v.d.Decken(DarkViper)
 # droplet >> [[SiteModified]]  typo corrected
 ! upgrade-script.php >> new classes activated and little corrections
Index: branches/2.8.x/wb/admin/groups/delete.inc.php
===================================================================
--- branches/2.8.x/wb/admin/groups/delete.inc.php	(revision 2097)
+++ branches/2.8.x/wb/admin/groups/delete.inc.php	(revision 2098)
@@ -26,6 +26,8 @@
 	{
 		$oDb = WbDatabase::getInstance();
 		$oLang = Translate::getInstance();
+  		$oLang->enableAddon('admin\\groups');
+
 	// first check form-tan
 		if (!$admin->checkFTAN() || $iGroupId <= 1) {
 			msgQueue::add($oLang->MESSAGE_GENERIC_SECURITY_OFFENSE );
Index: branches/2.8.x/wb/admin/groups/groups_list.inc.php
===================================================================
--- branches/2.8.x/wb/admin/groups/groups_list.inc.php	(revision 2097)
+++ branches/2.8.x/wb/admin/groups/groups_list.inc.php	(revision 2098)
@@ -25,14 +25,15 @@
  */
 	function show_grouplist($admin)
 	{
-//		global $TEXT, $MESSAGE, $MENU, $HEADING;
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
+		$oDb = WbDatabase::getInstance();
+		$oLang = Translate::getInstance();
+		$oLang->enableAddon('admin\\groups');
 // Create new template object for the modify/remove section
 		$tpl = new Template(dirname($admin->correct_theme_source('groups_list.htt')),'keep');
 		$tpl->set_file('page', 'groups_list.htt');
 		$tpl->set_block('page', 'main_block', 'main');
 
+        $tpl->set_var($oLang->getLangArray());
 		$tpl->set_var('ACTION_URL', $_SERVER['SCRIPT_NAME']);
 		$tpl->set_var('FTAN', $admin->getFTAN());
 
@@ -40,7 +41,7 @@
 		$tpl->set_block('main_block', 'show_cmd_manage_users_block', 'show_cmd_manage_users');
 		if($admin->get_permission('users') == true)
 		{
-			$tpl->set_var('TEXT_MANAGE_USERS', $mLang->TEXT_MANAGE_USERS);
+			$tpl->set_var('TEXT_MANAGE_USERS', $oLang->TEXT_MANAGE_USERS);
 			$tpl->set_var('LINK_MANAGE_USERS', ADMIN_URL.'/users/index'.PAGE_EXTENSION);
 			$tpl->parse('show_cmd_manage_users', 'show_cmd_manage_users_block', true);
 		}else { // switch off cmd_manage_groups_block
@@ -50,10 +51,10 @@
 		$tpl->set_block('main_block', 'show_cmd_group_list_block', 'show_cmd_group_list');
 		if( $admin->get_permission('groups_view') == true )
 		{
-			$tpl->set_var('CONTENT_HEADER', $mLang->HEADING_VIEW_GROUPS);
+			$tpl->set_var('CONTENT_HEADER', $oLang->HEADING_VIEW_GROUPS);
 			if( ($admin->get_permission('groups_modify') == true) )
 			{
-			$tpl->set_var('CONTENT_HEADER', $mLang->HEADING_MODIFY_DELETE_GROUP);
+			$tpl->set_var('CONTENT_HEADER', $oLang->HEADING_MODIFY_DELETE_GROUP);
 			}
 		}
 
@@ -65,14 +66,14 @@
 		// $tpl->set_var('GROUP_ID',   $admin->getIDKEY(0));
 		$tpl->set_var('GROUP_ID', 0);
 		$tpl->set_var('GROUP_NAME', '');
-		$tpl->set_var('GROUP_DISPLAY_NAME', $mLang->TEXT_PLEASE_SELECT.'...');
+		$tpl->set_var('GROUP_DISPLAY_NAME', $oLang->TEXT_PLEASE_SELECT.'...');
 		$tpl->set_var('CSS_GROUP_DELETED', '');
 
 		$tpl->parse('grouplist', 'grouplist_block', true);
 		$sql  = 'SELECT `group_id`, `name` ';
-		$sql .= 'FROM `'.TABLE_PREFIX.'groups` ';
+		$sql .= 'FROM `'.$oDb->TablePrefix.'groups` ';
 		$sql .= 'WHERE `group_id` > 1 ORDER BY `name` ';
-		if( ($res_groups = $database->query($sql)) != false )
+		if( ($res_groups = $oDb->doQuery($sql)) != false )
 		{
 			while($rec_group = $res_groups->fetchRow(MYSQL_ASSOC))
 			{
@@ -120,8 +121,8 @@
 		{
 			$tpl->set_var('DISPLAY_ADD', '');
 			$tpl->set_var('GROUP_ACTION_URL', $_SERVER['SCRIPT_NAME']);
-			$tpl->set_var('GROUPS_HEADER', $mLang->HEADING_ADD_GROUP );
-			$tpl->set_var('SUBMIT_TITLE', $mLang->TEXT_ADD);
+			$tpl->set_var('GROUPS_HEADER', $oLang->HEADING_ADD_GROUP );
+			$tpl->set_var('SUBMIT_TITLE', $oLang->TEXT_ADD);
 			$tpl->set_var('ACTION_HANDLE', 'action_modify');
 			$tpl->set_var('ACTION_HIDDEN', 'action_add');
 			$tpl->set_var('FORM_NAME_GROUPMASK', 'frm_addnew_group');
@@ -139,9 +140,9 @@
 		);
 	// Insert language text and messages
 		$tpl->set_var(array(
-				'TEXT_MODIFY'    => ($admin->get_permission('groups_modify') == true) ? $mLang->TEXT_MODIFY : $mLang->TEXT_VIEW,
-				'TEXT_DELETE'    => $mLang->TEXT_DELETE,
-				'CONFIRM_DELETE' => $mLang->MESSAGE_GROUPS_CONFIRM_DELETE
+				'TEXT_MODIFY'    => ($admin->get_permission('groups_modify') == true) ? $oLang->TEXT_MODIFY : $oLang->TEXT_VIEW,
+				'TEXT_DELETE'    => $oLang->TEXT_DELETE,
+				'CONFIRM_DELETE' => $oLang->MESSAGE_GROUPS_CONFIRM_DELETE
 				));
 
 	// Parse template object
Index: branches/2.8.x/wb/admin/groups/groups_mask.inc.php
===================================================================
--- branches/2.8.x/wb/admin/groups/groups_mask.inc.php	(revision 2097)
+++ branches/2.8.x/wb/admin/groups/groups_mask.inc.php	(revision 2098)
@@ -39,8 +39,8 @@
 //		global $TEXT, $MESSAGE, $HEADING, $MENU;
 
 		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
-//		$mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+//		$oLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE);
 		include_once('upgradePermissions.php');
 		include_once(WB_PATH.'/framework/functions.php');
 	// Create new template object for the modify/remove menu
@@ -48,6 +48,10 @@
 		$tpl->set_file('page', 'groups_form.htt');
 		$tpl->debug = false; // false, true
 
+        $oLang = Translate::getInstance();
+        $oLang->enableAddon('admin\\groups');
+        $tpl->set_var($oLang->getLangArray());
+
 		$tpl->set_block('page', 'main_block', 'main');
 		$tpl->set_block('main_block', 'show_cmd_permission_block', 'show_cmd_permission');
 		$tpl->set_var('FTAN', $admin->getFTAN());
@@ -78,7 +82,7 @@
 				}
 
 			$tpl->set_var(array(
-						'SUBMIT_TITLE' =>  ($admin->get_permission('groups_modify') == true) ? $mLang->TEXT_SAVE : $mLang->TEXT_BACK,
+						'SUBMIT_TITLE' =>  ($admin->get_permission('groups_modify') == true) ? $oLang->TEXT_SAVE : $oLang->TEXT_BACK,
 						'ACTION_HIDDEN' => ($admin->get_permission('groups_modify') == true) ? 'action_modify' : 'action_cancel',
 						'ACTION_HANDLE' => ($admin->get_permission('groups_modify') == true) ? 'action_save' : 'action_cancel',
 						'GROUP_ID' => $rec_group['group_id'],
@@ -96,10 +100,10 @@
 				$rec_group['template_permissions'] = convertArrayToString($template_permissions);
 
 				$tpl->set_var(array(
-							'SUBMIT_TITLE' =>  ($admin->get_permission('groups_modify') == true) ? $mLang->TEXT_SAVE : $mLang->TEXT_BACK,
+							'SUBMIT_TITLE' =>  ($admin->get_permission('groups_modify') == true) ? $oLang->TEXT_SAVE : $oLang->TEXT_BACK,
 							'ACTION_HANDLE' => ($admin->get_permission('groups_modify') == true) ? 'action_save' : 'action_cancel',
 							'ACTION_HIDDEN' => ($admin->get_permission('groups_modify') == true) ? 'action_modify' : 'action_cancel',
-							'TEXT_GROUPS_NAME' => $mLang->TEXT_GROUP.': ',
+							'TEXT_GROUPS_NAME' => $oLang->TEXT_GROUP.': ',
 							'FORM_NAME_GROUPMASK' => 'frm_modify_group',
 	//						'GROUPNAME_DISABLED' => ' readonly="readonly"',
 	//						'GROUPNAME_INPUT_DISABLED' => ' input_text_disabled no_input'
@@ -126,7 +130,7 @@
 			$rec_group['template_permissions'] = $template_permissions;
 
 			$tpl->set_var(array(
-						'SUBMIT_TITLE' =>  ($admin->get_permission('groups_add') == true) ? $mLang->TEXT_ADD : $mLang->TEXT_BACK,
+						'SUBMIT_TITLE' =>  ($admin->get_permission('groups_add') == true) ? $oLang->TEXT_ADD : $oLang->TEXT_BACK,
 						'ACTION_HANDLE' => ($admin->get_permission('groups_add') == true) ? 'action_save' : 'action_cancel',
 						'ACTION_HIDDEN' => ($admin->get_permission('groups_add') == true) ? 'action_modify' : 'action_cancel',
 						'TEXT_GROUPS_NAME' => '',
@@ -159,19 +163,19 @@
 		// otherwise the $rec_group object contains existing data from requested group
 		// $tpl->set_var('GROUP_ID', $group_id != 0 ? $admin->getIDKEY($group_id) : 0);
 		$tpl->set_var('GROUP_ACTION_URL', $_SERVER['SCRIPT_NAME']);
-        $header_extra = $mLang->TEXT_FILESYSTEM_PERMISSIONS.' ';
+        $header_extra = $oLang->TEXT_FILESYSTEM_PERMISSIONS.' ';
 		if( ($admin->get_permission('groups_view') == true) )
 		{
-			$tpl->set_var('GROUPS_HEADER', $header_extra.$mLang->HEADING_VIEW_GROUP );
+			$tpl->set_var('GROUPS_HEADER', $header_extra.$oLang->HEADING_VIEW_GROUP );
 			if( ($admin->get_permission('groups_modify') == true) )
 			{
-			$tpl->set_var('GROUPS_HEADER', ($group_id == 0 ? $header_extra.$mLang->HEADING_ADD_GROUP : $header_extra.$mLang->HEADING_MODIFY_GROUP) );
+			$tpl->set_var('GROUPS_HEADER', ($group_id == 0 ? $header_extra.$oLang->HEADING_ADD_GROUP : $header_extra.$oLang->HEADING_MODIFY_GROUP) );
 			}
 		}
 
 // Insert language text and messages
 		$tpl->set_var('MODULE_FUNCTION', '');
-		$tpl->set_var($mLang->getLangArray());
+		$tpl->set_var($oLang->getLangArray());
 
 // ------------------------
 // Tell the browser whether or not to show advanced options
@@ -187,7 +191,7 @@
 			setSystemCheckboxes( $tpl, $admin, isset($_POST['system_permissions']) ? $_POST['system_permissions'] : $rec_group['system_permissions'] );
 			$tpl->set_var('DISPLAY_ADVANCED', '');
 			$tpl->set_var('DISPLAY_BASIC', '');
-			$tpl->set_var('FILESYSTEM_PERMISSIONS', $mLang->TEXT_FILESYSTEM_PERMISSIONS.' ');
+			$tpl->set_var('FILESYSTEM_PERMISSIONS', $oLang->TEXT_FILESYSTEM_PERMISSIONS.' ');
 
 			$tpl->parse('advanced_permission_block', 'show_cmd_advanced_permission_block', true);
 			$tpl->parse('permission_block', 'show_cmd_manage_permission_block', true);
@@ -194,7 +198,7 @@
 
 // ------------------------
 
-		$tpl->set_var('HEADER_MODULE_FUNCTION', '<h6>'.$mLang->TEXT_MODULE_PERMISSIONS.'</h6>');
+		$tpl->set_var('HEADER_MODULE_FUNCTION', '<h6>'.$oLang->TEXT_MODULE_PERMISSIONS.'</h6>');
 // Insert values into pages module list
 		$tpl->set_block('show_cmd_permission', 'pages_module_list_block', 'module_list');
 		$sql  = 'SELECT `directory`,`name`,`function` FROM `'.TABLE_PREFIX.'addons` ';
@@ -229,7 +233,7 @@
 			}
 		}
 
-		$tpl->set_var('HEADER_MODULE_FUNCTION', '<h6>'.$mLang->TEXT_MODULE_PERMISSIONS.'</h6>');
+		$tpl->set_var('HEADER_MODULE_FUNCTION', '<h6>'.$oLang->TEXT_MODULE_PERMISSIONS.'</h6>');
 		// Insert values into pages module list
 		$tpl->set_block('show_cmd_permission', 'tools_module_list_block', 'tools_list');
 		$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'addons` ';
@@ -262,7 +266,7 @@
 				$tmp_header = $addon['function'];
 			}
 		}
-		$tpl->set_var('HEADER_TEMPLATE_FUNCTION', '<h6>'.$mLang->TEXT_TEMPLATE_PERMISSIONS.'</h6>');
+		$tpl->set_var('HEADER_TEMPLATE_FUNCTION', '<h6>'.$oLang->TEXT_TEMPLATE_PERMISSIONS.'</h6>');
 		// Insert values into pages module list
 		$tpl->set_block('show_cmd_permission', 'template_list_block', 'template_list');
 		$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'addons` ';
Index: branches/2.8.x/wb/admin/groups/save.inc.php
===================================================================
--- branches/2.8.x/wb/admin/groups/save.inc.php	(revision 2097)
+++ branches/2.8.x/wb/admin/groups/save.inc.php	(revision 2098)
@@ -37,7 +37,8 @@
 		include_once('upgradePermissions.php');
 		include_once(WB_PATH.'/framework/functions.php');
 		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
+		$oLang = Translate::getInstance();
+		$oLang->enableAddon('admin\groups');
 	// check for valid group_id
 		$sql = '';
 
@@ -77,12 +78,12 @@
 
 			if($group_name == '')
 			{
-				msgQueue::add($mLang->MESSAGE_GROUPS_GROUP_NAME_BLANK );
+				msgQueue::add($oLang->MESSAGE_GROUPS_GROUP_NAME_BLANK );
 			} elseif($group_name != '') {
 		// check request vars and assign values to record
 				if( $database->get_one($sql) != false )
 				{
-					msgQueue::add($mLang->MESSAGE_GROUPS_GROUP_NAME_EXISTS );
+					msgQueue::add($oLang->MESSAGE_GROUPS_GROUP_NAME_EXISTS );
 				} else {
 					if( $group_id == 0 )
 					{
@@ -105,9 +106,9 @@
 				$sql .= $where;
 				if( $database->query($sql) )
 				{
-	                msgQueue::add($mLang->MESSAGE_GROUPS_SAVED ,true);
+	                msgQueue::add($oLang->MESSAGE_GROUPS_SAVED ,true);
 				} else {
-					msgQueue::add($mLang->MESSAGE_RECORD_MODIFIED_FAILED );
+					msgQueue::add($oLang->MESSAGE_RECORD_MODIFIED_FAILED );
 				}
 			}
 		} else {
Index: branches/2.8.x/wb/admin/groups/index.php
===================================================================
--- branches/2.8.x/wb/admin/groups/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/groups/index.php	(revision 2098)
@@ -20,8 +20,8 @@
 	function admin_groups_index()
 	{
 		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
-		$mLang->enableAddon('admin\groups');
+		$oLang = Translate::getInstance();
+		$oLang->enableAddon('admin\groups');
 
 		$mod_path = dirname(str_replace('\\', '/', __FILE__));
 		$mod_name = basename($mod_path);
Index: branches/2.8.x/wb/admin/media/rename2.php
===================================================================
--- branches/2.8.x/wb/admin/media/rename2.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/rename2.php	(revision 2098)
@@ -23,7 +23,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 
 $admin = new admin('Media', 'media', false);
 
@@ -48,13 +50,13 @@
 
 // first Check to see if it contains ..
 if (!check_media_path($directory)) {
-	$admin->print_error($MESSAGE['MEDIA_DIR_DOT_DOT_SLASH'],$rootlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_DOT_DOT_SLASH, $rootlink, false);
 }
 
 // Get the temp id
 $file_id = intval($admin->checkIDKEY('id', false, $_SERVER['REQUEST_METHOD']));
 if (!$file_id) {
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS, $dirlink, false);
 }
 
 // Check for potentially malicious files
@@ -106,12 +108,12 @@
 $file_id = $admin->getIDKEY($file_id);
 
 if(!isset($rename_file)) {
-	$admin->print_error($MESSAGE['MEDIA_FILE_NOT_FOUND'], $dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_NOT_FOUND, $dirlink, false);
 }
 
 // Check if they entered a new name
 if(media_filename($admin->get_post('name')) == "") {
-	$admin->print_error($MESSAGE['MEDIA_BLANK_NAME'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_BLANK_NAME, "rename.php?dir=$directory&id=$file_id", false);
 } else {
 	$old_name = $admin->get_post('old_name');
 	$new_name =  media_filename($admin->get_post('name'));
@@ -120,7 +122,7 @@
 // Check if they entered an extension
 if($type == 'file') {
 	if(media_filename($admin->get_post('extension')) == "") {
-		$admin->print_error($MESSAGE['MEDIA_BLANK_EXTENSION'], "rename.php?dir=$directory&id=$file_id", false);
+		$admin->print_error($oTrans->MESSAGE_MEDIA_BLANK_EXTENSION, "rename.php?dir=$directory&id=$file_id", false);
 	} else {
 		$extension = media_filename($admin->get_post('extension'));
 	}
@@ -136,22 +138,22 @@
 $dots = (substr($info['basename'], 0, 1) == '.') || (substr($info['basename'], -1, 1) == '.');
 
 if( preg_match('/'.$forbidden_file_types.'$/i', $ext) || $dots == '.' ) {
-	$admin->print_error($MESSAGE['MEDIA_CANNOT_RENAME'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_CANNOT_RENAME, "rename.php?dir=$directory&id=$file_id", false);
 }
 
 // Check if the name contains ..
 if(strstr($name, '..')) {
-	$admin->print_error($MESSAGE['MEDIA_NAME_DOT_DOT_SLASH'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_NAME_DOT_DOT_SLASH, "rename.php?dir=$directory&id=$file_id", false);
 }
 
 // Check if the name is index.php
 if($name == 'index.php') {
-	$admin->print_error($MESSAGE['MEDIA_NAME_INDEX_PHP'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_NAME_INDEX_PHP, "rename.php?dir=$directory&id=$file_id", false);
 }
 
 // Check that the name still has a value
 if($name == '') {
-	$admin->print_error($MESSAGE['MEDIA_BLANK_NAME'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_BLANK_NAME, "rename.php?dir=$directory&id=$file_id", false);
 }
 
 $info = pathinfo(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$rename_file);
@@ -159,15 +161,15 @@
 $dots = (substr($info['basename'], 0, 1) == '.') || (substr($info['basename'], -1, 1) == '.');
 
 if( preg_match('/'.$forbidden_file_types.'$/i', $ext) || $dots == '.' ) {
-	$admin->print_error($MESSAGE['MEDIA_CANNOT_RENAME'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_CANNOT_RENAME, "rename.php?dir=$directory&id=$file_id", false);
 }
 
 // Check if we should overwrite or not
 if($admin->get_post('overwrite') != 'yes' AND file_exists(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$name) == true) {
 	if($type == 'folder') {
-		$admin->print_error($MESSAGE['MEDIA_DIR_EXISTS'], "rename.php?dir=$directory&id=$file_id", false);
+		$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_EXISTS, "rename.php?dir=$directory&id=$file_id", false);
 	} else {
-		$admin->print_error($MESSAGE['MEDIA_FILE_EXISTS'], "rename.php?dir=$directory&id=$file_id", false);
+		$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_EXISTS, "rename.php?dir=$directory&id=$file_id", false);
 	}
 }
 
@@ -177,7 +179,7 @@
     // feature freeze
 	// require_once(ADMIN_PATH.'/media/dse.php');
 
-	$admin->print_success($MESSAGE['MEDIA_RENAMED'], $dirlink);
+	$admin->print_success($oTrans->MESSAGE_MEDIA_RENAMED, $dirlink);
 } else {
-	$admin->print_error($MESSAGE['MEDIA_CANNOT_RENAME'], "rename.php?dir=$directory&id=$file_id", false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_CANNOT_RENAME, "rename.php?dir=$directory&id=$file_id", false);
 }
Index: branches/2.8.x/wb/admin/media/setparameter.php
===================================================================
--- branches/2.8.x/wb/admin/media/setparameter.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/setparameter.php	(revision 2098)
@@ -23,20 +23,22 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\access');
 
 $admin = new admin('Media', 'media', false);
 // Include the WB functions file
 if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
 
-// check if theme language file exists for the language set by the user (e.g. DE, EN)
-if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
-	// no theme language file exists for the language set by the user, include default theme language file EN.php
-	require_once(THEME_PATH .'/languages/EN.php');
-} else {
-	// a theme language file exists for the language defined by the user, load it
-	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
-}
+//// check if theme language file exists for the language set by the user (e.g. DE, EN)
+//if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
+//	// no theme language file exists for the language set by the user, include default theme language file EN.php
+//	require_once(THEME_PATH .'/languages/EN.php');
+//} else {
+//	// a theme language file exists for the language defined by the user, load it
+//	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
+//}
 // Get the current homedir
 $currentHome = WB_PATH.MEDIA_DIRECTORY.$admin->get_home_folder();
 $currentHome = str_replace(WB_PATH, '', $currentHome);
@@ -96,15 +98,16 @@
 $template = new Template(dirname($admin->correct_theme_source('setparameter.htt')));
 $template->set_file('page', 'setparameter.htt');
 $template->set_block('page', 'main_block', 'main');
+$template->set_var($oTrans->getLangArray());
 if ($_SESSION['GROUP_ID'] != 1) {
 	$template->set_var('DISPLAY_ADMIN', 'hide');
 }
 $template->set_var(array(
-				'TEXT_HEADER' => $TEXT['TEXT_HEADER'],
-				'SAVE_TEXT' => $TEXT['SAVE'],
-				'BACK' => $TEXT['BACK'],
-			)
-		);
+        'TEXT_HEADER' => $oTrans->TEXT_TEXT_HEADER,
+        'SAVE_TEXT' => $oTrans->TEXT_SAVE,
+        'BACK' => $oTrans->TEXT_BACK,
+    )
+);
 
 $template->set_block('main_block', 'list_block', 'list');
 $row_bg_color = '';
@@ -131,27 +134,27 @@
     $row_bg_color = ($row_bg_color == '#dedede') ? '#fff' : '#dedede';
 
 	$template->set_var(array(
-					'ADMIN_URL' => ADMIN_URL,
-					'THEME_URL' => THEME_URL,
-					'PATH_NAME' => $relative,
-					'WIDTH' => $TEXT['WIDTH'],
-					'HEIGHT' => $TEXT['HEIGHT'],
-					'FIELD_NAME_W' => $safepath.'-w',
-					'FIELD_NAME_H' => $safepath.'-h',
-					'CAN_EDIT_CLASS' => ($bPathCanEdit==false) ? '' : 'bold',
-					'SHOW_EDIT_CLASS' => ($bPathCanEdit==false) ? 'hide' : '',
-					'READ_ONLY_DIR' => ($bPathCanEdit==false) ? ' readonly="readonly"' : '',
-					'CUR_HEIGHT' => $cur_height,
-					'CUR_WIDTH' => $cur_width,
-					'SETTINGS' => $TEXT['SETTINGS'],
-					'ADMIN_ONLY' => $TEXT['ADMIN_ONLY'],
-					'ADMIN_ONLY_SELECTED' => isset($pathsettings['global']['admin_only']) ? $pathsettings['global']['admin_only']:'',
-					'NO_SHOW_THUMBS' => $TEXT['NO_SHOW_THUMBS'],
-					'NO_SHOW_THUMBS_SELECTED' => isset($pathsettings['global']['show_thumbs']) ? $pathsettings['global']['show_thumbs']:'',
-					'ROW_BG_COLOR' => $row_bg_color,
-					'FTAN' => $admin->getFTAN()
-				)
-		);
+            'ADMIN_URL' => ADMIN_URL,
+            'THEME_URL' => THEME_URL,
+            'PATH_NAME' => $relative,
+            'WIDTH' => $oTrans->TEXT_WIDTH,
+            'HEIGHT' => $oTrans->TEXT_HEIGHT,
+            'FIELD_NAME_W' => $safepath.'-w',
+            'FIELD_NAME_H' => $safepath.'-h',
+            'CAN_EDIT_CLASS' => ($bPathCanEdit==false) ? '' : 'bold',
+            'SHOW_EDIT_CLASS' => ($bPathCanEdit==false) ? 'hide' : '',
+            'READ_ONLY_DIR' => ($bPathCanEdit==false) ? ' readonly="readonly"' : '',
+            'CUR_HEIGHT' => $cur_height,
+            'CUR_WIDTH' => $cur_width,
+            'SETTINGS' => $oTrans->TEXT_SETTINGS,
+            'ADMIN_ONLY' => $oTrans->TEXT_ADMIN_ONLY,
+            'ADMIN_ONLY_SELECTED' => isset($pathsettings['global']['admin_only']) ? $pathsettings['global']['admin_only']:'',
+            'NO_SHOW_THUMBS' => $oTrans->TEXT_NO_SHOW_THUMBS,
+            'NO_SHOW_THUMBS_SELECTED' => isset($pathsettings['global']['show_thumbs']) ? $pathsettings['global']['show_thumbs']:'',
+            'ROW_BG_COLOR' => $row_bg_color,
+            'FTAN' => $admin->getFTAN()
+        )
+    );
 	$template->parse('list', 'list_block', true);
 }
 
Index: branches/2.8.x/wb/admin/media/browse.php
===================================================================
--- branches/2.8.x/wb/admin/media/browse.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/browse.php	(revision 2098)
@@ -24,8 +24,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
-
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 $admin = new admin('Media', 'media', false);
 
 $starttime = explode(" ", microtime());
@@ -35,14 +36,14 @@
 if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
 include ('parameters.php');
 
-// check if theme language file exists for the language set by the user (e.g. DE, EN)
-if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
-	// no theme language file exists for the language set by the user, include default theme language file EN.php
-	require_once(THEME_PATH .'/languages/EN.php');
-} else {
-	// a theme language file exists for the language defined by the user, load it
-	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
-}
+//// check if theme language file exists for the language set by the user (e.g. DE, EN)
+//if(!file_exists(THEME_PATH .'/languages/'.LANGUAGE .'.php')) {
+//	// no theme language file exists for the language set by the user, include default theme language file EN.php
+//	require_once(THEME_PATH .'/languages/EN.php');
+//} else {
+//	// a theme language file exists for the language defined by the user, load it
+//	require_once(THEME_PATH .'/languages/'.LANGUAGE .'.php');
+//}
 
 // Byte convert for filesize
 function byte_convert($bytes) {
@@ -127,7 +128,7 @@
 $template = new Template(dirname($admin->correct_theme_source('media_browse.htt')));
 $template->set_file('page', 'media_browse.htt');
 $template->set_block('page', 'main_block', 'main');
-
+$template->set_var($oTrans->getLangArray());
 // Get the current dir
 //$currentHome = $admin->get_home_folder();
 $currentHome = (defined('HOME_FOLDERS') && HOME_FOLDERS) ? $admin->get_home_folder() : '';
@@ -164,12 +165,12 @@
 // Check to see if it contains ../
 if (!check_media_path($directory)) {
 	// $admin->print_header();
-	$admin->print_error($MESSAGE['MEDIA_DIR_DOT_DOT_SLASH']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_DOT_DOT_SLASH);
 }
 
 if(!file_exists(WB_PATH.MEDIA_DIRECTORY.$directory)) {
 	// $admin->print_header();
-	$admin->print_error($MESSAGE['MEDIA_DIR_DOES_NOT_EXIST']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_DOES_NOT_EXIST);
 }
 
 // Check to see if the user wanted to go up a directory into the parent folder
@@ -358,18 +359,9 @@
 // Insert language text and messages
 $template->set_var(array(
 					'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
-					'TEXT_CURRENT_FOLDER' => $TEXT['CURRENT_FOLDER'],
-					'TEXT_RELOAD' => $TEXT['RELOAD'],
-					'TEXT_RENAME' => $TEXT['RENAME'],
-					'TEXT_DELETE' => $TEXT['DELETE'],
-					'TEXT_SIZE' => $TEXT['SIZE'],
-					'TEXT_DATE' => $TEXT['DATE'],
-					'TEXT_NAME' => $TEXT['NAME'],
-					'TEXT_TYPE' => $TEXT['TYPE'],
-					'TEXT_UP' => $TEXT['UP'],
-					'NONE_FOUND' => $MESSAGE['MEDIA_NONE_FOUND'],
-					'CHANGE_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
-					'CONFIRM_DELETE' => $MESSAGE['MEDIA_CONFIRM_DELETE']
+					'NONE_FOUND' => $oTrans->MESSAGE_MEDIA_NONE_FOUND,
+					'CHANGE_SETTINGS' => $oTrans->TEXT_MODIFY_SETTINGS,
+					'CONFIRM_DELETE' => $oTrans->MESSAGE_MEDIA_CONFIRM_DELETE
 				)
 			);
 
Index: branches/2.8.x/wb/admin/media/delete.php
===================================================================
--- branches/2.8.x/wb/admin/media/delete.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/delete.php	(revision 2098)
@@ -23,7 +23,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 
 $admin = new admin('Media', 'media', false);
 
@@ -47,13 +49,13 @@
 // Check to see if it contains ..
 if (!check_media_path($directory)) {
 	// $admin->print_header();
-	$admin->print_error($MESSAGE['MEDIA_DIR_DOT_DOT_SLASH'],$rootlink,false );
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_DOT_DOT_SLASH, $rootlink, false );
 }
 
 // Get the file id
 $file_id = $admin->checkIDKEY('id', false, $_SERVER['REQUEST_METHOD']);
 if (!$file_id) {
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'], $dirlink,false);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS, $dirlink, false);
 }
 
 // Get home folder not to show
@@ -68,7 +70,7 @@
 }
 */
 // Figure out what folder name the temp id is
-if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory)) {
+if(($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory))) {
 	// Loop through the files and dirs an add to list
    while (false !== ($file = readdir($handle))) {
 		if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
@@ -106,12 +108,12 @@
 
 // Check to see if we could find an id to match
 if(!isset($delete_file)) {
-	$admin->print_error($MESSAGE['MEDIA_FILE_NOT_FOUND'], $dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_NOT_FOUND, $dirlink, false);
 }
 $relative_path = WB_PATH.MEDIA_DIRECTORY.'/'.$directory.'/'.$delete_file;
 // Check if the file/folder exists
 if(!file_exists($relative_path)) {
-	$admin->print_error($MESSAGE['MEDIA_FILE_NOT_FOUND'], $dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_NOT_FOUND, $dirlink, false);
 }
 
 // Find out whether its a file or folder
@@ -118,15 +120,15 @@
 if($type == 'folder') {
 	// Try and delete the directory
 	if(rm_full_dir($relative_path)) {
-		$admin->print_success($MESSAGE['MEDIA_DELETED_DIR'], $dirlink);
+		$admin->print_success($oTrans->MESSAGE_MEDIA_DELETED_DIR, $dirlink);
 	} else {
-		$admin->print_error($MESSAGE['MEDIA_CANNOT_DELETE_DIR'], $dirlink, false);
+		$admin->print_error($oTrans->MESSAGE_MEDIA_CANNOT_DELETE_DIR, $dirlink, false);
 	}
 } else {
 	// Try and delete the file
 	if(unlink($relative_path)) {
-		$admin->print_success($MESSAGE['MEDIA_DELETED_FILE'], $dirlink);
+		$admin->print_success($oTrans->MESSAGE_MEDIA_DELETED_FILE, $dirlink);
 	} else {
-		$admin->print_error($MESSAGE['MEDIA_CANNOT_DELETE_FILE'], $dirlink, false);
+		$admin->print_error($oTrans->MESSAGE_MEDIA_CANNOT_DELETE_FILE, $dirlink, false);
 	}
 }
Index: branches/2.8.x/wb/admin/media/create.php
===================================================================
--- branches/2.8.x/wb/admin/media/create.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/create.php	(revision 2098)
@@ -23,7 +23,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 // Include the WB functions file
 if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
 
@@ -37,7 +39,7 @@
 // Check to see if name or target contains ../
 if(strstr($name, '..')) {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['MEDIA_NAME_DOT_DOT_SLASH']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_NAME_DOT_DOT_SLASH);
 }
 
 // Remove bad characters
@@ -50,13 +52,13 @@
 if (!$admin->checkFTAN())
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
 
 if (!check_media_path($target, false)) {
-	$admin->print_error($MESSAGE['MEDIA_TARGET_DOT_DOT_SLASH']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_TARGET_DOT_DOT_SLASH);
 }
 
 // Create relative path of the new dir name
@@ -64,17 +66,17 @@
 
 // Check to see if the folder already exists
 if(file_exists($directory)) {
-	$admin->print_error($MESSAGE['MEDIA_DIR_EXISTS']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_EXISTS);
 }
 
 if ( sizeof(createFolderProtectFile( $directory )) )
 {
-	$admin->print_error($MESSAGE['MEDIA_DIR_NOT_MADE']);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_NOT_MADE);
 } else {
 	$usedFiles = array();
     // feature freeze
 	// require_once(ADMIN_PATH.'/media/dse.php');
-	$admin->print_success($MESSAGE['MEDIA_DIR_MADE']);
+	$admin->print_success($oTrans->MESSAGE_MEDIA_DIR_MADE);
 }
 
 // Print admin
Index: branches/2.8.x/wb/admin/media/parameters.php
===================================================================
--- branches/2.8.x/wb/admin/media/parameters.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/parameters.php	(revision 2098)
@@ -28,14 +28,18 @@
 	$__ret = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $sObject );
 	return unserialize($__ret);
 }
-
+$oDb = WbDatabase::getInstance();
 $pathsettings = array( 'global' => array( 'admin_only' => false,'show_thumbs' => false ) );
 if(DEFAULT_THEME != '') {
-	$query = $database->query ( "SELECT * FROM ".TABLE_PREFIX."settings where `name`='mediasettings'" );
-	if ($query && $query->numRows() > 0) {
-		$settings = $query->fetchRow();
+	$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'settings` '
+         . 'WHERE `name`=\'mediasettings\'';
+	$query = $oDb->doQuery($sql);
+    if ($query && (($settings = $query->fetchRow(MYSQL_ASSOC)))) {
 		$pathsettings = __unserialize($settings['value']);
 	} else {
-		$database->query ( "INSERT INTO ".TABLE_PREFIX."settings (`name`,`value`) VALUES ('mediasettings','')" );
+		$sql = 'INSERT INTO `'.$oDb->TablePrefix.'settings` '
+             . 'SET `name`=\'mediasettings\', '
+             .     '`value`=\'\'';
+		$oDb->doQuery($sql);
 	}
 }
Index: branches/2.8.x/wb/admin/media/upload.php
===================================================================
--- branches/2.8.x/wb/admin/media/upload.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/upload.php	(revision 2098)
@@ -23,7 +23,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 
 $modulePath = dirname(__FILE__);
 
@@ -36,7 +38,7 @@
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'] );
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS );
 }
 // After check print the header
 $admin->print_header();
@@ -55,7 +57,7 @@
 // Check to see if target contains ../
 if (!check_media_path($target, false))
 {
-	$admin->print_error($MESSAGE['MEDIA_TARGET_DOT_DOT_SLASH'] );
+	$admin->print_error($oTrans->MESSAGE_MEDIA_TARGET_DOT_DOT_SLASH );
 }
 
 // Create relative path of the target location for the file
@@ -200,15 +202,15 @@
 unset($list);
 
 if($sum_files == 1) {
-	$admin->print_success($sum_files.' '.$MESSAGE['MEDIA_SINGLE_UPLOADED'] );
+	$admin->print_success($sum_files.' '.$oTrans->MESSAGE_MEDIA_SINGLE_UPLOADED );
 } elseif($sum_files > 1) {
-	$admin->print_success($sum_files.' '.$MESSAGE['MEDIA_UPLOADED'] );
+	$admin->print_success($sum_files.' '.$oTrans->MESSAGE_MEDIA_UPLOADED );
 } else {
 
 	if(file_exists($relative.$filename)) {
-    	$admin->print_error($MESSAGE['MEDIA_FILE_EXISTS'] );
+    	$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_EXISTS );
     } else {
-    	$admin->print_error($MESSAGE['MEDIA_NO_FILE_UPLOADED'] );
+    	$admin->print_error($oTrans->MESSAGE_MEDIA_NO_FILE_UPLOADED );
     }
 }
 
Index: branches/2.8.x/wb/admin/media/index.php
===================================================================
--- branches/2.8.x/wb/admin/media/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/index.php	(revision 2098)
@@ -24,8 +24,11 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+
 $admin = new admin('Media', 'media');
 
 $starttime = explode(" ", microtime());
@@ -37,7 +40,7 @@
 $template = new Template(dirname($admin->correct_theme_source('media.htt')));
 $template->set_file('page', 'media.htt');
 $template->set_block('page', 'main_block', 'main');
-
+$template->set_var($oTrans->getLangArray());
 // Include the WB functions file
 if(!function_exists('directory_list')) { require(WB_PATH.'/framework/functions.php'); }
 
@@ -95,12 +98,9 @@
 
 // Insert language headings
 $template->set_var(array(
-					'HEADING_BROWSE_MEDIA' => $HEADING['BROWSE_MEDIA'],
 					'HOME_DIRECTORY' => $currentHome,
 //					'HOME_DIRECTORY' => ( $currentHome!='') ? $currentHome : $directory,
-					'DISPLAY_UP_ARROW' => $display_up_arrow, // **!
-					'HEADING_CREATE_FOLDER' => $HEADING['CREATE_FOLDER'],
-					'HEADING_UPLOAD_FILES' => $HEADING['UPLOAD_FILES']
+					'DISPLAY_UP_ARROW' => $display_up_arrow // **!
 				)
 			);
 // insert urls
@@ -115,17 +115,9 @@
 $template->set_var(array(
 					'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
 //					'MEDIA_DIRECTORY' => ($currentHome!='') ? MEDIA_DIRECTORY : $currentHome,
-					'TEXT_NAME' => $TEXT['TITLE'],
-					'TEXT_RELOAD' => $TEXT['RELOAD'],
-					'TEXT_TARGET_FOLDER' => $TEXT['TARGET_FOLDER'],
-					'TEXT_OVERWRITE_EXISTING' => $TEXT['OVERWRITE_EXISTING'],
-					'TEXT_FILES' => $TEXT['FILES'],
-					'TEXT_CREATE_FOLDER' => $TEXT['CREATE_FOLDER'],
-					'TEXT_UPLOAD_FILES' => $TEXT['UPLOAD_FILES'],
-					'CHANGE_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
-					'OPTIONS' => $TEXT['OPTION'],
-					'TEXT_UNZIP_FILE' => $TEXT['UNZIP_FILE'],
-					'TEXT_DELETE_ZIP' => $TEXT['DELETE_ZIP'],
+					'TEXT_NAME' => $oTrans->TEXT_TITLE,
+					'CHANGE_SETTINGS' => $oTrans->TEXT_MODIFY_SETTINGS,
+					'OPTIONS' => $oTrans->TEXT_OPTION,
 					'FTAN' => $admin->getFTAN()
 				)
 			);
Index: branches/2.8.x/wb/admin/media/rename.php
===================================================================
--- branches/2.8.x/wb/admin/media/rename.php	(revision 2097)
+++ branches/2.8.x/wb/admin/media/rename.php	(revision 2098)
@@ -23,7 +23,9 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+//if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\media');
 
 $admin = new admin('Media', 'media', false);
 
@@ -47,13 +49,13 @@
 
 // first Check to see if it contains ..
 if (!check_media_path($directory)) {
-	$admin->print_error($MESSAGE['MEDIA_DIR_DOT_DOT_SLASH'],$rootlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_DIR_DOT_DOT_SLASH, $rootlink, false);
 }
 
 // Get the temp id
 $file_id = intval($admin->checkIDKEY('id', false, $_SERVER['REQUEST_METHOD']));
 if (!$file_id) {
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS, $dirlink, false);
 }
 
 // Get home folder not to show
@@ -105,7 +107,7 @@
 }
 
 if(!isset($rename_file)) {
-	$admin->print_error($MESSAGE['MEDIA_FILE_NOT_FOUND'], $dirlink, false);
+	$admin->print_error($oTrans->MESSAGE_MEDIA_FILE_NOT_FOUND, $dirlink, false);
 }
 
 // Setup template object, parse vars to it, then parse it
@@ -114,6 +116,8 @@
 $template->set_file('page', 'media_rename.htt');
 $template->set_block('page', 'main_block', 'main');
 //echo WB_PATH.'/media/'.$directory.'/'.$rename_file;
+$template->set_var($oTrans->getLangArray());
+
 if($type == 'folder') {
 	$template->set_var('DISPlAY_EXTENSION', 'hide');
 	$extension = '';
@@ -139,18 +143,6 @@
 					'FTAN' => $admin->getFTAN()
 				)
 			);
-
-
-// Insert language text and messages
-$template->set_var(array(
-					'TEXT_TO' => $TEXT['TO'],
-					'TEXT_RENAME' => $TEXT['RENAME'],
-					'TEXT_CANCEL' => $TEXT['CANCEL'],
-					'TEXT_UP' => $TEXT['UP'],
-					'TEXT_OVERWRITE_EXISTING' => $TEXT['OVERWRITE_EXISTING']
-				)
-			);
-
 // Parse template object
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
Index: branches/2.8.x/wb/admin/start/index.php
===================================================================
--- branches/2.8.x/wb/admin/start/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/start/index.php	(revision 2098)
@@ -15,14 +15,13 @@
  *
  */
 
-$config_file = realpath('../../config.php');
-if(file_exists($config_file) && !defined('WB_URL'))
-{
-	require_once($config_file);
+if (!defined('WB_URL')) {
+	require_once('../../config.php');
 }
-
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
-
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\start');
+//$template->set_var($oTrans->getLangArray());
 $admin = new admin('Start','start');
 // ---------------------------------------
 //	$database = WbDatabase::getInstance();
@@ -55,19 +54,18 @@
 		closedir($handle);
 		}
 	}
-	$sql = 'DELETE FROM `'.TABLE_PREFIX.'settings` WHERE `name`=\'FINALIZE_SETUP\'';
-	if($database->query($sql)) { }
+	$sql = 'DELETE FROM `'.$oDb-TablePrefix.'settings` WHERE `name`=\'FINALIZE_SETUP\'';
+	$oDb->doQuery($sql);
 }
 // ---------------------------------------
 // check if it is neccessary to start the uograde-script
 
 $msg  = '';
-$msg .= (is_readable(WB_PATH.'/install/')) ?  $MESSAGE['START_INSTALL_DIR_EXISTS'].'<br />' : $msg;
+$msg .= (is_readable(WB_PATH.'/install/')) ?  $oTrans->MESSAGE_START_INSTALL_DIR_EXISTS.'<br />' : $msg;
 $aReplace =array( 
       'file' => '<a style="font-weight:bold;" href="'.WB_URL.'/upgrade-script.php">upgrade-script.php</a>'
     );
-$msg .= (is_readable(WB_PATH.'/upgrade-script.php') ?  replace_vars($MESSAGE['START_UPGRADE_SCRIPT_EXISTS'].'<br />',$aReplace) : '');
-//$msg .= ''.$MESSAGE['START_UPGRADE_SCRIPT_EXISTS'].'<br />';
+$msg .= (is_readable(WB_PATH.'/upgrade-script.php') ?  replace_vars($oTrans->MESSAGE_START_UPGRADE_SCRIPT_EXISTS.'<br />',$aReplace) : '');
 
 // ---------------------------------------
 // check if it is neccessary to start the uograde-script
@@ -74,9 +72,8 @@
 // ---------------------------------------
 if(($admin->get_user_id()==1) && file_exists(WB_PATH.'/upgrade-script.php')) {
 	// check if it is neccessary to start the uograde-script
-	$sql = 'SELECT `value` FROM `'.TABLE_PREFIX.'settings` WHERE `name`=\'wb_revision\'';
-	if($wb_revision=$database->get_one($sql)) {
-	}
+	$sql = 'SELECT `value` FROM `'.$oDb-TablePrefix.'settings` WHERE `name`=\'wb_revision\'';
+	$wb_revision = $oDb->getOne($sql);
 	if (version_compare($wb_revision, REVISION ) < 0) {
 echo "<p style=\"text-align:center;\"> If the <strong>upgrade script</strong> could not be start automatically.\n" .
      "Please click <a style=\"font-weight:bold;\" " .
@@ -105,15 +102,11 @@
 // ---------------------------------------
 // workout to upgrade the groups system_permissions
 // ---------------------------------------
-if( ($admin->get_user_id()==1) &&
-	file_exists(ADMIN_PATH.'/groups/upgradePermissions.php') && !defined('GROUPS_UPDATED') )
+if( ($admin->get_user_id()==1) && file_exists(ADMIN_PATH.'/groups/upgradePermissions.php') && !defined('GROUPS_UPDATED') )
 {
 	// check if it is neccessary to start the uograde-script
-	$sql = 'SELECT `value` FROM `'.TABLE_PREFIX.'settings` WHERE `name`=\'wb_revision\'';
-	if($wb_revision = $database->get_one($sql)) {
-
-	}
-
+	$sql = 'SELECT `value` FROM `'.$oDb-TablePrefix.'settings` WHERE `name`=\'wb_revision\'';
+	$wb_revision = $database->get_one($sql);
 	if ((version_compare($wb_revision, '1800' )  < 0)&& !defined('GROUPS_UPDATED')) {
 		require_once (ADMIN_PATH.'/groups/upgradePermissions.php');
 		// build new or changed $sTempPermissions
@@ -140,14 +133,14 @@
 /**
  * delete Outdated Confirmations
  */
-$sql = 'DELETE FROM `'.TABLE_PREFIX.'users` WHERE `confirm_timeout` BETWEEN 1 AND '.time();
-WbDatabase::getInstance()->query($sql);
+$sql = 'DELETE FROM `'.$oDb-TablePrefix.'users` WHERE `confirm_timeout` BETWEEN 1 AND '.time();
+$oDb->doQuery($sql);
 
 /**
  * delete stored ip adresses default after 60 days
  */
-$sql = 'UPDATE `'.TABLE_PREFIX.'users` SET `login_ip` = \'\' WHERE `login_when` < '.(time()-(60*84600));
-WbDatabase::getInstance()->query($sql);
+$sql = 'UPDATE `'.$oDb-TablePrefix.'users` SET `login_ip` = \'\' WHERE `login_when` < '.(time()-(60*84600));
+$oDb->doQuery($sql);
 
 // ---------------------------------------
 // Setup template object, parse vars to it, then parse it
@@ -155,19 +148,19 @@
 $oTpl = new Template(dirname($admin->correct_theme_source('start.htt')),'keep');
 $oTpl->set_file('page', 'start.htt');
 $oTpl->set_block('page', 'main_block', 'main');
-
+$oTpl->set_var($oTrans->getLangArray());
 // Insert values into the template object
 $oTpl->set_var(array(
-					'WELCOME_MESSAGE' => $MESSAGE['START_WELCOME_MESSAGE'],
-					'CURRENT_USER' => $MESSAGE['START_CURRENT_USER'],
-					'DISPLAY_NAME' => $admin->get_display_name(),
+					'WELCOME_MESSAGE' => $oTrans->MESSAGE_START_WELCOME_MESSAGE,
+					'CURRENT_USER'    => $oTrans->MESSAGE_START_CURRENT_USER,
+					'DISPLAY_NAME'    => $admin->get_display_name(),
                     'DISPLAY_WARNING' => '',
-                    'WARNING' => '',
-					'ADMIN_URL' => ADMIN_URL,
-					'WB_URL' => WB_URL,
-					'THEME_URL' => THEME_URL,
-					'WB_VERSION' => WB_VERSION,
-					'NO_CONTENT' => ''
+                    'WARNING'         => '',
+					'ADMIN_URL'       => ADMIN_URL,
+					'WB_URL'          => WB_URL,
+					'THEME_URL'       => THEME_URL,
+					'WB_VERSION'      => WB_VERSION,
+					'NO_CONTENT'      => ''
 				)
 			);
 
@@ -228,35 +221,6 @@
 	$oTpl->parse('show_preferences', 'show_preferences_block', true);
 }
 
-
-/*
-if($admin->get_permission('pages') != true)
-{
-	$oTpl->set_var('DISPLAY_PAGES', 'display:none;');
-}
-if($admin->get_permission('media') != true)
-{
-	$oTpl->set_var('DISPLAY_MEDIA', 'display:none;');
-}
-if($admin->get_permission('addons') != true)
-{
-	$oTpl->set_var('DISPLAY_ADDONS', 'display:none;');
-}
-if($admin->get_permission('access') != true)
-{
-	$oTpl->set_var('DISPLAY_ACCESS', 'display:none;');
-}
-if($admin->get_permission('settings') != true)
-{
-	$oTpl->set_var('DISPLAY_SETTINGS', 'display:none;');
-}
-if($admin->get_permission('admintools') != true)
-{
-	$oTpl->set_var('DISPLAY_ADMINTOOLS', 'display:none;');
-}
-*/
-
-
 $oTpl->set_block('main_block', 'show_install_block', 'show_install');
 if($admin->get_user_id() != 1)
 {
@@ -280,55 +244,55 @@
 }
 
 // Insert "Add-ons" section overview (pretty complex compared to normal)
-$addons_overview = $TEXT['MANAGE'].' ';
+$addons_overview = $oTrans->TEXT_MANAGE.' ';
 $addons_count = 0;
 if($admin->get_permission('modules') == true)
 {
-	$addons_overview .= '<a href="'.ADMIN_URL.'/modules/index.php">'.$MENU['MODULES'].'</a>';
+	$addons_overview .= '<a href="'.ADMIN_URL.'/modules/index.php">'.$oTrans->MENU_MODULES.'</a>';
 	$addons_count = 1;
 }
 if($admin->get_permission('templates') == true)
 {
 	if($addons_count == 1) { $addons_overview .= ', '; }
-	$addons_overview .= '<a href="'.ADMIN_URL.'/templates/index.php">'.$MENU['TEMPLATES'].'</a>';
+	$addons_overview .= '<a href="'.ADMIN_URL.'/templates/index.php">'.$oTrans->MENU_TEMPLATES.'</a>';
 	$addons_count = 1;
 }
 if($admin->get_permission('languages') == true)
 {
 	if($addons_count == 1) { $addons_overview .= ', '; }
-	$addons_overview .= '<a href="'.ADMIN_URL.'/languages/index.php">'.$MENU['LANGUAGES'].'</a>';
+	$addons_overview .= '<a href="'.ADMIN_URL.'/languages/index.php">'.$oTrans->MENU_LANGUAGES.'</a>';
 }
 
 // Insert "Access" section overview (pretty complex compared to normal)
-$access_overview = $TEXT['MANAGE'].' ';
+$access_overview = $oTrans->TEXT_MANAGE.' ';
 $access_count = 0;
 if($admin->get_permission('users') == true) {
-	$access_overview .= '<a href="'.ADMIN_URL.'/users/index.php">'.$MENU['USERS'].'</a>';
+	$access_overview .= '<a href="'.ADMIN_URL.'/users/index.php">'.$oTrans->MENU_USERS.'</a>';
 	$access_count = 1;
 }
 if($admin->get_permission('groups') == true) {
 	if($access_count == 1) { $access_overview .= ', '; }
-	$access_overview .= '<a href="'.ADMIN_URL.'/groups/index.php">'.$MENU['GROUPS'].'</a>';
+	$access_overview .= '<a href="'.ADMIN_URL.'/groups/index.php">'.$oTrans->MENU_GROUPS.'</a>';
 	$access_count = 1;
 }
 
 // Insert section names and descriptions
 $oTpl->set_var(array(
-					'PAGES' => $MENU['PAGES'],
-					'MEDIA' => $MENU['MEDIA'],
-					'ADDONS' => $MENU['ADDONS'],
-					'ACCESS' => $MENU['ACCESS'],
-					'PREFERENCES' => $MENU['PREFERENCES'],
-					'SETTINGS' => $MENU['SETTINGS'],
-					'ADMINTOOLS' => $MENU['ADMINTOOLS'],
-					'HOME_OVERVIEW' => $OVERVIEW['START'],
-					'PAGES_OVERVIEW' => $OVERVIEW['PAGES'],
-					'MEDIA_OVERVIEW' => $OVERVIEW['MEDIA'],
-					'ADDONS_OVERVIEW' => $addons_overview,
-					'ACCESS_OVERVIEW' => $access_overview,
-					'PREFERENCES_OVERVIEW' => $OVERVIEW['PREFERENCES'],
-					'SETTINGS_OVERVIEW' => $OVERVIEW['SETTINGS'],
-					'ADMINTOOLS_OVERVIEW' => $OVERVIEW['ADMINTOOLS']
+					'PAGES'                => $oTrans->MENU_PAGES,
+					'MEDIA'                => $oTrans->MENU_MEDIA,
+					'ADDONS'               => $oTrans->MENU_ADDONS,
+					'ACCESS'               => $oTrans->MENU_ACCESS,
+					'PREFERENCES'          => $oTrans->MENU_PREFERENCES,
+					'SETTINGS'             => $oTrans->MENU_SETTINGS,
+					'ADMINTOOLS'           => $oTrans->MENU_ADMINTOOLS,
+					'HOME_OVERVIEW'        => $oTrans->OVERVIEW_START,
+					'PAGES_OVERVIEW'       => $oTrans->OVERVIEW_PAGES,
+					'MEDIA_OVERVIEW'       => $oTrans->OVERVIEW_MEDIA,
+					'ADDONS_OVERVIEW'      => $addons_overview,
+					'ACCESS_OVERVIEW'      => $access_overview,
+					'PREFERENCES_OVERVIEW' => $oTrans->OVERVIEW_PREFERENCES,
+					'SETTINGS_OVERVIEW'    => $oTrans->OVERVIEW_SETTINGS,
+					'ADMINTOOLS_OVERVIEW'  => $oTrans->OVERVIEW_ADMINTOOLS
 				)
 			);
 
Index: branches/2.8.x/wb/admin/templates/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/templates/uninstall.php	(revision 2097)
+++ branches/2.8.x/wb/admin/templates/uninstall.php	(revision 2098)
@@ -17,18 +17,20 @@
 
 // Setup admin object
 require('../../config.php');
-require_once(WB_PATH.'/framework/class.admin.php');
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\addons');
 // suppress to print the header, so no new FTAN will be set
 $admin = new admin('Addons', 'templates_uninstall', false);
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
-	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS);
 } else {
 	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
 }
@@ -35,12 +37,12 @@
 
 // Check if the template exists
 if(!is_dir(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_NOT_INSTALLED);
 }
 
 // Check if the template exists
 if(!is_readable(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+	$admin->print_error($oTrans->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
 }
 
 // Check if user selected template
@@ -62,8 +64,10 @@
 // Include the WB functions file
 require_once(WB_PATH.'/framework/functions.php');
 if (!function_exists("replace_all")) {
-	function replace_all ($aStr = "", &$aArray ) {
-		foreach($aArray as $k=>$v) $aStr = str_replace("{{".$k."}}", $v, $aStr);
+	function replace_all($aStr = "", array $aArray = null ) {
+		foreach ($aArray as $k=>$v) {
+            $aStr = str_replace("{{".$k."}}", $v, $aStr);
+        }
 		return $aStr;
 	}
 }
@@ -71,19 +75,19 @@
 /**
 *	Check if the template is the standard-template or still in use
 */
-if (!array_key_exists('CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE', $MESSAGE['GENERIC'] ) )
-	$MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'] = "Can't uninstall this template <b>{{name}}</b> because it's the standardtemplate!";
-
+$sMsgTpl = (isset($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE)
+            ? $oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE
+            : 'Can\'t uninstall this template <b>{{name}}</b> because it\'s the standardtemplate!');
 // check whether the template is used as default wb theme
 if($file == DEFAULT_THEME) {
 	$temp = array ('name' => $file );
-	$msg = replace_all( $MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$msg = replace_all( $sMsgTpl, $temp );
 	$admin->print_error( $msg );
 }
 
 if ($file == DEFAULT_TEMPLATE) {
 	$temp = array ('name' => $file );
-	$msg = replace_all( $MESSAGE['GENERIC_CANNOT_UNINSTALL_IS_DEFAULT_TEMPLATE'], $temp );
+	$msg = replace_all( $sMsgTpl, $temp );
 	$admin->print_error( $msg );
 
 } else {
@@ -91,71 +95,69 @@
 	/**
 	*	Check if the template is still in use by a page ...
 	*/
-	$info = $database->query("SELECT page_id, page_title FROM ".TABLE_PREFIX."pages WHERE template='".$file."' order by page_title");
-
-	if ($info->numRows() > 0) {
-		/**
-		*	Template is still in use, so we're collecting the page-titles
-		*/
-
-		/**
-		*	The base-message template-string for the top of the message
-		*/
-		if (!array_key_exists("CANNOT_UNINSTALL_IN_USE_TMPL", $MESSAGE['GENERIC'])) {
-			$add = $info->numRows() == 1 ? "this page" : "these pages";
-			$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use by {{pages}}";
-			$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
-		} else {
-			$msg_template_str = $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'];
-			$temp = explode(";",$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
-			$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
-		}
-		/**
-		*	The template-string for displaying the Page-Titles ... in this case as a link
-		*/
-		$page_template_str = "- <b><a href='../pages/settings.php?page_id={{id}}'>{{title}}</a></b><br />";
-
-		$values = array ('type' => 'Template', 'type_name' => $file, 'pages' => $add);
-		$msg = replace_all ( $msg_template_str,  $values );
-
-		$page_names = "";
-
-		while ($data = $info->fetchRow() ) {
-
-			$page_info = array(
-				'id'	=> $data['page_id'],
-				'title' => $data['page_title']
-			);
-
-			$page_names .= replace_all ( $page_template_str, $page_info );
-		}
-
-		/**
-		*	Printing out the error-message and die().
-		*/
-		$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE'].$msg.$page_names);
-	}
+	$sql = 'SELECT `page_id` `id`, `page_title` `title` FROM `'.$oDb->TablePrefix.'pages` '
+         . 'WHERE `template`=\''.$file.'\' '
+         . 'ORDER BY `page_title`';
+	if (($info = $oDb->doQuery($sql))) {
+        if (($iNumberOfRows = $info->numRows())) {
+            /**
+            *	Template is still in use, so we're collecting the page-titles
+            *	The base-message template-string for the top of the message
+            */
+            if (!isset($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL)) {
+                $add = ($iNumberOfRows == 1 ? 'this page' : 'these pages');
+                $msg_template_str  = '<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use by {{pages}}';
+                $msg_template_str .= ':<br /><i>click for editing.</i><br /><br />';
+            } else {
+                $msg_template_str = $oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL;
+                $temp = explode(";",$oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES);
+                $add = $iNumberOfRows == 1 ? $temp[0] : $temp[1];
+            }
+            /**
+            *	The template-string for displaying the Page-Titles ... in this case as a link
+            */
+            $page_template_str = "- <b><a href='../pages/settings.php?page_id={{id}}'>{{title}}</a></b><br />";
+            $values = array ('type' => 'Template', 'type_name' => $file, 'pages' => $add);
+            $msg = replace_all($msg_template_str, $values);
+            $page_names = "";
+            while ($page_info = $info->fetchRow(MYSQL_ASSOC) ) {
+//                $page_info = array(
+//                    'id'	=> $data['page_id'],
+//                    'title' => $data['page_title']
+//                );
+                $page_names .= replace_all($page_template_str, $page_info);
+            }
+            /**
+            *	Printing out the error-message and die().
+            */
+            $admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE.$msg.$page_names);
+        }
+    }
 }
 
 // Check if we have permissions on the directory
 if(!is_writable(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL'].WB_PATH.'/templates/'.$file);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL.WB_PATH.'/templates/'.$file);
 }
 
 // Try to delete the template dir
 if(!rm_full_dir(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL);
 } else {
 	// Remove entry from DB
-	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'template'");
+	$sql = 'DELETE FROM `'.$oDb->TablePrefix.'addons` '
+         . 'WHERE `directory`=\''.$file.'\' AND `type`=\'template\'';
+	$oDb->doQuery($sql);
 }
-
 // Update pages that use this template with default template
 // $database = new database();
-$database->query("UPDATE ".TABLE_PREFIX."pages SET template = '".DEFAULT_TEMPLATE."' WHERE template = '$file'");
+$sql = 'UPDATE `'.$oDb->TablePrefix.'pages` '
+     . 'SET `template`=\''.DEFAULT_TEMPLATE.'\' '
+     . 'WHERE `template`=\''.$file.'\'';
+$oDb->doQuery($sql);
 
 // Print success message
-$admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
+$admin->print_success($oTrans->MESSAGE_GENERIC_UNINSTALLED);
 
 // Print admin footer
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/templates/details.php
===================================================================
--- branches/2.8.x/wb/admin/templates/details.php	(revision 2097)
+++ branches/2.8.x/wb/admin/templates/details.php	(revision 2098)
@@ -17,16 +17,15 @@
 
 // Include the config file
 require('../../config.php');
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\addons');
 require_once(WB_PATH .'/framework/functions.php');
-require_once(WB_PATH.'/framework/class.admin.php');
 // suppress to print the header, so no new FTAN will be set
 $admin = new admin('Addons', 'templates_view', false);
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($mLang->MESSAGE_GENERIC_SECURITY_ACCESS);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 
 // After check print the header
@@ -33,7 +32,7 @@
 $admin->print_header();
 // Get template name
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
-	$admin->print_error($mLang->MESSAGE_GENERIC_FORGOT_OPTIONS);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS);
 } else {
 	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
 }
@@ -40,12 +39,12 @@
 
 // Check if the template exists
 if(!is_dir(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($mLang->MESSAGE_GENERIC_NOT_INSTALLED);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_NOT_INSTALLED);
 }
 
 // Check if the template exists
 if(!is_readable(WB_PATH.'/templates/'.$file)) {
-	$admin->print_error($mLang->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
+	$admin->print_error($oTrans->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
 }
 // Print admin header
 //$admin = new admin('Addons', 'templates_view');
@@ -56,10 +55,14 @@
 // $template->debug = true;
 $template->set_file('page', 'templates_details.htt');
 $template->set_block('page', 'main_block', 'main');
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($oTrans->getLangArray());
 $template->set_var('FTAN', $admin->getFTAN());
 
 // Insert values
-$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' AND directory = '$file'");
+$sql = 'SELECT * FROM `'.WbDatabase::getInstance()->TablePrefix.'addons` '
+     . 'WHERE `type` = \'template\' AND directory = \''.$file.'\'';
+$result = WbDatabase::getInstance()->doQuery($sql);
 if($result->numRows() > 0) {
 	$row = $result->fetchRow();
 }
@@ -92,10 +95,8 @@
       'LICENSE' => $row['license'],
     )
 );
-/*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
 
-$template->set_var('TEXT_FUNCTION', ($row['function'] == 'theme' ? $mLang->TEXT_THEME : $mLang->TEXT_TEMPLATE));
+$template->set_var('TEXT_FUNCTION', ($row['function'] == 'theme' ? $oTrans->TEXT_THEME : $oTrans->TEXT_TEMPLATE));
 // Parse template object
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
Index: branches/2.8.x/wb/admin/templates/install.php
===================================================================
--- branches/2.8.x/wb/admin/templates/install.php	(revision 2097)
+++ branches/2.8.x/wb/admin/templates/install.php	(revision 2098)
@@ -20,6 +20,8 @@
 
 // Setup admin object
 require('../../config.php');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\addons');
 require_once(WB_PATH.'/framework/class.admin.php');
 // suppress to print the header, so no new FTAN will be set
 $admin = new admin('Addons', 'templates_install', false);
@@ -26,7 +28,7 @@
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
@@ -47,7 +49,7 @@
 
 // Try to upload the file to the temp dir
 if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UPLOAD']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UPLOAD);
 }
 
 // Include the PclZip class file (thanks to
@@ -63,7 +65,7 @@
 $list = $archive->extract(PCLZIP_OPT_PATH, $temp_unzip);
 
 // Check if uploaded file is a valid Add-On zip file
-if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($MESSAGE['GENERIC_INVALID_ADDON_FILE']);
+if (!($list && file_exists($temp_unzip . 'index.php'))) $admin->print_error($oTrans->MESSAGE_GENERIC_INVALID_ADDON_FILE);
 
 // Include the templates info file
 require($temp_unzip.'info.php');
@@ -78,7 +80,7 @@
 // Check if the file is valid
 if(!isset($template_directory)) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC_INVALID']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_INVALID);
 }
 
 // Check if this module is already installed
@@ -90,18 +92,18 @@
 		// Version to be installed is older than currently installed version
 		if (versionCompare($template_version, $new_template_version, '>=')) {
 			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-			$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
+			$admin->print_error($oTrans->MESSAGE_GENERIC_ALREADY_INSTALLED);
 		}
 	}
-	$success_message=$MESSAGE['GENERIC_UPGRADED'];
+	$success_message=$oTrans->MESSAGE_GENERIC_UPGRADED;
 } else {
-	$success_message=$MESSAGE['GENERIC_INSTALLED'];
+	$success_message=$oTrans->MESSAGE_GENERIC_INSTALLED;
 }
 
 // Check if template dir is writable
 if(!is_writable(WB_PATH.'/templates/')) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['TEMPLATES_BAD_PERMISSIONS']);
+	$admin->print_error($oTrans->MESSAGE_TEMPLATES_BAD_PERMISSIONS);
 }
 
 // Set template dir
@@ -122,7 +124,7 @@
 	$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir );
 }
 if(!$list) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNZIP']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNZIP);
 }
 
 // Delete the temp zip file
Index: branches/2.8.x/wb/admin/templates/index.php
===================================================================
--- branches/2.8.x/wb/admin/templates/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/templates/index.php	(revision 2098)
@@ -17,7 +17,9 @@
 
 // Print admin header
 require('../../config.php');
-require_once(WB_PATH.'/framework/class.admin.php');
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\addons');
 $admin = new admin('Addons', 'templates');
 
 // Setup template object, parse vars to it, then parse it
@@ -27,14 +29,15 @@
 $template->set_file('page', 'templates.htt');
 $template->set_block('page', 'main_block', 'main');
 $template->set_var('FTAN', $admin->getFTAN());
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($oTrans->getLangArray());
 
 // Insert values into template list
 $template->set_block('main_block', 'template_list_block', 'template_list');
-$sql = 'SELECT `directory`, `name`, `function` FROM `'.TABLE_PREFIX.'addons` '
+$sql = 'SELECT `directory`, `name`, `function` FROM `'.$oDb->TablePrefix.'addons` '
      . 'WHERE `type`=\'template\' ORDER BY `name`';
-if(($result = $database->query($sql))) {
-	while($addon = $result->fetchRow(MYSQL_ASSOC))
-	{
+if (($result = $oDb->doQuery($sql))) {
+	while ($addon = $result->fetchRow(MYSQL_ASSOC)) {
 		if ($admin->get_permission($addon['directory'],'template')==false) { continue;}
 		$template->set_var('VALUE', $addon['directory']);
 		$template->set_var('NAME', (($addon['function'] == 'theme' ? '[Theme] ' : '').$addon['name']));
@@ -53,14 +56,6 @@
 	$template->set_var('DISPLAY_LIST', 'hide');
 }
 
-//$mLang = ModLanguage::getInstance();
-//$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
-
-/*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
-
 // insert urls
 $template->set_var(array(
 					'ADMIN_URL' => ADMIN_URL,
@@ -72,11 +67,11 @@
 // Insert language text and messages
 $template->set_var(array(
 	'URL_MODULES' => $admin->get_permission('modules') ?
-		'<a href="' . ADMIN_URL . '/modules/index.php">' . $mLang->MENU_MODULES . '</a>' : '<b>'.$mLang->MENU_MODULES.'</b>',
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $oTrans->MENU_MODULES . '</a>' : '<b>'.$oTrans->MENU_MODULES.'</b>',
 	'URL_LANGUAGES' => $admin->get_permission('languages') ?
-		'<a href="' . ADMIN_URL . '/languages/index.php">' . $mLang->MENU_LANGUAGES . '</a>' : '<b>'.$mLang->MENU_LANGUAGES.'</b>',
+		'<a href="' . ADMIN_URL . '/languages/index.php">' . $oTrans->MENU_LANGUAGES . '</a>' : '<b>'.$oTrans->MENU_LANGUAGES.'</b>',
 	'URL_ADVANCED' => $admin->get_permission('modules_advanced')
-                ? '<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $mLang->TEXT_ADVANCED . '</a>' : '<b>'.$mLang->TEXT_ADVANCED.'</b>' ,
+                ? '<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $oTrans->TEXT_ADVANCED . '</a>' : '<b>'.$oTrans->TEXT_ADVANCED.'</b>' ,
 	)
 );
 
@@ -84,6 +79,6 @@
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
 
-$mLang->disableAddon();
+$oTrans->disableAddon();
 // Print admin footer
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 2097)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 2098)
@@ -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', '2097');
+if(!defined('REVISION')) define('REVISION', '2098');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/admin/settings/save.php
===================================================================
--- branches/2.8.x/wb/admin/settings/save.php	(revision 2097)
+++ branches/2.8.x/wb/admin/settings/save.php	(revision 2098)
@@ -26,19 +26,16 @@
 //require_once(WB_PATH.'/framework/class.admin.php');
 
 // Include config file
-$config_file = realpath('../../config.php');
-if(file_exists($config_file) && !defined('WB_URL'))
-{
-	require($config_file);
+if (!defined('WB_URL')) {
+	require('../../config.php');
 }
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\settings');
 
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
-
 require_once(WB_PATH.'/framework/functions.php');
-
 // suppress to print the header, so no new FTAN will be set
-if($advanced == '')
-{
+if ($advanced == '') {
 	$admin = new admin('Settings', 'settings_basic',false);
 } else {
 	$admin = new admin('Settings', 'settings_advanced',false);
@@ -49,11 +46,11 @@
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$js_back );
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS, $js_back );
 }
 // After check print the header
 $admin->print_header();
-
+$oTrans->enableAddon('admin\\settings');
 // Ensure that the specified default email is formally valid
 if(isset($_POST['server_email']))
 {
@@ -63,7 +60,7 @@
 //    if(false == preg_match($pattern, $_POST['server_email']))
 	if(!$admin->validate_email($_POST['server_email']))
     {
-		$admin->print_error($MESSAGE['USERS_INVALID_EMAIL'].
+		$admin->print_error($oTrans->MESSAGE_USERS_INVALID_EMAIL.
 			'<br /><strong>Email: '.htmlentities($_POST['server_email']).'</strong>', $js_back);
 	}
 }
@@ -78,8 +75,8 @@
 //	$checkSmtpPassword = (isset($_POST['wbmailer_smtp_password']) && ($_POST['wbmailer_smtp_password']=='') ? false : true);
 
 	if(!$checkSmtpHost || !$checkSmtpUser || !$checkSmtpPassword) {
-		$admin->print_error($TEXT['REQUIRED'].' '.$TEXT['WBMAILER_SMTP_AUTH'].
-			'<br /><strong>'.$MESSAGE['GENERIC_FILL_IN_ALL'].'</strong>', $js_back);
+		$admin->print_error($oTrans->TEXT_REQUIRED.' '.$oTrans->TEXT_WBMAILER_SMTP_AUTH.
+			'<br /><strong>'.$oTrans->MESSAGE_GENERIC_FILL_IN_ALL.'</strong>', $js_back);
 	}
 
 }
@@ -214,13 +211,12 @@
 //$settings = array();
 //$old_settings = array();
 // Query current settings in the db, then loop through them to get old values
-$sql  = 'SELECT `name`, `value` FROM `'.TABLE_PREFIX.'settings`';
-$sql .= 'ORDER BY `name`';
+$sql = 'SELECT `name`, `value` FROM `'.$oDb->TablePrefix.'settings` '
+     . 'ORDER BY `name`';
 
-if($res_settings = $database->query($sql)) {
-	$iQueryStart = $database->getQueryCount;
-	while($setting = $res_settings->fetchRow(MYSQL_ASSOC))
-	{
+if (($res_settings = $oDb->doQuery($sql))) {
+	$iQueryStart = $oDb->QueryCount;
+	while ($setting = $res_settings->fetchRow(MYSQL_ASSOC)) {
 		$passed = false;
 		$setting_name = $setting['name'];
 //		$old_settings = $setting['value'];
@@ -234,11 +230,11 @@
 				$passed = ($value != $setting['value']);
 				break;
 			case 'string_dir_mode':
-				$value=$dir_mode;
+				$value = $dir_mode;
 				$passed = ($value != $setting['value']);
 				break;
 			case 'string_file_mode':
-				$value=$file_mode;
+				$value = $file_mode;
 	 			$passed = ($value != $setting['value']);
 				break;
 			case 'page_extension':
@@ -250,7 +246,7 @@
 				break;
 			case 'sec_anchor':
 				$value = $admin->StripCodeFromText($value);
-				$value=(($value=='') ? 'Sec' : $value);
+				$value = (($value=='') ? 'Sec' : $value);
 	 			$passed = ($value != $setting['value']);
 				break;
 			case 'media_directory':
@@ -259,16 +255,16 @@
 	 			$passed = ($value != $setting['value']);
 				break;
 			 case 'pages_directory':
-			 $sql = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'pages`';
-			  if( !($database->get_one($sql)) ) {
-			   $value = rtrim($admin->StripCodeFromText($value));
-			   $passed = ($value != $setting['value']);
-			  }
-			  $value = trim($value,'/');
-			  $value = ( ($value != '')  ? '/'.$value : '' ); 
-			  break;
+                $sql = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'pages`';
+                if (!($oDb->getOne($sql))) {
+                    $value = rtrim($admin->StripCodeFromText($value));
+                    $passed = ($value != $setting['value']);
+                }
+                $value = trim($value,'/');
+                $value = ( ($value != '')  ? '/'.$value : '' );
+                break;
 			default :
-				 if($value == '')  {
+				if($value == '')  {
 					$passed = ((in_array($setting_name, $allow_empty_values)) && ($value != $setting['value']));
 				} else {
 					if(in_array($setting_name, $StripCodeFromInput) ) {
@@ -283,23 +279,20 @@
 	    {
 	        $value = strip_tags($value);
 	    }
-		if( !in_array($setting_name, $aPreventFromUpdate) && $passed )
-//	    if ( !in_array($setting_name, $aPreventFromUpdate) && (isset($_POST[$setting_name]) || $passed == true) )
-	    {
+		if (!in_array($setting_name, $aPreventFromUpdate) && $passed) {
 	        $value = trim($database->escapeString($value));
 	        $sql = 'UPDATE `'.TABLE_PREFIX.'settings` ';
 	        $sql .= 'SET `value` = \''.($value).'\' ';
 	        $sql .= 'WHERE `name` != \'wb_version\' ';
 	        $sql .= 'AND `name` = \''.$setting_name.'\' ';
-	        if (!$database->query($sql))
-	        {
-				if($database->is_error()) {
-					$admin->print_error($database->get_error, $js_back );
+	        if (!$oDb->doQuery($sql)) {
+				if($oDb->isError()) {
+					$admin->print_error($oDb->getError, $js_back );
 				}
 	        } 
 		}
 	}
-	$iQueriesDone = $database->getQueryCount - $iQueryStart;
+	$iQueriesDone = $oDb->QueryCount - $iQueryStart;
 }
 
 /**
@@ -336,11 +329,11 @@
     );
 
 // Query current search settings in the db, then loop through them and update the db with the new value
-$sql  = 'SELECT `name`, `value` FROM `'.TABLE_PREFIX.'search` ';
-$sql .= 'WHERE `extra` =  \'\' ';
-if( !($oSearch = $database->query($sql)) ) {
-    if($database->is_error()) {
-    	$admin->print_error(explode(';',$database->get_error()), $js_back );
+$sql = 'SELECT `name`, `value` FROM `'.$oDb->TablePrefix.'search` '
+     . 'WHERE `extra` =  \'\' ';
+if (!($oSearch = $oDb->doQuery($sql))) {
+    if ($oDb->isError()) {
+    	$admin->print_error(explode(';',$oDb->getError()), $js_back );
     }
 }
 
@@ -380,29 +373,24 @@
 			break;
 		default :
         	$passed = ($admin->get_post($sPostName) || in_array($sSearchName, $allow_empty_values));
-
-            if (!in_array($sSearchName, $allow_tags_in_fields))
-            {
+            if (!in_array($sSearchName, $allow_tags_in_fields)) {
                 $value = strip_tags($value);
             }
 			break;
 	}
 
-    if ( ($passed == true) )
-	{
-        $sql  = 'UPDATE `'.TABLE_PREFIX.'search` ';
-        $sql .= 'SET `value` = \''.$database->escapeString($value).'\' ';
-        $sql .= 'WHERE `name` = \''.$sSearchName.'\' ';
-        $sql .= 'AND `extra` = \'\' ';
-		$database->query($sql);
+    if (($passed == true)) {
+        $sql = 'UPDATE `'.$oDb->TablePrefix.'search` '
+             . 'SET `value` = \''.$oDb->escapeString($value).'\' '
+             . 'WHERE `name` = \''.$sSearchName.'\' AND `extra` = \'\' ';
+		$oDb->doQuery($sql);
     }
 }
 
 // Check if there was an error updating the db
-if($database->is_error()) {
-	$admin->print_error($database->get_error, $js_back );
+if($oDb->isError()) {
+	$admin->print_error($oDb->getError, $js_back );
 } else {
-//	$admin->print_success($iQueriesDone.' Queries '.$MESSAGE['SETTINGS_SAVED'], $js_back );
-	$admin->print_success($MESSAGE['SETTINGS_SAVED'], $js_back );
+	$admin->print_success($oTrans->MESSAGE_SETTINGS_SAVED, $js_back );
 }
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/settings/locking.php
===================================================================
--- branches/2.8.x/wb/admin/settings/locking.php	(revision 2097)
+++ branches/2.8.x/wb/admin/settings/locking.php	(revision 2098)
@@ -17,26 +17,24 @@
 if(!defined('WB_PATH'))
 {
 	require('../../config.php');
-	require_once(WB_PATH.'/framework/class.admin.php');
 }
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\settings');
+
 $admin = new admin('Start', 'settings', false, false);
 
-if($admin->get_user_id() == 1)
-{
+if ($admin->get_user_id() == 1) {
 	$val = (((int)(defined('SYSTEM_LOCKED') ? SYSTEM_LOCKED : 0)) + 1) % 2;
-	$sql = 'SELECT COUNT(`setting_id`) FROM `'.TABLE_PREFIX.'settings` WHERE `name` = \'system_locked\'';
-	if($database->get_one($sql))
-	{
-		$sql = 'UPDATE ';
-		$sql_where = 'WHERE `name` = \'system_locked\'';
-	} else {
-		$sql = 'INSERT INTO ';
-		$sql_where = '';
-	}
-	$sql .= '`'.TABLE_PREFIX.'settings` ';
-	$sql .= 'SET `name` = \'system_locked\', ';
-	$sql .= '`value` = \''.$val.'\' '.$sql_where;
-	$database->query($sql);
+	$sql = 'SELECT COUNT(`setting_id`) FROM `'.$oDb->TablePrefix.'settings` '
+         . 'WHERE `name` = \'system_locked\'';
+    $bUpdate = (bool)$oDb->getOne($sql);
+    $sql = $bUpdate ? 'UPDATE ' : 'INSERT ';
+	$sql .= '`'.$oDb->TablePrefix.'settings` '
+	      . 'SET `name` = \'system_locked\', '
+	      .     '`value` = '.$val;
+    $sql .= $bUpdate ? 'WHERE `name` = \'system_locked\'' : '';
+	$oDb->doQuery($sql);
 }
 // redirect to backend
 header('Location: ' . ADMIN_URL . '/index.php');
Index: branches/2.8.x/wb/admin/settings/index.php
===================================================================
--- branches/2.8.x/wb/admin/settings/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/settings/index.php	(revision 2098)
@@ -24,20 +24,21 @@
     	require($config_file);
     }
 }
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
-
 if(isset($_GET['advanced']) && $_GET['advanced'] == 'yes') {
 	$admin = new admin('Settings', 'settings_advanced');
 } else {
 	$admin = new admin('Settings', 'settings_basic');
 }
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\settings');
 
 // add new values, later in upgrade-script
 $cfg = array(
-	'wbmail_signature' => defined('WBMAIL_SIGNATURE') ? WBMAIL_SIGNATURE : '',
+	'wbmail_signature'       => (defined('WBMAIL_SIGNATURE') ? WBMAIL_SIGNATURE : ''),
 	'confirmed_registration' => (defined('CONFIRMED_REGISTRATION') ? CONFIRMED_REGISTRATION : '0'),
-	'page_extendet' => (defined('PAGE_EXTENDET') ? PAGE_EXTENDET : 'true'),
-	);
+	'page_extendet'          => (defined('PAGE_EXTENDET') ? PAGE_EXTENDET : 'true'),
+);
 db_update_key_value( 'settings', $cfg );
 
 // Include the WB functions file
@@ -55,18 +56,14 @@
 $oTpl->set_file('page',  'settings.htt');
 $oTpl->set_block('page', 'main_block', 'main');
 
-//$mLang = ModLanguage::getInstance();
-//$mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE);
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\settings');
 /*-- insert all needed vars from language files ----------------------------------------*/
-$oTpl->set_var($mLang->getLangArray());
+$oTpl->set_var($oTrans->getLangArray());
 
 $oTpl->set_var('FTAN', $admin->getFTAN());
 
 // Query current settings in the db, then loop through them and print them
-$query = "SELECT * FROM `".TABLE_PREFIX."settings`";
-if($results = $database->query($query)) {
+$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'settings`';
+if (($results = $oDb->doQuery($sql))) {
     while($setting = $results->fetchRow(MYSQL_ASSOC)) {
     	$setting_name = $setting['name'];
     	$setting_value = ( $setting_name != 'wbmailer_smtp_password' ) ? htmlspecialchars($setting['value']) : htmlentities($setting['value'], ENT_COMPAT, 'UTF-8');
@@ -82,7 +79,7 @@
     	$oTpl->set_var('ADVANCED_FILE_PERMS_ID', 'file_perms_box');
     	$oTpl->set_var('BASIC_FILE_PERMS_ID', 'hide');
     	$oTpl->set_var('ADVANCED', 'yes');
-    	$oTpl->set_var('ADVANCED_BUTTON', '&lt;&lt; '.$mLang->TEXT_HIDE_ADVANCED);
+    	$oTpl->set_var('ADVANCED_BUTTON', '&lt;&lt; '.$oTrans->TEXT_HIDE_ADVANCED);
     	$oTpl->set_var('ADVANCED_LINK', 'index.php?advanced=no');
 
     } else {
@@ -91,7 +88,7 @@
     	$oTpl->set_var('ADVANCED_FILE_PERMS_ID', 'hide');
 
     	$oTpl->set_var('ADVANCED', 'no');
-    	$oTpl->set_var('ADVANCED_BUTTON', $mLang->TEXT_SHOW_ADVANCED.' &gt;&gt;');
+    	$oTpl->set_var('ADVANCED_BUTTON', $oTrans->TEXT_SHOW_ADVANCED.' &gt;&gt;');
     	$oTpl->set_var('ADVANCED_LINK', 'index.php?advanced=yes');
     }
 
@@ -99,14 +96,13 @@
 	$checked   = ' checked="checked"';
 
 	$oTpl->set_var(array(
-		'WB_URL' => WB_URL,
+		'WB_URL'    => WB_URL,
 		'THEME_URL' => THEME_URL,
 		'ADMIN_URL' => ADMIN_URL,
 	 ));
 
 //  Insert permissions values
-	if($admin->get_permission('settings_advanced') != true)
-	{
+	if ($admin->get_permission('settings_advanced') != true) {
 		$oTpl->set_var('DISPLAY_ADVANCED_BUTTON', 'hide');
 	}
 
@@ -148,19 +144,17 @@
 	if(PAGE_TRASH == 'disabled')
 	{
     	$oTpl->set_var(array(
-				'PAGE_TRASH_DISABLED' => $checked,
-				'PAGE_TRASH_INLINE' => '',
-				'DISPLAY_PAGE_TRASH_SEPARATE' => 'display: none;',
-				));
-	} elseif(PAGE_TRASH == 'inline')
-	{
+            'PAGE_TRASH_DISABLED'         => $checked,
+            'PAGE_TRASH_INLINE'           => '',
+            'DISPLAY_PAGE_TRASH_SEPARATE' => 'display: none;',
+        ));
+	} elseif(PAGE_TRASH == 'inline') {
     	$oTpl->set_var(array(
-				'PAGE_TRASH_INLINE' => $checked,
-				'PAGE_TRASH_DISABLED' => '',
-				'DISPLAY_PAGE_TRASH_SEPARATE' => 'display: none;',
-				));
-	} elseif(PAGE_TRASH == 'separate')
-	{
+            'PAGE_TRASH_INLINE'           => $checked,
+            'PAGE_TRASH_DISABLED'         => '',
+            'DISPLAY_PAGE_TRASH_SEPARATE' => 'display: none;',
+        ));
+	} elseif(PAGE_TRASH == 'separate') {
 		$oTpl->set_var('PAGE_TRASH_SEPARATE', $checked);
 		$oTpl->set_var('DISPLAY_PAGE_TRASH_SEPARATE', 'display: inline;');
 	}
@@ -171,8 +165,7 @@
      */
     $oTpl->set_block('main_block', 'show_checkbox_1_block', 'show_checkbox_1');
 //  Work-out if page languages feature is enabled
-	if(defined('PAGE_LANGUAGES') && PAGE_LANGUAGES == true)
-	{
+	if(defined('PAGE_LANGUAGES') && PAGE_LANGUAGES == true) {
     	$oTpl->set_var(array(
 				'PAGE_LANGUAGES_ENABLED' => $checked,
 				'PAGE_LANGUAGES_DISABLED' => '',
@@ -185,8 +178,7 @@
 	}
 
 //  Work-out if page extended feature is enabled
-	if(defined('PAGE_EXTENDET') && PAGE_EXTENDET == true)
-	{
+	if(defined('PAGE_EXTENDET') && PAGE_EXTENDET == true) {
     	$oTpl->set_var(array(
 				'PAGE_EXTENDET_ENABLED' => $checked,
 				'PAGE_EXTENDET_DISABLED' => '',
@@ -199,8 +191,7 @@
 	}
 
 //  Work-out if multiple menus feature is enabled
-	if(defined('MULTIPLE_MENUS') && MULTIPLE_MENUS == true)
-	{
+	if(defined('MULTIPLE_MENUS') && MULTIPLE_MENUS == true) {
     	$oTpl->set_var(array(
 				'MULTIPLE_MENUS_ENABLED' => $checked,
 				'MULTIPLE_MENUS_DISABLED' => '',
@@ -216,8 +207,7 @@
      * <!-- END show_checkbox_1_block -->
      * advanced yes
      */
-    if($is_advanced)
-    {
+    if($is_advanced) {
     	$oTpl->parse('show_checkbox_1', 'show_checkbox_1_block');
     } else {
     	$oTpl->parse('show_checkbox_1', '');
@@ -224,7 +214,7 @@
     }
 
 //  Work-out if media home folder feature is enabled
-    $oTpl->set_var('TEXT_HOME_FOLDERS', $mLang->TEXT_HOME_FOLDERS);
+    $oTpl->set_var('TEXT_HOME_FOLDERS', $oTrans->TEXT_HOME_FOLDERS);
 	if(HOME_FOLDERS)
 	{
     	$oTpl->set_var(array(
@@ -363,12 +353,11 @@
 
 //  Insert groups into signup list
     $oTpl->set_block('main_block', 'group_list_block', 'group_list');
-    $sql = "SELECT `group_id`, `name` FROM `".TABLE_PREFIX."groups` WHERE `group_id` != '1'";
-	if($results = $database->query($sql)) {
-    	if($results->numRows() > 0)
-    	{
-    		while($group = $results->fetchRow(MYSQL_ASSOC))
-    	    {
+    $sql = 'SELECT `group_id`, `name` FROM `'.$oDb->TablePrefix.'groups` '
+         . 'WHERE `group_id` != 1';
+	if (($results = $oDb->doQuery($sql))) {
+    	if ($results->numRows() > 0) {
+    		while($group = $results->fetchRow(MYSQL_ASSOC)) {
     			$oTpl->set_var('ID', $group['group_id']);
     			$oTpl->set_var('NAME', $group['name']);
     			if(FRONTEND_SIGNUP == $group['group_id'])
@@ -381,7 +370,7 @@
     		}
     	} else {
     		$oTpl->set_var('ID', 'disabled');
-    		$oTpl->set_var('NAME', $mLang->MESSAGE_GROUPS_NO_GROUPS_FOUND);
+    		$oTpl->set_var('NAME', $oTrans->MESSAGE_GROUPS_NO_GROUPS_FOUND);
     		$oTpl->parse('group_list', 'group_list_block', true);
     	}
 	}
@@ -394,8 +383,7 @@
     /**
      * <!-- END show_redirect_timer_block -->
      */
-    if($is_advanced)
-    {
+    if ($is_advanced) {
     	$oTpl->parse('show_redirect_timer', 'show_redirect_timer_block');
     } else {
     	$oTpl->parse('show_redirect_timer', '');
@@ -420,8 +408,7 @@
     /**
      * <!-- END show_php_error_level_block -->
      */
-    if($is_advanced)
-    {
+    if ($is_advanced) {
     	$oTpl->parse('show_php_error_level',  'show_php_error_level_block');
     } else {
     	$oTpl->parse('show_php_error_level', '');
@@ -434,22 +421,18 @@
     $oTpl->set_block('main_block', 'show_wysiwyg_block',        'show_wysiwyg');
     $oTpl->set_block('show_wysiwyg_block', 'editor_list_block', 'editor_list');
 	$file='none';
-	$module_name=$mLang->TEXT_NONE;
+	$module_name = $oTrans->TEXT_NONE;
 	$oTpl->set_var('FILE', $file);
 	$oTpl->set_var('NAME', $module_name);
 	$selected = (!defined('WYSIWYG_EDITOR') || $file == WYSIWYG_EDITOR) ? $sSelected : '';
 	$oTpl->set_var('SELECTED', $selected);
 	$oTpl->parse('editor_list', 'editor_list_block', true);
-	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
-	$sql .= 'WHERE `type` = \'module\' ';
-	$sql .= 'AND `function` = \'wysiwyg\' ';
-	$sql .= 'ORDER BY `name`';
-	if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
-	{
-		while($addon = $result->fetchRow(MYSQL_ASSOC))
-	    {
-			if( $admin->get_permission($addon['directory'],'module' ) )
-			{
+	$sql = 'SELECT `name`, `directory` FROM `'.$oDb->TablePrefix.'addons` '
+	     . 'WHERE `type` = \'module\' AND `function` = \'wysiwyg\' '
+	     . 'ORDER BY `name`';
+	if (($result = $oDb->doQuery($sql))) {
+		while ($addon = $result->fetchRow(MYSQL_ASSOC)) {
+			if ($admin->get_permission($addon['directory'],'module' )) {
 				$oTpl->set_var('FILE', $addon['directory']);
 				$oTpl->set_var('NAME', $addon['name']);
 				$selected = (!defined('WYSIWYG_EDITOR') || $addon['directory'] == WYSIWYG_EDITOR) ? $sSelected : '';
@@ -471,15 +454,12 @@
 
 //  Insert language values
     $oTpl->set_block('main_block', 'language_list_block', 'language_list');
-	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
-	$sql .= 'WHERE `type` = \'language\' ';
-	$sql .= 'AND `function` != \'theme\' ';
-	$sql .= 'ORDER BY `directory`';
-	if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
-	{
+	$sql = 'SELECT `name`, `directory` FROM `'.$oDb->TablePrefix.'addons` '
+	     . 'WHERE `type` = \'language\' AND `function` != \'theme\' '
+	     . 'ORDER BY `directory`';
+	if (($result = $oDb->doQuery($sql))) {
 		while($addon = $result->fetchRow(MYSQL_ASSOC)) {
 	        $langIcons = (empty($addon['directory'])) ? 'none' : strtolower($addon['directory']);
-
 			$oTpl->set_var('CODE',        $addon['directory']);
 			$oTpl->set_var('NAME',        $addon['name']);
 			$oTpl->set_var('FLAG',        THEME_URL.'/images/flags/'.$langIcons);
@@ -494,7 +474,7 @@
     $oTpl->set_block('main_block', 'show_charset_block', 'show_charset');
 	require(ADMIN_PATH.'/interface/charsets.php');
     $oTpl->set_block('show_charset_block', 'charset_list_block', 'charset_list');
-	foreach($CHARSETS AS $code => $title) {
+	foreach ($CHARSETS AS $code => $title) {
 		$oTpl->set_var('VALUE', $code);
 		$oTpl->set_var('NAME', $title);
 		if(DEFAULT_CHARSET == $code) {
@@ -507,18 +487,16 @@
     /**
      * <!-- END show_charset_block -->
      */
-    if($is_advanced)
-    {
+    if ($is_advanced) {
     	$oTpl->parse('show_charset', 'show_charset_block');
     } else {
     	$oTpl->parse('show_charset', '');
     }
 
-//  nsert default timezone values
+//  insert default timezone values
 	require(ADMIN_PATH.'/interface/timezones.php');
     $oTpl->set_block('main_block', 'timezone_list_block','timezone_list');
-	foreach($TIMEZONES AS $hour_offset => $title)
-	{
+	foreach ($TIMEZONES AS $hour_offset => $title) {
 //  Make sure we dont list "System Default" as we are setting this value!
 		if($hour_offset != '-20') {
 			$oTpl->set_var('VALUE', $hour_offset);
@@ -535,7 +513,7 @@
 //  Insert date format list
 	require(ADMIN_PATH.'/interface/date_formats.php');
     $oTpl->set_block('main_block', 'date_format_list_block', 'date_format_list');
-	foreach($DATE_FORMATS AS $format => $title) {
+	foreach ($DATE_FORMATS AS $format => $title) {
 		$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
 		if($format != 'system_default') {
 			$oTpl->set_var('VALUE', $format);
@@ -571,17 +549,13 @@
 	}
 
 // Insert templates
-    $oTpl->set_block('main_block', 'template_list_block',         'template_list');
-	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
-	$sql .= 'WHERE `type` = \'template\' ';
-	$sql .= 'AND `function` != \'theme\' ';
-	$sql .= 'ORDER BY `name`';
-	if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
-	{
-		while($addon = $result->fetchRow(MYSQL_ASSOC))
-		{
-			if( $admin->get_permission($addon['directory'],'template' ) )
-			{
+    $oTpl->set_block('main_block', 'template_list_block', 'template_list');
+	$sql = 'SELECT `name`, `directory` FROM `'.$oDb->TablePrefix.'addons` '
+	     . 'WHERE `type` = \'template\' AND `function` != \'theme\' '
+	     . 'ORDER BY `name`';
+	if (($result = $database->query($sql))) {
+		while ($addon = $result->fetchRow(MYSQL_ASSOC)) {
+			if ($admin->get_permission($addon['directory'],'template' )) {
 				$oTpl->set_var('FILE', $addon['directory']);
 				$oTpl->set_var('NAME', $addon['name']);
 				$selected = (($addon['directory'] == DEFAULT_TEMPLATE) ? $sSelected : '');
@@ -592,18 +566,13 @@
 	}
 
 // Insert backend theme
-    $oTpl->set_block('main_block', 'theme_list_block',            'theme_list');
-	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
-	$sql .= 'WHERE `type` = \'template\' ';
-	$sql .= 'AND `function` = \'theme\' ';
-	$sql .= 'ORDER BY `name`';
-
-	if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
-	{
-		while($addon = $result->fetchRow(MYSQL_ASSOC))
-		{
-			if( $admin->get_permission($addon['directory'],'template' ) )
-			{
+    $oTpl->set_block('main_block', 'theme_list_block', 'theme_list');
+	$sql = 'SELECT `name`, `directory` FROM `'.$oDb->TablePrefix.'addons` '
+	     . 'WHERE `type` = \'template\' AND `function` = \'theme\' '
+	     . 'ORDER BY `name`';
+	if (($result = $database->query($sql))) {
+		while ($addon = $result->fetchRow(MYSQL_ASSOC)) {
+			if ($admin->get_permission($addon['directory'],'template' )) {
 				$oTpl->set_var('FILE', $addon['directory']);
 				$oTpl->set_var('NAME', $addon['name']);
 				$selected = (($addon['directory'] == DEFAULT_THEME) ? $sSelected : '');
@@ -646,12 +615,10 @@
  *
  */
     $oTpl->set_block('main_block', 'show_search_block','show_search');
-	$query = "SELECT * FROM `".TABLE_PREFIX."search` WHERE `extra` = '' ";
-	if($results = $database->query($query))
-    {
+	$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'search` WHERE `extra` = \'\'';
+	if (($results = $oDb->doQuery($sql))) {
     	// Query current settings in the db, then loop through them and print them
-    	while($setting = $results->fetchRow(MYSQL_ASSOC))
-    	{
+    	while ($setting = $results->fetchRow(MYSQL_ASSOC)) {
     		$setting_name = $setting['name'];
     		$setting_value = htmlspecialchars(($setting['value']));
     		switch($setting_name) {
@@ -700,27 +667,23 @@
 	}
 
 // Insert templates for search settings
-    $oTpl->set_block('main_block', 'search_template_list_block',  'search_template_list');
+    $oTpl->set_block('main_block', 'search_template_list_block', 'search_template_list');
 	$search_template = ( ($search_template == DEFAULT_TEMPLATE) || ($search_template == '') ) ? '' : $search_template;
 	$selected = ( ($search_template != DEFAULT_TEMPLATE) ) ?  $sSelected : '';
 
 	$oTpl->set_var(array(
-	        'FILE' => '',
-			'TEXT_MODULE_ORDER' => $mLang->TEXT_MODULE_ORDER,
-	        'NAME' => $mLang->TEXT_SYSTEM_DEFAULT,
-	        'SELECTED' => $selected
-	    ));
+        'FILE'              => '',
+        'TEXT_MODULE_ORDER' => $oTrans->TEXT_MODULE_ORDER,
+        'NAME'              => $oTrans->TEXT_SYSTEM_DEFAULT,
+        'SELECTED'          => $selected
+    ));
 	$oTpl->parse('search_template_list', 'search_template_list_block', true);
-	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
-	$sql .= 'WHERE `type` = \'template\' ';
-	$sql .= 'AND `function` = \'template\' ';
-	$sql .= 'ORDER BY `name`';
-    if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
-	{
-		while($addon = $result->fetchRow(MYSQL_ASSOC))
-	    {
-			if( $admin->get_permission($addon['directory'],'template' ) )
-			{
+	$sql = 'SELECT `name`, `directory` FROM `'.$oDb->TablePrefix.'addons` '
+	     . 'WHERE `type` = \'template\' AND `function` = \'template\' '
+	     . 'ORDER BY `name`';
+    if (($result = $oDb->doQuery($sql))) {
+		while ($addon = $result->fetchRow(MYSQL_ASSOC)) {
+			if ($admin->get_permission($addon['directory'],'template' )) {
 				$oTpl->set_var('FILE', $addon['directory']);
 				$oTpl->set_var('NAME', $addon['name']);
 		        $selected = ($addon['directory'] == $search_template) ? $sSelected :  '';
@@ -732,14 +695,14 @@
 
 	// Insert search select
 //    $oTpl->set_var(array(
-//		'TEXT_REGISTERED' => $mLang->TEXT_REGISTERED'],
-//		'TEXT_PUBLIC' => $mLang->TEXT_PUBLIC,
-//		'TEXT_PRIVATE' => $mLang->TEXT_PRIVATE'],
-//		'TEXT_NONE' => $mLang->TEXT_NONE'],
-//		'TEXT_MAX_EXCERPT' => $mLang->TEXT_MAX_EXCERPT'],
-//		'TEXT_TIME_LIMIT' => $mLang->TEXT_TIME_LIMIT'],
-//		'TEXT_VISIBILITY' => $mLang->TEXT_VISIBILITY'],
-//		'TEXT_SEARCH' => $mLang->TEXT_SEARCH'],
+//		'TEXT_REGISTERED' => $oTrans->TEXT_REGISTERED'],
+//		'TEXT_PUBLIC' => $oTrans->TEXT_PUBLIC,
+//		'TEXT_PRIVATE' => $oTrans->TEXT_PRIVATE'],
+//		'TEXT_NONE' => $oTrans->TEXT_NONE'],
+//		'TEXT_MAX_EXCERPT' => $oTrans->TEXT_MAX_EXCERPT'],
+//		'TEXT_TIME_LIMIT' => $oTrans->TEXT_TIME_LIMIT'],
+//		'TEXT_VISIBILITY' => $oTrans->TEXT_VISIBILITY'],
+//		'TEXT_SEARCH' => $oTrans->TEXT_SEARCH'],
 //		));
 	if(SEARCH == 'private')
 	{
@@ -768,34 +731,32 @@
 				));
 	}
 
-if($is_advanced)
-{
-	$oTpl->parse('show_search', 'show_search_block');
-} else {
-	$oTpl->parse('show_search', '');
-}
+    if ($is_advanced) {
+        $oTpl->parse('show_search', 'show_search_block');
+    } else {
+        $oTpl->parse('show_search', '');
+    }
 
     $oTpl->set_block('main_block', 'show_access_block','show_access');
 //  Work-out which wbmailer routine should be checked
 	$oTpl->set_var(array(
-		'TEXT_WBMAILER_SMTP_AUTH_NOTICE' => $mLang->TEXT_REQUIRED.' '.$mLang->TEXT_WBMAILER_SMTP_AUTH,
-		'SMTP_AUTH_SELECTED' => $checked,
-		'TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE' => $mLang->TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE,
-		'TEXT_WBMAILER_DEFAULT_SENDER_MAIL' => $mLang->TEXT_WBMAILER_DEFAULT_SENDER_MAIL,
-		'TEXT_WBMAILER_DEFAULT_SENDER_NAME' => $mLang->TEXT_WBMAILER_DEFAULT_SENDER_NAME,
-		'TEXT_WBMAILER_NOTICE' => $mLang->TEXT_WBMAILER_NOTICE,
-		'TEXT_WBMAILER_FUNCTION' => $mLang->TEXT_WBMAILER_FUNCTION,
-		'TEXT_WBMAILER_SMTP_HOST' => $mLang->TEXT_WBMAILER_SMTP_HOST,
-		'TEXT_WBMAILER_PHP' => $mLang->TEXT_WBMAILER_PHP,
-		'TEXT_WBMAILER_SMTP' => $mLang->TEXT_WBMAILER_SMTP,
-		'TEXT_WBMAILER_SMTP_AUTH' => $mLang->TEXT_WBMAILER_SMTP_AUTH,
-		'TEXT_WBMAILER_SMTP_USERNAME' => $mLang->TEXT_WBMAILER_SMTP_USERNAME,
-		'TEXT_WBMAILER_SMTP_PASSWORD' => $mLang->TEXT_WBMAILER_SMTP_PASSWORD,
-		));
+		'TEXT_WBMAILER_SMTP_AUTH_NOTICE'        => $oTrans->TEXT_REQUIRED.' '.$oTrans->TEXT_WBMAILER_SMTP_AUTH,
+		'SMTP_AUTH_SELECTED'                    => $checked,
+		'TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE' => $oTrans->TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE,
+		'TEXT_WBMAILER_DEFAULT_SENDER_MAIL'     => $oTrans->TEXT_WBMAILER_DEFAULT_SENDER_MAIL,
+		'TEXT_WBMAILER_DEFAULT_SENDER_NAME'     => $oTrans->TEXT_WBMAILER_DEFAULT_SENDER_NAME,
+		'TEXT_WBMAILER_NOTICE'                  => $oTrans->TEXT_WBMAILER_NOTICE,
+		'TEXT_WBMAILER_FUNCTION'                => $oTrans->TEXT_WBMAILER_FUNCTION,
+		'TEXT_WBMAILER_SMTP_HOST'               => $oTrans->TEXT_WBMAILER_SMTP_HOST,
+		'TEXT_WBMAILER_PHP'                     => $oTrans->TEXT_WBMAILER_PHP,
+		'TEXT_WBMAILER_SMTP'                    => $oTrans->TEXT_WBMAILER_SMTP,
+		'TEXT_WBMAILER_SMTP_AUTH'               => $oTrans->TEXT_WBMAILER_SMTP_AUTH,
+		'TEXT_WBMAILER_SMTP_USERNAME'           => $oTrans->TEXT_WBMAILER_SMTP_USERNAME,
+		'TEXT_WBMAILER_SMTP_PASSWORD'           => $oTrans->TEXT_WBMAILER_SMTP_PASSWORD,
+	));
 
 	// Work-out if developer infos feature is enabled
-	if(defined('DEV_INFOS') && DEV_INFOS == true)
-	{
+	if (defined('DEV_INFOS') && DEV_INFOS == true) {
     	$oTpl->set_var(array(
 				'DEV_INFOS_ENABLED' => $checked,
 				'DEV_INFOS_DISABLED' => '',
@@ -953,7 +914,8 @@
 	}
 	$sReadOnly = '';
 	$sPagesEditType = 'text';
-	if( $bPagesCanModify = ($database->get_one('SELECT COUNT(*) FROM `'.TABLE_PREFIX.'pages`'))!=0 ) {
+    $sql = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'pages`';
+	if (!($bPagesCanModify = ($oDb->getOne($sql)))) {
 		$sReadOnly = ' readonly="readonly"';
 		$sPagesEditType = 'grey bold';
 	}
@@ -974,25 +936,23 @@
 
 // Insert language text and messages
 	$oTpl->set_var(array(
-		'TEXT_CHANGES' => $mLang->TEXT_CHANGES,
-		'TEXT_FILES' => strtoupper(substr($mLang->TEXT_FILES, 0, 1)).substr($mLang->TEXT_FILES, 1),
+		'TEXT_CHANGES' => $oTrans->TEXT_CHANGES,
+		'TEXT_FILES' => strtoupper(substr($oTrans->TEXT_FILES, 0, 1)).substr($oTrans->TEXT_FILES, 1),
 		'TEXT_WARN_PAGE_LEAVE' => '',
-		'TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS' => $mLang->TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS,
-		'MODE_SWITCH_WARNING' => $mLang->MESSAGE_SETTINGS_MODE_SWITCH_WARNING,
-		'WORLD_WRITEABLE_WARNING' => $mLang->MESSAGE_SETTINGS_WORLD_WRITEABLE_WARNING
+		'TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS' => $oTrans->TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS,
+		'MODE_SWITCH_WARNING' => $oTrans->MESSAGE_SETTINGS_MODE_SWITCH_WARNING,
+		'WORLD_WRITEABLE_WARNING' => $oTrans->MESSAGE_SETTINGS_WORLD_WRITEABLE_WARNING
 		));
 
-if($is_advanced && $admin->get_user_id()=='1')
-{
-	$oTpl->parse('show_access', 'show_access_block');
-}else {
-	$oTpl->parse('show_access' , '');
-}
+    if ($is_advanced && $admin->get_user_id()=='1') {
+        $oTpl->parse('show_access', 'show_access_block');
+    }else {
+        $oTpl->parse('show_access' , '');
+    }
 
-// Parse template objects output
-$oTpl->parse('main', 'main_block',false);
-$oTpl->pparse('output', 'page');
-//$oTpl->p('page');
-unset($oTpl);
-$mLang->disableAddon();
-$admin->print_footer();
+    // Parse template objects output
+    $oTpl->parse('main', 'main_block',false);
+    $oTpl->pparse('output', 'page');
+    //$oTpl->p('page');
+    unset($oTpl);
+    $admin->print_footer();
Index: branches/2.8.x/wb/admin/users/user_list.php
===================================================================
--- branches/2.8.x/wb/admin/users/user_list.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/user_list.php	(revision 2098)
@@ -26,10 +26,11 @@
 
 	function show_userlist($admin, &$aActionRequest)
 	{
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
-        $iUserStatus = 1;
-        $iUserStatus = ( ( $admin->get_get('status')==1 ) ? 0 : $iUserStatus );
+		$oDb = WbDatabase::getInstance();
+		$oTrans = Translate::getInstance();
+        $oTrans->enableAddon('admin\\users');
+
+        $iUserStatus = (($admin->get_get('status') == 1) ? 0 : 1);
         unset($_GET);
 
         // Setup template object, parse vars to it, then parse it
@@ -41,6 +42,7 @@
         $oTpl->set_block('page', 'main_block', 'main');
         $oTpl->set_block("main_block", "manage_groups_block", "groups");
 
+        $oTpl->set_var($oTrans->getLangArray());
         $oTpl->set_var('ADMIN_URL', ADMIN_URL);
         $oTpl->set_var('FTAN', $admin->getFTAN());
         $oTpl->set_var('USER_STATUS', $iUserStatus );
@@ -54,28 +56,26 @@
         $UserStatusActive = 'url('.THEME_URL.'/images/user.png)';
         $UserStatusInactive = 'url('.THEME_URL.'/images/user_red.png)';
 
-        $sUserTitle = ($iUserStatus == 0) ? $mLang->MENU_USERS.' '.mb_strtolower($mLang->TEXT_ACTIVE, 'UTF-8')
-                                          : $mLang->MENU_USERS.' '.mb_strtolower($mLang->TEXT_DELETED, 'UTF-8') ;
+        $sUserTitle = ($iUserStatus == 0) ? $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
+                                          : $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_DELETED, 'UTF-8') ;
 
-        $oTpl->set_var('TEXT_USERS', $sUserTitle.' '.$mLang->TEXT_SHOW );
+        $oTpl->set_var('TEXT_USERS', $sUserTitle.' '.$oTrans->TEXT_SHOW );
         $oTpl->set_var('STATUS_ICON', ( ($iUserStatus==0) ? $UserStatusActive : $UserStatusInactive) );
 
         // Get existing value from database
-        $sql  = 'SELECT `user_id`, `username`, `display_name`, `active` FROM `'.TABLE_PREFIX.'users` ' ;
-        $sql .= 'WHERE user_id != 1 ';
-        $sql .=     'AND `active` = '.$iUserStatus.' ';
-        $sql .=     'AND `confirm_code` = \'\' ';
-        $sql .= 'ORDER BY `display_name`,`username`';
-
-//        $query = "SELECT user_id, username, display_name, active FROM ".TABLE_PREFIX."users WHERE user_id != '1' ORDER BY display_name,username";
-        $oRes = $database->query($sql);
-        if($database->is_error()) {
-        	$admin->print_error($database->get_error(), 'index.php');
+        $sql = 'SELECT `user_id`, `username`, `display_name`, `active` FROM `'.$oDb->TablePrefix.'users` '
+             . 'WHERE user_id != 1 '
+             .     'AND `active` = '.$iUserStatus.' '
+             .     'AND `confirm_code` = \'\' '
+             . 'ORDER BY `display_name`,`username`';
+        $oRes = $oDb->doQuery($sql);
+        if($oDb->isError()) {
+        	$admin->print_error($oDb->getError(), 'index.php');
         }
 
-        $sUserList  = $mLang->TEXT_LIST_OPTIONS.' ';
-        $sUserList .= ($iUserStatus == 1) ? $mLang->MENU_USERS.' '.mb_strtolower($mLang->TEXT_ACTIVE, 'UTF-8')
-                                          : $mLang->MENU_USERS.' '.mb_strtolower($mLang->TEXT_DELETED, 'UTF-8') ;
+        $sUserList  = $oTrans->TEXT_LIST_OPTIONS.' ';
+        $sUserList .= ($iUserStatus == 1) ? $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
+                                          : $oTrans->MENU_USERS.' '.mb_strtolower($oTrans->TEXT_DELETED, 'UTF-8') ;
         // Insert values into the modify/remove menu
         $oTpl->set_block('main_block', 'list_block', 'list');
         if($oRes->numRows() > 0) {
@@ -93,7 +93,7 @@
         	}
         } else {
         	// Insert single value to say no users were found
-        	$oTpl->set_var('NAME', $mLang->TEXT_NONE_FOUND);
+        	$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
         	$oTpl->parse('list', 'list_block', true);
         }
 
@@ -107,13 +107,12 @@
         if($admin->get_permission('users_delete') != true) {
         	$oTpl->set_var('DISPLAY_DELETE', 'hide');
         }
-        $HeaderTitle  = (($iUserStatus == 1) ? $mLang->HEADING_MODIFY_ACTIVE_USER : $mLang->HEADING_MODIFY_DELETE_USER ).' ';
-        $HeaderTitle .= (($iUserStatus == 1) ? mb_strtolower($mLang->TEXT_ACTIVE, 'UTF-8')
-                                             : mb_strtolower($mLang->TEXT_INACTIVE, 'UTF-8'));
+        $HeaderTitle  = (($iUserStatus == 1) ? $oTrans->HEADING_MODIFY_ACTIVE_USER : $oTrans->HEADING_MODIFY_DELETE_USER ).' ';
+        $HeaderTitle .= (($iUserStatus == 1) ? mb_strtolower($oTrans->TEXT_ACTIVE, 'UTF-8')
+                                             : mb_strtolower($oTrans->TEXT_INACTIVE, 'UTF-8'));
         // Insert language headings
         $oTpl->set_var(array(
-        		'HEADING_MODIFY_DELETE_USER' => $HeaderTitle,
-        		'HEADING_ADD_USER' => $mLang->HEADING_ADD_USER
+        		'HEADING_MODIFY_DELETE_USER' => $HeaderTitle
         		)
         );
         // insert urls
@@ -126,11 +125,9 @@
         // Insert language text and messages
         $oTpl->set_var(array(
         		'DISPLAY_WAITING_ACTIVATION' => '',
-        		'TEXT_MODIFY' => $mLang->TEXT_MODIFY,
-        		'TEXT_DELETE' => $mLang->TEXT_DELETE,
-        		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $mLang->TEXT_DEACTIVE : $mLang->TEXT_DELETE),
-        		'TEXT_MANAGE_GROUPS' => ( $admin->get_permission('groups') == true ) ? $mLang->TEXT_MANAGE_GROUPS : "**",
-        		'CONFIRM_DELETE' => (($iUserStatus == 1) ? $mLang->TEXT_ARE_YOU_SURE : $mLang->MESSAGE_USERS_CONFIRM_DELETE)
+        		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_DEACTIVE : $oTrans->TEXT_DELETE),
+        		'TEXT_MANAGE_GROUPS' => ( $admin->get_permission('groups') == true ) ? $oTrans->TEXT_MANAGE_GROUPS : "**",
+        		'CONFIRM_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_ARE_YOU_SURE : $oTrans->MESSAGE_USERS_CONFIRM_DELETE)
         		)
         );
 
@@ -138,19 +135,15 @@
         if($admin->ami_group_member('1')) {
                 $oTpl->set_block('show_confirmed_activation_block', 'list_confirmed_activation_block', 'list_confirmed_activation');
                 $oTpl->set_var(array(
-                		'DISPLAY_WAITING_ACTIVATION' => $mLang->MESSAGE_USERS_WAITING_ACTIVATION,
-                		'TEXT_USER_ACTIVATE' => $mLang->TEXT_ACTIVATE,
-                		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $mLang->TEXT_DEACTIVE : $mLang->TEXT_DELETE),
+                		'DISPLAY_WAITING_ACTIVATION' => $oTrans->MESSAGE_USERS_WAITING_ACTIVATION,
+                		'TEXT_USER_ACTIVATE' => $oTrans->TEXT_ACTIVATE,
+                		'TEXT_USER_DELETE' => (($iUserStatus == 1) ? $oTrans->TEXT_DEACTIVE : $oTrans->TEXT_DELETE),
                 		)
                 );
-        		$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'users` ';
-        		$sql .= 'WHERE `confirm_timeout` != 0 ';
-                $sql .=   'AND `active` = 0 ';
-                $sql .=   'AND `user_id` != 1 ';
-                if( ($oRes = $database->query($sql)) ) {
+        		$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` '
+        		     . 'WHERE `confirm_timeout` != 0 AND `active` = 0 AND `user_id` != 1 ';
+                if( ($oRes = $oDb->doQuery($sql)) ) {
                 	$oTpl->set_var('DISPLAY_DELETE', '');
-        //        	$oTpl->set_var('NAME', 'User waiting for activation');
-        //        	$oTpl->set_var('STATUS', '' );
                 	// Loop through users
                     if(($nNumRows = $oRes->numRows())) {
                     	while($aUser = $oRes->fetchRow(MYSQL_ASSOC)) {
@@ -191,19 +184,19 @@
 //		$oTpl->parse('show_change_group_list', 'show_change_group_list_block', true);
 
 		$oTpl->set_var(	array(
-    			   'ACTION_URL'   => ADMIN_URL.'/users/index.php',
-    			   'FTAN'   => $admin->getFTAN(),
-    			   'DISPLAY_EXTRA'   => 'display:none;',
-    			   'ACTIVE_CHECKED'   => ' checked="checked"',
-    			   'DISABLED_CHECKED'   => '',
-    			   'NO_RIGHTS' => 'hide',
-    			   'CHANGING_GROUPS' => '',
-    			   'DISPLAY_ADD' => '',
-    			   'DISPLAY_MODIFY' => '',
-    			   'HEADING_MODIFY_USER' => '',
+    			   'ACTION_URL'           => ADMIN_URL.'/users/index.php',
+    			   'FTAN'                 => $admin->getFTAN(),
+    			   'DISPLAY_EXTRA'        => 'display:none;',
+    			   'ACTIVE_CHECKED'       => ' checked="checked"',
+    			   'DISABLED_CHECKED'     => '',
+    			   'NO_RIGHTS'            => 'hide',
+    			   'CHANGING_GROUPS'      => '',
+    			   'DISPLAY_ADD'          => '',
+    			   'DISPLAY_MODIFY'       => '',
+    			   'HEADING_MODIFY_USER'  => '',
     			   'DISPLAY_HOME_FOLDERS' => '',
-    			   'SUBMIT_TITLE' => $mLang->TEXT_ADD,
-                   'HIDE_SAVE_BACK' => 'hide',
+    			   'SUBMIT_TITLE'         => $oTrans->TEXT_ADD,
+                   'HIDE_SAVE_BACK'       => 'hide',
     			   )
 			);
 
@@ -210,24 +203,26 @@
 
         // insert urls
         $oTpl->set_var(array(
-        		'USER_ID' => '',
-        		'USERNAME' => '',
+        		'USER_ID'      => '',
+        		'USERNAME'     => '',
         		'DISPLAY_NAME' => '',
-        		'EMAIL' => '',
-        		'ADMIN_URL' => ADMIN_URL,
-        		'WB_URL' => WB_URL,
-                'SUB_ACTION' => 'add',
-                'CANCEL_URL' => $aActionRequest['cancel_url'],
-        		'THEME_URL' => THEME_URL
+        		'EMAIL'        => '',
+        		'ADMIN_URL'    => ADMIN_URL,
+        		'WB_URL'       => WB_URL,
+                'SUB_ACTION'   => 'add',
+                'CANCEL_URL'   => $aActionRequest['cancel_url'],
+        		'THEME_URL'    => THEME_URL
         		)
         );
 
         // Add groups to list
         $oTpl->set_block('main_block', 'group_list_block', 'group_list');
-        $results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1'");
+        $sql = 'SELECT `group_id`, `name` FROM `'.$oDb->TablePrefix.'groups` '
+             . 'WHERE `group_id` != 1';
+        $results = $oDb->doQuery($sql);
         if($results->numRows() > 0) {
         	$oTpl->set_var('ID', '');
-        	$oTpl->set_var('NAME', $mLang->TEXT_PLEASE_SELECT.'...');
+        	$oTpl->set_var('NAME', $oTrans->TEXT_PLEASE_SELECT.'...');
         	$oTpl->set_var('SELECTED', ' selected="selected"');
         	$oTpl->parse('group_list', 'group_list_block', true);
         	while($group = $results->fetchRow()) {
@@ -247,7 +242,7 @@
         } else {
         	if($results->numRows() == 0) {
         		$oTpl->set_var('ID', '');
-        		$oTpl->set_var('NAME', $mLang->TEXT_NONE_FOUND);
+        		$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
         		$oTpl->parse('group_list', 'group_list_block', true);
         	}
         }
@@ -258,16 +253,7 @@
         }
 
         // Generate username field name
-        $username_fieldname = 'username_';
-        $salt = "abchefghjkmnpqrstuvwxyz0123456789";
-        srand((double)microtime()*1000000);
-        $i = 0;
-        while ($i <= 7) {
-        	$num = rand() % 33;
-        	$tmp = substr($salt, $num, 1);
-        	$username_fieldname = $username_fieldname . $tmp;
-        	$i++;
-        }
+		$username_fieldname = 'username_'.substr(base_convert(microtime(), 16, 36), 0, 8);
 
         // Work-out if home folder should be shown
         if(!HOME_FOLDERS) {
@@ -288,23 +274,10 @@
 
         // Insert language text and messages
         $oTpl->set_var(array(
-        			'TEXT_CANCEL' => $mLang->TEXT_CANCEL,
-        			'TEXT_RESET' => $mLang->TEXT_RESET,
-        			'TEXT_ACTIVE' => $mLang->TEXT_ACTIVE,
-        			'TEXT_DISABLED' => $mLang->TEXT_DISABLED,
-        			'TEXT_PLEASE_SELECT' => $mLang->TEXT_PLEASE_SELECT,
-        			'TEXT_USERNAME' => $mLang->TEXT_USERNAME,
-        			'TEXT_PASSWORD' => $mLang->TEXT_PASSWORD,
-        			'TEXT_RETYPE_PASSWORD' => $mLang->TEXT_RETYPE_PASSWORD,
-        			'TEXT_DISPLAY_NAME' => $mLang->TEXT_DISPLAY_NAME,
-        			'TEXT_EMAIL' => $mLang->TEXT_EMAIL,
-        			'TEXT_GROUP' => $mLang->TEXT_GROUP,
-        			'TEXT_NONE' => $mLang->TEXT_NONE,
-        			'TEXT_HOME_FOLDER' => $mLang->TEXT_HOME_FOLDER,
-        			'USERNAME_FIELDNAME' => $username_fieldname,
-        			'CHANGING_PASSWORD' => $mLang->MESSAGE_USERS_CHANGING_PASSWORD
-        			)
-        	);
+            'USERNAME_FIELDNAME'   => $username_fieldname,
+            'CHANGING_PASSWORD'    => $oTrans->MESSAGE_USERS_CHANGING_PASSWORD
+            )
+        );
 
         // Parse template for add user form
         $oTpl->parse('show_modify_loginname', '', true);
Index: branches/2.8.x/wb/admin/users/save.php
===================================================================
--- branches/2.8.x/wb/admin/users/save.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/save.php	(revision 2098)
@@ -23,7 +23,7 @@
 }
 /* -------------------------------------------------------- */
 
-	function save_user($admin, &$aActionRequest)
+	function save_user($admin, $aActionRequest)
 	{
         // Create a javascript back link
 //        $js_back = ADMIN_URL.'/users/index.php';
@@ -30,20 +30,21 @@
         unset($aActionRequest['save']);
 
         $aActionRequest['modify']= 'change';
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
+		$oDb = WbDatabase::getInstance();
+		$oTrans = Translate::getInstance();
+        $oTrans->enableAddon('admin\\users');
         $bRetVal = 0;
     	$iMinPassLength = 6;
 
         if( !$admin->checkFTAN() )
         {
-        	msgQueue::add($mLang->MESSAGE_GENERIC_SECURITY_ACCESS);
+        	msgQueue::add($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
             return $bRetVal;
         }
 
         // Check if user id is a valid number and doesnt equal 1
         if(!isset($aActionRequest['user_id']) OR !is_numeric($aActionRequest['user_id']) OR $aActionRequest['user_id'] == 1) {
-        	msgQueue::add('::'.$mLang->MESSAGE_GENERIC_NOT_UPGRADED);
+        	msgQueue::add('::'.$oTrans->MESSAGE_GENERIC_NOT_UPGRADED);
             return $bRetVal;
         } else {
         	$user_id = intval($aActionRequest['user_id']);
@@ -52,15 +53,14 @@
 		if( ($user_id < 2 ) )
 		{
 			// if($admin_header) { $admin->print_header(); }
-        	msgQueue::add($mLang->MESSAGE_GENERIC_SECURITY_OFFENSE);
+        	msgQueue::add($oTrans->MESSAGE_GENERIC_SECURITY_OFFENSE);
             return $bRetVal;
 		}
 		// Get existing values
-        $sql  = 'SELECT * FROM `'.TABLE_PREFIX.'users` ' ;
-        $sql .= 'WHERE user_id = '.$user_id.' ';
-        $sql .=   'AND user_id != 1 ';
-
-        if($oRes = $database->query($sql)){
+        $sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` '
+             . 'WHERE `user_id`='.$user_id.' '
+             . 'AND `user_id` != 1';
+        if(($oRes = $oDb->doQuery($sql))) {
             $olduser = $oRes->fetchRow(MYSQL_ASSOC);
         }
 
@@ -83,7 +83,7 @@
 
         // Check values
         if($groups_id == "") {
-        	msgQueue::add($mLang->MESSAGE_USERS_NO_GROUP);
+        	msgQueue::add($oTrans->MESSAGE_USERS_NO_GROUP);
         } else {
             $aGroups_id = explode(',', $groups_id);
             //if user is in administrator-group, get this group else just get the first one
@@ -93,35 +93,35 @@
 //$admin->is_group_match($admin->get_groups_id(), '1' )
         if(!preg_match('/^[a-z]{1}[a-z0-9_-]{2,}$/i', $username))
         {
-        	msgQueue::add( $mLang->MESSAGE_USERS_NAME_INVALID_CHARS);
+        	msgQueue::add( $oTrans->MESSAGE_USERS_NAME_INVALID_CHARS);
         }
 
         if($password != "") {
         	if(strlen($password) < $iMinPassLength ) {
-        		msgQueue::add($mLang->MESSAGE['USERS_PASSWORD_TOO_SHORT']);
+        		msgQueue::add($oTrans->MESSAGE['USERS_PASSWORD_TOO_SHORT']);
         	}
 
 			$pattern = '/[^'.$admin->password_chars.']/';
 			if (preg_match($pattern, $password)) {
-				msgQueue::add($mLang->MESSAGE_PREFERENCES_INVALID_CHARS);
+				msgQueue::add($oTrans->MESSAGE_PREFERENCES_INVALID_CHARS);
         	}
 
         	if(($password != $password2) ) {
-        		msgQueue::add($mLang->MESSAGE_USERS_PASSWORD_MISMATCH);
+        		msgQueue::add($oTrans->MESSAGE_USERS_PASSWORD_MISMATCH);
         	}
         }
 // check that display_name is unique in whoole system (prevents from User-faking)
-    	$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` ';
+    	$sql  = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'users` ';
     	$sql .= 'WHERE `user_id` <> '.(int)$user_id.' AND `display_name` LIKE "'.$display_name.'"';
-    	if( $database->get_one($sql) > 0 ){
-            msgQueue::add($mLang->MESSAGE_USERS_USERNAME_TAKEN.' ('.$mLang->TEXT_DISPLAY_NAME.')');
-            msgQueue::add($mLang->MESSAGE_MEDIA_CANNOT_RENAME);
+    	if( $oDb->getOne($sql) > 0 ){
+            msgQueue::add($oTrans->MESSAGE_USERS_USERNAME_TAKEN.' ('.$oTrans->TEXT_DISPLAY_NAME.')');
+            msgQueue::add($oTrans->MESSAGE_MEDIA_CANNOT_RENAME);
         }
 //
 		if( ($admin->get_user_id() != '1' ) )
 		{
             if(findStringInFileList($display_name, dirname(__FILE__).'/disallowedNames')) {
-                msgQueue::add( $mLang->TEXT_ERROR.' '.$mLang->TEXT_DISPLAY_NAME.' ('.$display_name.')' );
+                msgQueue::add( $oTrans->TEXT_ERROR.' '.$oTrans->TEXT_DISPLAY_NAME.' ('.$display_name.')' );
             }
 		}
 
@@ -131,23 +131,23 @@
         {
         	if($admin->validate_email($email) == false)
             {
-                msgQueue::add($mLang->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
+                msgQueue::add($oTrans->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
         	}
         } else { // e-mail must be present
-        	msgQueue::add($mLang->MESSAGE_SIGNUP_NO_EMAIL);
+        	msgQueue::add($oTrans->MESSAGE_SIGNUP_NO_EMAIL);
         }
 
-		$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` '.
+		$sql  = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'users` '.
                 'WHERE `email` LIKE \''.$email.'\' '.
                   'AND `user_id` <> '.(int)$user_id;
         // Check if the email already exists
-        if( ($iFoundUser = $database->get_one($sql)) != null ) {
+        if( ($iFoundUser = $oDb->getOne($sql)) != null ) {
             if($iFoundUser) {
-            	if(isset($mLang->MESSAGE_USERS_EMAIL_TAKEN))
+            	if(isset($oTrans->MESSAGE_USERS_EMAIL_TAKEN))
                 {
-            		msgQueue::add($mLang->MESSAGE_USERS_EMAIL_TAKEN.' ('.$email.')');
+            		msgQueue::add($oTrans->MESSAGE_USERS_EMAIL_TAKEN.' ('.$email.')');
             	} else {
-            		msgQueue::add($mLang->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
+            		msgQueue::add($oTrans->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
             	}
             }
         }
@@ -174,44 +174,44 @@
                 $sHomeFolder = WB_PATH.MEDIA_DIRECTORY.'/home/'.( media_filename($username) );
                 if ( sizeof(createFolderProtectFile( $sHomeFolder )) )
                 {
-    //            	msgQueue::add($mLang->MESSAGE_MEDIA_DIR_NOT_MADE);
+    //            	msgQueue::add($oTrans->MESSAGE_MEDIA_DIR_NOT_MADE);
                 }
             }
 
-			$sql  = 'UPDATE `'.TABLE_PREFIX.'users` SET ';
+			$sql  = 'UPDATE `'.$oDb->TablePrefix.'users` SET ';
             // Update the database
             if($password == "") {
-                $sql .= '`group_id`     = '.intval($group_id).', '.
-                        '`groups_id`    = \''.$database->escapeString($groups_id).'\', '.
-                        '`username` = \''.$database->escapeString($username).'\', '.
+                $sql .= '`group_id` = '.intval($group_id).', '.
+                        '`groups_id` = \''.$oDb->escapeString($groups_id).'\', '.
+                        '`username` = \''.$oDb->escapeString($username).'\', '.
                         '`active` = '.intval($active).', '.
-                        '`display_name` = \''.$database->escapeString($display_name).'\', '.
-                        '`home_folder` = \''.$database->escapeString($home_folder).'\', '.
-                        '`email` = \''.$database->escapeString($email).'\' '.
+                        '`display_name` = \''.$oDb->escapeString($display_name).'\', '.
+                        '`home_folder` = \''.$oDb->escapeString($home_folder).'\', '.
+                        '`email` = \''.$oDb->escapeString($email).'\' '.
                         'WHERE `user_id` = '.intval($user_id).'';
 
             } else {
 
-                $sql .= '`group_id`     = '.intval($group_id).', '.
-                        '`groups_id`    = \''.$database->escapeString($groups_id).'\', '.
-                        '`username` = \''.$database->escapeString($username).'\', '.
+                $sql .= '`group_id` = '.intval($group_id).', '.
+                        '`groups_id` = \''.$oDb->escapeString($groups_id).'\', '.
+                        '`username` = \''.$oDb->escapeString($username).'\', '.
                         '`password` = \''.md5($password).'\', '.
                         '`active` = '.intval($active).', '.
-                        '`display_name` = \''.$database->escapeString($display_name).'\', '.
-                        '`home_folder` = \''.$database->escapeString($home_folder).'\', '.
-                        '`email` = \''.$database->escapeString($email).'\' '.
+                        '`display_name` = \''.$oDb->escapeString($display_name).'\', '.
+                        '`home_folder` = \''.$oDb->escapeString($home_folder).'\', '.
+                        '`email` = \''.$oDb->escapeString($email).'\' '.
                         'WHERE `user_id` = '.intval($user_id).'';
 
             }
-            if($database->query($sql)) {
-            	msgQueue::add($mLang->MESSAGE_USERS_SAVED, true);
+            if($oDb->doQuery($sql)) {
+            	msgQueue::add($oTrans->MESSAGE_USERS_SAVED, true);
                 $bRetVal = $user_id;
             }
-            if($database->is_error()) {
-               msgQueue::add( implode('<br />',explode(';',$database->get_error())) );
+            if($oDb->isError()) {
+               msgQueue::add( implode('<br />',explode(';',$oDb->getError())) );
             }
        } else {
-            	msgQueue::add($mLang->MESSAGE_GENERIC_NOT_UPGRADED);
+            	msgQueue::add($oTrans->MESSAGE_GENERIC_NOT_UPGRADED);
        }
 
 //        return $admin->getIDKEY($user_id);
Index: branches/2.8.x/wb/admin/users/user_form.php
===================================================================
--- branches/2.8.x/wb/admin/users/user_form.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/user_form.php	(revision 2098)
@@ -26,8 +26,9 @@
 
 	function show_usermask($admin, &$aActionRequest)
 	{
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
+		$oDb = WbDatabase::getInstance();
+		$oTrans = Translate::getInstance();
+        $oTrans->enableAddon('admin\\users');
 
     	$user_id = intval($aActionRequest['user_id']);
         $user = array(
@@ -36,18 +37,12 @@
             'display_name'=> '',
             'email'=> '',
         );
-
 		// Get existing values
-        $sql  = 'SELECT * FROM `'.TABLE_PREFIX.'users` ' ;
-        $sql .= 'WHERE user_id = '.$user_id.' ';
-        $sql .=   'AND user_id != 1 ';
-
-        if($oRes = $database->query($sql)){
+        $sql = 'SELECT * FROM `'.$oDb->TablePrefix.'users` ' 
+             . 'WHERE `user_id`='.$user_id.' AND `user_id` != 1';
+        if (($oRes = $oDb->doQuery($sql))) {
             $user = $oRes->fetchRow(MYSQL_ASSOC);
         }
-
-        $sNoRightsToChangeGroups = (($admin->get_user_id()==1)) ? 'hide' : '';
-        $sNoRightsToChangeGroups = (($user['group_id']==1)) ? $sNoRightsToChangeGroups : 'hide';
 		// Setup template object, parse vars to it, then parse it
 		// Create new template object
 		$oTpl = new Template(dirname($admin->correct_theme_source('users_form.htt')),'keep');
@@ -57,7 +52,7 @@
 		$oTpl->set_block('main_block', 'show_modify_loginname_block', 'show_modify_loginname');
 		$oTpl->set_block('main_block', 'show_add_loginname_block', 'show_add_loginname');
 		$oTpl->set_block('main_block', 'show_change_group_list_block', 'show_change_group_list');
-
+        $oTpl->set_var($oTrans->getLangArray());
 		if( ( !$admin->ami_group_member('1') ) )
 		{
             $oTpl->set_var('CHANGING_GROUPS', 'You are not allowed to change the groups');
@@ -65,26 +60,23 @@
 		} else {
     		$oTpl->parse('show_change_group_list', '');
 		}
-
 		$oTpl->set_var(	array(
-    			   'ACTION_URL'   => ADMIN_URL.'/users/index.php',
-    			   'SUB_ACTION'   => 'save',
-                   'BACK_LINK'    => (isset($aActionRequest['BackLink'])) ? $aActionRequest['BackLink'] : '',
-                   'CANCEL_URL'   => $aActionRequest['cancel_url'],
-    			   'SUBMIT_TITLE' => $mLang->TEXT_SAVE,
-                   'USER_ID' => $user['user_id'],
-//    			   'NO_RIGHTS' => 'hide',
-//    			   'CHANGING_GROUPS' => '',
-    			   'DISPLAY_EXTRA' => '',
-    			   'DISPLAY_HOME_FOLDERS' => '',
-    			   'USERNAME' => $user['username'],
-    			   'DISPLAY_NAME' => $user['display_name'],
-    			   'EMAIL' => $user['email'],
-    			   'ADMIN_URL' => ADMIN_URL,
-    			   'WB_URL' => WB_URL,
-    			   'THEME_URL' => THEME_URL
-    			   )
-			);
+            'ACTION_URL'   => ADMIN_URL.'/users/index.php',
+            'SUB_ACTION'           => 'save',
+            'BACK_LINK'            => (isset($aActionRequest['BackLink'])) ? $aActionRequest['BackLink'] : '',
+            'CANCEL_URL'           => $aActionRequest['cancel_url'],
+            'SUBMIT_TITLE'         => $oTrans->TEXT_SAVE,
+            'USER_ID'              => $user['user_id'],
+            'DISPLAY_EXTRA'        => '',
+            'DISPLAY_HOME_FOLDERS' => '',
+            'USERNAME'             => $user['username'],
+            'DISPLAY_NAME'         => $user['display_name'],
+            'EMAIL'                => $user['email'],
+            'ADMIN_URL'            => ADMIN_URL,
+            'WB_URL'               => WB_URL,
+            'THEME_URL'            => THEME_URL
+            )
+        );
 
 		$oTpl->set_var('FTAN', $admin->getFTAN());
 		if($user['active'] == 1) {
@@ -94,14 +86,13 @@
             $oTpl->set_var('ACTIVE_CHECKED', '');
 			$oTpl->set_var('DISABLED_CHECKED', ' checked="checked"');
 		}
-//		$results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1' ORDER BY name");
 		// Add groups to list
 		$oTpl->set_block('main_block', 'group_list_block', 'group_list');
-    	$sql  = 'SELECT `group_id`,`name` FROM `'.TABLE_PREFIX.'groups` ';
-    	$sql .= 'WHERE `group_id` != 1 ORDER BY `name`';
-		if($oRes = $database->query($sql)) {
+    	$sql = 'SELECT `group_id`, `name` FROM `'.$oDb->TablePrefix.'groups` '
+    	     . 'WHERE `group_id` != 1 ORDER BY `name`';
+		if (($oRes = $oDb->doQuery($sql))) {
 			$oTpl->set_var('ID', '');
-			$oTpl->set_var('NAME', $mLang->TEXT_PLEASE_SELECT.'...');
+			$oTpl->set_var('NAME', $oTrans->TEXT_PLEASE_SELECT.'...');
 			$oTpl->set_var('SELECTED', '');
 			$oTpl->parse('group_list', 'group_list_block', true);
 			while($group = $oRes->fetchRow(MYSQL_ASSOC)) {
@@ -122,19 +113,18 @@
 		if( ($admin->is_group_match($user['groups_id'], '1') ) || ($admin->ami_group_member('1')) )
 	    {
             if( ($in_group = ($admin->ami_group_member('1'))) == false ) {
-            	$sql  = 'SELECT `name` FROM `'.TABLE_PREFIX.'groups` ';
-            	$sql .= 'WHERE `group_id` = 1 ORDER BY `name`';
-                if( ($sGroupName = $database->get_one($sql)) != null ) {
+            	$sql = 'SELECT `name` FROM `'.$oDb->TablePrefix.'groups` '
+            	     . 'WHERE `group_id` = 1 ORDER BY `name`';
+                if( ($sGroupName = $oDb->getOne($sql)) != null ) {
             		$in_group = true;
         			$oTpl->set_var('ID', '1');
         			$oTpl->set_var('NAME', $sGroupName);
                 }
             } else {
-                if( $in_group = ($admin->is_group_match($admin->get_groups_id(), '1')) ) {
+                if( ($in_group = ($admin->is_group_match($admin->get_groups_id(), '1'))) ) {
         			$sGroupName = $admin->get_groups_name();
         			$oTpl->set_var('ID', '1');
         			$oTpl->set_var('NAME', $sGroupName[1]);
-                    $in_group = $user['group_id'] == 1;
                 }
             }
 
@@ -147,7 +137,7 @@
 		} else {
 			if($oRes->numRows() == 0) {
 				$oTpl->set_var('ID', '');
-				$oTpl->set_var('NAME', $mLang->TEXT_NONE_FOUND);
+				$oTpl->set_var('NAME', $oTrans->TEXT_NONE_FOUND);
 				$oTpl->set_var('SELECTED', ' selected="selected"');
 				$oTpl->parse('group_list', 'group_list_block', true);
 			}
@@ -154,17 +144,7 @@
 		}
 
 		// Generate username field name
-		$username_fieldname = 'username_';
-		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
-		srand((double)microtime()*1000000);
-		$i = 0;
-		while ($i <= 7) {
-			$num = rand() % 33;
-			$tmp = substr($salt, $num, 1);
-			$username_fieldname = $username_fieldname . $tmp;
-			$i++;
-		}
-
+		$username_fieldname = 'username_'.substr(base_convert(microtime(), 16, 36), 0, 8);
 		// Work-out if home folder should be shown
 		if(!HOME_FOLDERS) {
 			$oTpl->set_var('DISPLAY_HOME_FOLDERS', 'display:none;');
@@ -189,25 +169,11 @@
 
 		// Insert language text and messages
 		$oTpl->set_var(array(
-                    'TEXT_RESET' => $mLang->TEXT_RESET,
-                    'TEXT_CANCEL' => $mLang->TEXT_CANCEL,
-                    'TEXT_ACTIVE' => $mLang->TEXT_ACTIVE,
-                    'TEXT_DISABLED' => $mLang->TEXT_DISABLED,
-                    'TEXT_PLEASE_SELECT' => $mLang->TEXT_PLEASE_SELECT,
-                    'TEXT_USERNAME' => $mLang->TEXT_USERNAME,
-                    'TEXT_PASSWORD' => $mLang->TEXT_PASSWORD,
-                    'TEXT_RETYPE_PASSWORD' => $mLang->TEXT_RETYPE_PASSWORD,
-                    'TEXT_DISPLAY_NAME' => $mLang->TEXT_DISPLAY_NAME,
-                    'TEXT_EMAIL' => $mLang->TEXT_EMAIL,
-                    'TEXT_GROUP' => $mLang->TEXT_GROUP,
-                    'TEXT_NONE' => $mLang->TEXT_NONE,
-                    'TEXT_HOME_FOLDER' => $mLang->TEXT_HOME_FOLDER,
-                    'TEXT_SAVE_BACK' => $mLang->TEXT_SAVE.' &amp; '.$mLang->TEXT_BACK,
-                    'USERNAME_FIELDNAME' => $username_fieldname,
-                    'CHANGING_PASSWORD' => $mLang->MESSAGE_USERS_CHANGING_PASSWORD,
-                    'HEADING_MODIFY_USER' => $mLang->HEADING_MODIFY_USER
-                    )
-                );
+                'TEXT_SAVE_BACK'     => $oTrans->TEXT_SAVE.' &amp; '.$oTrans->TEXT_BACK,
+                'USERNAME_FIELDNAME' => $username_fieldname,
+                'CHANGING_PASSWORD'  => $oTrans->MESSAGE_USERS_CHANGING_PASSWORD
+            )
+        );
 
 		// Parse template object
 		$oTpl->parse('show_modify_loginname', 'show_modify_loginname_block', true);
Index: branches/2.8.x/wb/admin/users/delete.php
===================================================================
--- branches/2.8.x/wb/admin/users/delete.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/delete.php	(revision 2098)
@@ -23,10 +23,11 @@
 	throw new IllegalFileException();
 }
 /* -------------------------------------------------------- */
-function delete_user($admin, &$aActionRequest)
+function delete_user($admin, $aActionRequest)
 {
-	$database = WbDatabase::getInstance();
-	$mLang = Translate::getInstance();
+	$oDb = WbDatabase::getInstance();
+	$oTrans = Translate::getInstance();
+    $oTrans->enableAddon('admin\\users');
     $aUserID = array();
     $bRetVal = false;
 
@@ -98,7 +99,7 @@
 
 		// Check if user id is a valid number and doesnt equal 1
 		if($user_id == 0){
-			msgQueue::add($mLang->MESSAGE_GENERIC_FORGOT_OPTIONS );
+			msgQueue::add($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS );
             return $bRetVal;
         }
 
@@ -105,7 +106,7 @@
 		if( ($user_id < 2 ) )
 		{
 			// if($admin_header) { $admin->print_header(); }
-			msgQueue::add($mLang->MESSAGE_GENERIC_SECURITY_ACCESS );
+			msgQueue::add($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS );
             return $bRetVal;
 		}
 
@@ -114,47 +115,47 @@
 
     	switch($action) :
     		case 'enable_outdated': // enable Users awaiting activation
-    			$sql  = 'SELECT `display_name` FROM `'.TABLE_PREFIX.'users` '.
+    			$sql  = 'SELECT `display_name` FROM `'.$oDb->TablePrefix.'users` '.
                         'WHERE `user_id` = '.$user_id;
-                if( ($sDisplayUser = $database->getOne($sql)) != null ) {
-            		$sql = 'UPDATE `'.TABLE_PREFIX.'users` '
+                if( ($sDisplayUser = $oDb->getOne($sql)) != null ) {
+            		$sql = 'UPDATE `'.$oDb->TablePrefix.'users` '
             		     . 'SET `active`=1, '
             		     .     '`confirm_code`=\'\', '
             		     .     '`confirm_timeout`=0 '
             		     . 'WHERE `user_id`='.$user_id;
-            		if($database->query($sql)) {
-                        msgQueue::add($mLang->MESSAGE_USERS_ADDED.' ('.$sDisplayUser.')', true);
+            		if($oDb->doQuery($sql)) {
+                        msgQueue::add($oTrans->MESSAGE_USERS_ADDED.' ('.$sDisplayUser.')', true);
                         $bRetVal = true;
                     } else {
-                        msgQueue::add($mLang->TEXT_ENABLE.$mLang->MESSAGE_GENERIC_NOT_COMPARE.' ('.$sDisplayUser.')');
+                        msgQueue::add($oTrans->TEXT_ENABLE.$oTrans->MESSAGE_GENERIC_NOT_COMPARE.' ('.$sDisplayUser.')');
                     }
                 }
         		break;
     		default: // show userlist with empty modify mask
-    			$sql  = 'SELECT `active` FROM `'.TABLE_PREFIX.'users` '.
+    			$sql  = 'SELECT `active` FROM `'.$oDb->TablePrefix.'users` '.
                         'WHERE `user_id` = '.$user_id;
-                if( ($iDeleteUser = $database->get_one($sql)) != null ) {
+                if( ($iDeleteUser = $oDb->getOne($sql)) != null ) {
                     if($iDeleteUser) {
         				// Deactivate the user
-            			$sql  = 'UPDATE `'.TABLE_PREFIX.'users` SET '.
+            			$sql  = 'UPDATE `'.$oDb->TablePrefix.'users` SET '.
                                 '`active` = 0 '.
                                 'WHERE `user_id` = '.$user_id;
-                        if( $database->query($sql) ) {
-                            msgQueue::add($mLang->TEXT_USERS_MARKED_DELETED, true);
+                        if( $oDb->doQuery($sql) ) {
+                            msgQueue::add($oTrans->TEXT_USERS_MARKED_DELETED, true);
                         }
                     } else {
 
 
-            			$sql  = 'DELETE FROM `'.TABLE_PREFIX.'users` '.
+            			$sql  = 'DELETE FROM `'.$oDb->TablePrefix.'users` '.
                                 'WHERE `user_id` = '.$user_id;
-                        if( $database->query($sql) ) {
-                            msgQueue::add($mLang->MESSAGE_USERS_DELETED, true);
+                        if( $oDb->doQuery($sql) ) {
+                            msgQueue::add($oTrans->MESSAGE_USERS_DELETED, true);
                         }
                     }
                     $bRetVal = true;
                 }
-                if($database->is_error()) {
-                    msgQueue::add( implode('<br />',explode(';',$database->get_error())) );
+                if($oDb->isError()) {
+                    msgQueue::add( implode('<br />',explode(';',$oDb->getError())) );
                     $bRetVal = false;
                }
     	endswitch; // end of switch
Index: branches/2.8.x/wb/admin/users/index.php
===================================================================
--- branches/2.8.x/wb/admin/users/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/index.php	(revision 2098)
@@ -23,19 +23,19 @@
      */
     function findStringInFileList( $sString, $sListFile)
     {
-     $aMatch = array();
-     if(is_readable($sListFile)) {
-      $aList = file($sListFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
-      $aMatch = preg_grep('/'.preg_quote($sString, '/').'/i',$aList);
-     }
-     return (sizeof($aMatch)>0);
+        $aMatch = array();
+        if(is_readable($sListFile)) {
+            $aList = file($sListFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+            $aMatch = preg_grep('/'.preg_quote($sString, '/').'/i',$aList);
+        }
+        return (sizeof($aMatch)>0);
     }
 
 	function admin_users_index($aActionRequest)
 	{
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
-		$mLang->enableAddon('admin\users');
+		$oDb = WbDatabase::getInstance();
+		$oTrans = Translate::getInstance();
+		$oTrans->enableAddon('admin\\users');
 
         $sAdminPath = dirname(str_replace('\\', '/', __FILE__));
         $sAdminName = basename($sAdminPath);
@@ -96,7 +96,7 @@
     			if($user_id == 0){
     				$admin = new admin('Access', 'users');
     				msgQueue::clear();
-        			msgQueue::add($mLang->MESSAGE_GENERIC_FORGOT_OPTIONS );
+        			msgQueue::add($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS );
                     $aActionRequest['user_id'] = $user_id;
                     $aActionRequest['cancel_url'] = ADMIN_URL.'/access/index.php';
 					include($sAdminPath.'/user_list.php');
@@ -115,7 +115,7 @@
     			if( ($user_id < 2 ) )
     			{
     				// if($admin_header) { $admin->print_header(); }
-    				msgQueue::add($mLang->MESSAGE_GENERIC_SECURITY_ACCESS );
+    				msgQueue::add($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS );
     			}
                 $admin_header = false;
                 if(isset($aActionRequest['BackLink'])) {
@@ -170,17 +170,17 @@
         }
 		$admin->print_footer();
 
-    }
-
+    } // end of function admin_users_index()
+/* ************************************************************************************ */
 	if(!defined('WB_URL'))
 	{
-        $config_file = realpath('../../config.php');
-        if(file_exists($config_file) && !defined('WB_URL'))
-        {
+        $config_file = '../../config.php';
+        if(is_readable($config_file)) {
         	require($config_file);
+        } else {
+            throw new Exception('unable to read config.php');
         }
     }
-    if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
 
     $requestMethod = '_'.strtoupper($_SERVER['REQUEST_METHOD']);
     $aActionRequest = (isset(${$requestMethod})) ? ${$requestMethod} : null;
Index: branches/2.8.x/wb/admin/users/add.php
===================================================================
--- branches/2.8.x/wb/admin/users/add.php	(revision 2097)
+++ branches/2.8.x/wb/admin/users/add.php	(revision 2098)
@@ -23,10 +23,11 @@
 }
 /* -------------------------------------------------------- */
 
-	function add_user($admin, &$aActionRequest)
+	function add_user($admin, $aActionRequest)
 	{
-		$database = WbDatabase::getInstance();
-		$mLang = Translate::getInstance();
+		$oDb = WbDatabase::getInstance();
+		$oTrans = Translate::getInstance();
+        $oTrans->enableAddon('admin\\users');
         $bRetVal = false;
         $iMinPassLength = 6;
 
@@ -33,7 +34,7 @@
         if( !$admin->checkFTAN() )
         {
 //        	$admin->print_header();
-        	msgQueue::add($mLang->MESSAGE_GENERIC_SECURITY_ACCESS);
+        	msgQueue::add($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
             return $bRetVal;
         }
 
@@ -63,7 +64,7 @@
         // Check values
         // Check values
         if($groups_id == "") {
-        	msgQueue::add($mLang->MESSAGE_USERS_NO_GROUP);
+        	msgQueue::add($oTrans->MESSAGE_USERS_NO_GROUP);
         } else {
             $aGroups_id = explode(',', $groups_id);
             //if user is in administrator-group, get this group else just get the first one
@@ -71,45 +72,45 @@
         }
 
         if(!preg_match('/^[a-z]{1}[a-z0-9_-]{2,}$/i', $username)) {
-        	msgQueue::add( $mLang->MESSAGE_USERS_NAME_INVALID_CHARS);
+        	msgQueue::add($oTrans->MESSAGE_USERS_NAME_INVALID_CHARS);
         }
 
-		$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` '.
+		$sql  = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'users` '.
                 'WHERE `username` LIKE \''.$username.'\' ';
         // Check if username already exists
-        if( ($iFoundUser = $database->get_one($sql)) != null ) {
+        if( ($iFoundUser = $oDb->getOne($sql)) != null ) {
             if($iFoundUser) {
-            	msgQueue::add($mLang->MESSAGE_USERS_USERNAME_TAKEN);
+            	msgQueue::add($oTrans->MESSAGE_USERS_USERNAME_TAKEN);
             }
         }
 
     	if(strlen($password) < $iMinPassLength ) {
-    		msgQueue::add($mLang->MESSAGE_USERS_PASSWORD_TOO_SHORT);
+    		msgQueue::add($oTrans->MESSAGE_USERS_PASSWORD_TOO_SHORT);
     	}
 
 		$pattern = '/[^'.$admin->password_chars.']/';
 		if (preg_match($pattern, $password)) {
-			msgQueue::add($mLang->MESSAGE_PREFERENCES_INVALID_CHARS);
+			msgQueue::add($oTrans->MESSAGE_PREFERENCES_INVALID_CHARS);
     	}
 
     	if(($password != $password2) ) {
-    		msgQueue::add($mLang->MESSAGE__USERS_PASSWORD_MISMATCH);
+    		msgQueue::add($oTrans->MESSAGE__USERS_PASSWORD_MISMATCH);
     	}
 
 //
 // check that display_name is unique in whoole system (prevents from User-faking)
-    	$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` ';
+    	$sql  = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'users` ';
     	$sql .= 'WHERE `user_id` <> '.(int)$admin->get_user_id().' AND `display_name` LIKE "'.$display_name.'"';
-    	if( ($iFoundUser = intval($database->get_one($sql))) > 0 ){
-    	   msgQueue::add($mLang->MESSAGE_USERS_USERNAME_TAKEN.' ('.$mLang->TEXT_DISPLAY_NAME.')');
+    	if( ($iFoundUser = intval($oDb->getOne($sql))) > 0 ){
+    	   msgQueue::add($oTrans->MESSAGE_USERS_USERNAME_TAKEN.' ('.$oTrans->TEXT_DISPLAY_NAME.')');
         } else {
             if($display_name == '') {
-        	   msgQueue::add($mLang->MESSAGE_GENERIC_FILL_IN_ALL.' ('.$mLang->TEXT_DISPLAY_NAME.')');
+        	   msgQueue::add($oTrans->MESSAGE_GENERIC_FILL_IN_ALL.' ('.$oTrans->TEXT_DISPLAY_NAME.')');
             }
        }
 
         if(findStringInFileList($display_name, dirname(__FILE__).'/disallowedNames')) {
-            msgQueue::add( $mLang->TEXT_ERROR.' '.$mLang->TEXT_DISPLAY_NAME.' ('.$display_name.')' );
+            msgQueue::add( $oTrans->TEXT_ERROR.' '.$oTrans->TEXT_DISPLAY_NAME.' ('.$display_name.')' );
         }
 
         if($email != "")
@@ -116,23 +117,23 @@
         {
         	if($admin->validate_email($email) == false)
             {
-                msgQueue::add($mLang->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
+                msgQueue::add($oTrans->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
         	}
         } else { // e-mail must be present
-        	msgQueue::add($mLang->MESSAGE_SIGNUP_NO_EMAIL);
+        	msgQueue::add($oTrans->MESSAGE_SIGNUP_NO_EMAIL);
         }
 
-		$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` '.
+		$sql  = 'SELECT COUNT(*) FROM `'.$oDb->TablePrefix.'users` '.
                 'WHERE `email` LIKE \''.$email.'\' ';
 
         // Check if the email already exists
-        if( ($iFoundUser = $database->get_one($sql)) != null ) {
+        if( ($iFoundUser = $oDb->getOne($sql)) != null ) {
             if($iFoundUser) {
-            	if(isset($mLang->MESSAGE_USERS_EMAIL_TAKEN))
+            	if(isset($oTrans->MESSAGE_USERS_EMAIL_TAKEN))
                 {
-            		msgQueue::add($mLang->MESSAGE_USERS_EMAIL_TAKEN.' ('.$email.')');
+            		msgQueue::add($oTrans->MESSAGE_USERS_EMAIL_TAKEN.' ('.$email.')');
             	} else {
-            		msgQueue::add($mLang->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
+            		msgQueue::add($oTrans->MESSAGE_USERS_INVALID_EMAIL.' ('.$email.')');
             	}
             }
         }
@@ -150,39 +151,39 @@
                 $sHomeFolder = WB_PATH.MEDIA_DIRECTORY.'/home/'.( media_filename($username) );
                 if ( sizeof(createFolderProtectFile( $sHomeFolder )) )
                 {
-                	msgQueue::add($mLang->MESSAGE_MEDIA_DIR_NOT_MADE.' ('.basename($sHomeFolder).') ' );
+                	msgQueue::add($oTrans->MESSAGE_MEDIA_DIR_NOT_MADE.' ('.basename($sHomeFolder).') ' );
                 }
             }
             // Inser the user into the database
-			$sql  = 'INSERT INTO `'.TABLE_PREFIX.'users` SET '.
+			$sql  = 'INSERT INTO `'.$oDb->TablePrefix.'users` SET '.
                     '`group_id`     = '.intval($group_id).', '.
-                    '`groups_id`    = \''.$database->escapeString($groups_id).'\', '.
+                    '`groups_id`    = \''.$oDb->escapeString($groups_id).'\', '.
                     '`active`       = '.intval($active).', '.
-                    '`username`     = \''.$database->escapeString($username).'\', '.
+                    '`username`     = \''.$oDb->escapeString($username).'\', '.
                     '`password`     = \''.md5($password).'\', '.
-                    '`confirm_code` = \''.$database->escapeString($confirm_code).'\', '.
+                    '`confirm_code` = \''.$oDb->escapeString($confirm_code).'\', '.
                     '`confirm_timeout` = '.intval($confirm_timeout).', '.
-                    '`remember_key` = \''.$database->escapeString($remember_key).'\', '.
+                    '`remember_key` = \''.$oDb->escapeString($remember_key).'\', '.
                     '`last_reset`   = '.intval($last_reset).', '.
-                    '`display_name` = \''.$database->escapeString($display_name).'\', '.
-                    '`email`        = \''.$database->escapeString($email).'\', '.
+                    '`display_name` = \''.$oDb->escapeString($display_name).'\', '.
+                    '`email`        = \''.$oDb->escapeString($email).'\', '.
                     '`timezone`     = '.intval($timezone).', '.
-                    '`date_format`  = \''.$database->escapeString($date_format).'\', '.
-                    '`time_format`  = \''.$database->escapeString($time_format).'\', '.
-                    '`language`     = \''.$database->escapeString($language).'\', '.
-                    '`home_folder`  = \''.$database->escapeString($home_folder).'\', '.
+                    '`date_format`  = \''.$oDb->escapeString($date_format).'\', '.
+                    '`time_format`  = \''.$oDb->escapeString($time_format).'\', '.
+                    '`language`     = \''.$oDb->escapeString($language).'\', '.
+                    '`home_folder`  = \''.$oDb->escapeString($home_folder).'\', '.
                     '`login_when`   = '.intval($login_when).', '.
-                    '`login_ip`     = \''.$database->escapeString($login_ip).'\' '.
+                    '`login_ip`     = \''.$oDb->escapeString($login_ip).'\' '.
                     '';
-            if($database->query($sql)) {
-            	msgQueue::add($mLang->MESSAGE_USERS_ADDED, true);
+            if($oDb->doQuery($sql)) {
+            	msgQueue::add($oTrans->MESSAGE_USERS_ADDED, true);
 		        $bRetVal = true;
             }
-            if($database->is_error()) {
-                msgQueue::add( implode('<br />',explode(';',$database->get_error())) );
+            if($oDb->isError()) {
+                msgQueue::add( implode('<br />',explode(';',$oDb->getError())) );
             }
         } else {
-        	msgQueue::add($mLang->HEADING_ADD_USER.' '.$mLang->MESSAGE_GENERIC_NOT_COMPARE);
+        	msgQueue::add($oTrans->HEADING_ADD_USER.' '.$oTrans->MESSAGE_GENERIC_NOT_COMPARE);
 
 		}
 		return $bRetVal;
Index: branches/2.8.x/wb/admin/access/index.php
===================================================================
--- branches/2.8.x/wb/admin/access/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/access/index.php	(revision 2098)
@@ -25,16 +25,18 @@
 $template = new Template(dirname($admin->correct_theme_source('access.htt')));
 // $template->debug = true;
 $template->set_file('page', 'access.htt');
-
 $template->set_block('page', 'main_block', 'main');
 $template->set_block('main_block', 'users_block', 'user');
 $template->set_block('main_block', 'groups_block', 'group');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\access');
+$template->set_var($oTrans->getLangArray());
 
 // Insert values into the template object
 $template->set_var(array(
 		'ADMIN_URL' => ADMIN_URL,
 		'THEME_URL' => THEME_URL,
-		'WB_URL' => WB_URL
+		'WB_URL'    => WB_URL
 	)
 );
 
@@ -48,11 +50,11 @@
 
 // Insert section names and descriptions
 $template->set_var(array(
-		'USERS' => $MENU['USERS'],
-		'GROUPS' => $MENU['GROUPS'],
-		'ACCESS' => $MENU['ACCESS'],
-		'USERS_OVERVIEW' => $OVERVIEW['USERS'],
-		'GROUPS_OVERVIEW' => $OVERVIEW['GROUPS'],
+		'USERS'           => $oTrans->MENU_USERS,
+		'GROUPS'          => $oTrans->MENU_GROUPS,
+		'ACCESS'          => $oTrans->MENU_ACCESS,
+		'USERS_OVERVIEW'  => $oTrans->OVERVIEW_USERS,
+		'GROUPS_OVERVIEW' => $oTrans->OVERVIEW_GROUPS,
 	)
 );
 
Index: branches/2.8.x/wb/admin/preferences/save.php
===================================================================
--- branches/2.8.x/wb/admin/preferences/save.php	(revision 2097)
+++ branches/2.8.x/wb/admin/preferences/save.php	(revision 2098)
@@ -15,9 +15,13 @@
  *
  */
 
-function save_preferences( &$admin, &$database)
+function save_preferences( admin $admin)
 {
-	global $MESSAGE,$TEXT;
+
+    $oDb = WbDatabase::getInstance();
+    $oTrans = Translate::getInstance();
+    $oTrans->enableAddon('admin\\preferences');
+//    $template->set_var($oTrans->getLangArray());
 	$err_msg = array();
 	$iMinPassLength = 6;
 	$bPassRequest = false;
@@ -24,7 +28,7 @@
 	$bMailHasChanged = false;
 // first check form-tan
 	if(!$admin->checkFTAN()){
-	   $err_msg[] = $MESSAGE['GENERIC_SECURITY_ACCESS'];
+	   $err_msg[] = $oTrans->MESSAGE_GENERIC_SECURITY_ACCESS;
     } else {
 // Get entered values and validate all
 	// remove any dangerouse chars from display_name
@@ -33,7 +37,7 @@
 // check that display_name is unique in whoole system (prevents from User-faking)
     	$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` ';
     	$sql .= 'WHERE `user_id` <> '.(int)$admin->get_user_id().' AND `display_name` LIKE "'.$display_name.'"';
-    	if( $database->get_one($sql) > 0 ){ $err_msg[] = $MESSAGE['USERS_USERNAME_TAKEN'].' ('.$TEXT['DISPLAY_NAME'].')'; }
+    	if( $oDb->get_one($sql) > 0 ){ $err_msg[] = $oTrans->MESSAGE_USERS_USERNAME_TAKEN.' ('.$oTrans->TEXT_DISPLAY_NAME.')'; }
 // language must be 2 upercase letters only
     	$language         = strtoupper($admin->get_post('language'));
     	$language         = (preg_match('/^[A-Z]{2}$/', $language) ? $language : DEFAULT_LANGUAGE);
@@ -66,20 +70,20 @@
     	if( !$admin->validate_email($email) )
     	{
     		$email = '';
-    		$err_msg[] = $MESSAGE['USERS_INVALID_EMAIL'];
+    		$err_msg[] = $oTrans->MESSAGE_USERS_INVALID_EMAIL;
     	} else {
     		if($email != '') {
     		// check that email is unique in whoole system
-    			$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
-    			$sql .= 'WHERE `user_id` = '.(int)$admin->get_user_id().' AND `email` LIKE "'.$email.'"';
-                $IsOldMail = $database->get_one($sql);
+    			$sql = 'SELECT `email` FROM `'.$oDb->TablePrefix.'users` '
+    			     . 'WHERE `user_id` = '.(int)$admin->get_user_id().' AND `email` LIKE \''.$email.'\'';
+                $IsOldMail = $oDb->getOne($sql);
     		// check that email is unique in whoole system
     			$email = $admin->add_slashes($email);
-    			$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
-    			$sql .= 'WHERE `user_id` <> '.(int)$admin->get_user_id().' AND `email` LIKE "'.$email.'"';
-                $checkMail = $database->get_one($sql);
+    			$sql = 'SELECT `email` FROM `'.$oDb->TablePrefix.'users` '
+    			     . 'WHERE `user_id` <> '.(int)$admin->get_user_id().' AND `email` LIKE \''.$email.'\'';
+                $checkMail = $oDb->getOne($sql);
 
-    			if( $checkMail == $email ){ $err_msg[] = $MESSAGE['USERS_EMAIL_TAKEN']; }
+    			if( $checkMail == $email ){ $err_msg[] = $oTrans->MESSAGE_USERS_EMAIL_TAKEN; }
                 $bMailHasChanged = ($email != $IsOldMail);
     		}
     	}
@@ -96,25 +100,25 @@
 	        $bPassRequest = ( ( $sCurrentPassword != '') || ($sNewPassword != '') || ($sNewPasswordRetyped != '') ) ? true : false;
 	    }
 	    // Check existing password
-		$sql  = 'SELECT `password` ';
-		$sql .= 'FROM `'.TABLE_PREFIX.'users` ';
-		$sql .= 'WHERE `user_id` = '.$admin->get_user_id();
-		if ( $bPassRequest && md5($sCurrentPassword) != $database->get_one($sql) ) {
+		$sql = 'SELECT `password` '
+		     . 'FROM `'.$oDb->TablePrefix.'users` '
+		     . 'WHERE `user_id` = '.$admin->get_user_id();
+		if ( $bPassRequest && md5($sCurrentPassword) != $oDb->getOne($sql) ) {
 	// access denied
-			$err_msg[] = $MESSAGE['PREFERENCES_CURRENT_PASSWORD_INCORRECT'];
+			$err_msg[] = $oTrans->MESSAGE_PREFERENCES_CURRENT_PASSWORD_INCORRECT;
 	} else {
 	// validate new password
 			$sPwHashNew = false;
 			if( ($sNewPassword != '') || ($sNewPasswordRetyped != '') ) {
 				if(strlen($sNewPassword) < $iMinPassLength) {
-					$err_msg[] = $MESSAGE['USERS_PASSWORD_TOO_SHORT'];
+					$err_msg[] = $oTrans->MESSAGE_USERS_PASSWORD_TOO_SHORT;
 				} else {
 					if($sNewPassword != $sNewPasswordRetyped) {
-						$err_msg[] =  $MESSAGE['USERS_PASSWORD_MISMATCH'];
+						$err_msg[] =  $oTrans->MESSAGE_USERS_PASSWORD_MISMATCH;
 					} else {
 						$pattern = '/[^'.$admin->password_chars.']/';
 						if (preg_match($pattern, $sNewPassword)) {
-							$err_msg[] = $MESSAGE['PREFERENCES_INVALID_CHARS'];
+							$err_msg[] = $oTrans->MESSAGE_PREFERENCES_INVALID_CHARS;
 						} else {
 							$sPwHashNew = md5($sNewPassword);
 						}
@@ -125,8 +129,12 @@
 	// if no validation errors, try to update the database, otherwise return errormessages
 			if(sizeof($err_msg) == 0)
 			{
-				$sql  = 'UPDATE `'.TABLE_PREFIX.'users` ';
-				$sql .= 'SET `display_name`=\''.$display_name.'\', ';
+				$sql = 'UPDATE `'.$oDb->TablePrefix.'users` '
+				     . 'SET `display_name`=\''.$display_name.'\', '
+				     .     '`language`=\''.$language.'\', '
+				     .     '`timezone`=\''.$timezone.'\', '
+				     .     '`date_format`=\''.$date_format.'\', '
+				     .     '`time_format`=\''.$time_format.'\' ';
 				if($sPwHashNew) {
 					$sql .=     '`password`=\''.$sPwHashNew.'\', ';
 				}
@@ -133,12 +141,8 @@
 				if($email != '') {
 					$sql .=     '`email`=\''.$email.'\', ';
 				}
-				$sql .=     '`language`=\''.$language.'\', ';
-				$sql .=     '`timezone`=\''.$timezone.'\', ';
-				$sql .=     '`date_format`=\''.$date_format.'\', ';
-				$sql .=     '`time_format`=\''.$time_format.'\' ';
 				$sql .= 'WHERE `user_id`='.(int)$admin->get_user_id();
-				if( $database->query($sql) )
+				if( $oDb->doQuery($sql) )
 				{
 					// update successfull, takeover values into the session
 					$_SESSION['DISPLAY_NAME'] = $display_name;
@@ -179,17 +183,14 @@
 	require_once($config_file);
 }
 
-if(!class_exists('admin', false)){ include(WB_PATH.'/framework/class.admin.php'); }
-
 // suppress to print the header, so no new FTAN will be set
 $admin = new admin('Preferences','start', false);
 
-$retval = save_preferences($admin, $database);
-if( $retval == '')
-{
+$retval = save_preferences($admin);
+if ($retval == '') {
 	// print the header
 	$admin->print_header();
-	$admin->print_success($MESSAGE['PREFERENCES_DETAILS_SAVED']);
+	$admin->print_success(Translate::getInstance()->MESSAGE_PREFERENCES_DETAILS_SAVED);
 	$admin->print_footer();
 } else {
 	// print the header
Index: branches/2.8.x/wb/admin/preferences/index.php
===================================================================
--- branches/2.8.x/wb/admin/preferences/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/preferences/index.php	(revision 2098)
@@ -20,11 +20,12 @@
 //Workaround if this is first page (WBAdmin in use)
 
 // put all inside a function to prevent global vars
-function build_page( &$admin, &$database )
+function build_page( admin $admin )
 {
-//	global $HEADING, $TEXT;
-    $mLang = Translate::getInstance();
-	$oReg  = WbAdaptor::getInstance();
+	$oReg   = WbAdaptor::getInstance();
+    $oDb    = WbDatabase::getInstance();
+    $oTrans = Translate::getInstance();
+	$oTrans->enableAddon('admin\\preferences');
 	include_once(WB_PATH.'/framework/functions-utf8.php');
 	// Setup template object, parse vars to it, then parse it
 	// Setup template object, parse vars to it, then parse it
@@ -32,17 +33,13 @@
 	$template = new Template(dirname($admin->correct_theme_source('preferences.htt')));
 	$template->set_file( 'page', 'preferences.htt' );
 	$template->set_block( 'page', 'main_block', 'main' );
-	$mLang = Translate::getInstance();
-//	$mLang->enableAddon('admin\preferences');
-	$template->set_var($mLang->getLangArray());
+	$template->set_var($oTrans->getLangArray());
 
 // read user-info from table users and assign it to template
-	$sql  = 'SELECT `display_name`, `username`, `email` FROM `'.TABLE_PREFIX.'users` ';
+	$sql  = 'SELECT `display_name`, `username`, `email` FROM `'.$oDb->TablePrefix.'users` ';
 	$sql .= 'WHERE `user_id` = '.(int)$admin->get_user_id();
-	if( $res_user = $database->query($sql) )
-	{
-		if( $rec_user = $res_user->fetchRow() )
-		{
+	if (($res_user = $oDb->doQuery($sql))) {
+		if (($rec_user = $res_user->fetchRow(MYSQL_ASSOC))) {
 			$template->set_var('DISPLAY_NAME', $rec_user['display_name']);
 			$template->set_var('USERNAME',     $rec_user['username']);
 			$template->set_var('EMAIL',        $rec_user['email']);
@@ -159,7 +156,6 @@
 // Parse template for preferences form
 	$template->parse('main', 'main_block', false);
 	$output = $template->finish($template->parse('output', 'page'));
-	$mLang->disableAddon();
 
 	return $output;
 }
@@ -167,8 +163,7 @@
 if( !(isset($admin) && is_object($admin) && (get_class($admin) == 'admin')) )
 {
     require( '../../config.php' );
-	require_once( WB_PATH.'/framework/class.admin.php' );
 	$admin = new admin('Preferences');
 }
-echo build_page($admin, $database);
+echo build_page($admin);
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/languages/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/languages/uninstall.php	(revision 2097)
+++ branches/2.8.x/wb/admin/languages/uninstall.php	(revision 2098)
@@ -33,6 +33,8 @@
 }
 // After check print the header
 $admin->print_header();
+$oLang = Translate::getInstance();
+$oLang->enableAddon('admin\\languages');
 
 // Get language name
 if(!isset($_POST['code']) OR $_POST['code'] == "") {
@@ -44,17 +46,17 @@
 }
 // fix secunia 2010-93-2
 if (!preg_match('/^([A-Z]{2}.php)/', $file)) {
-	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_FORGOT_OPTIONS);
 }
 
 // Check if the template exists
 if(!is_file(WB_PATH.'/languages/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_NOT_INSTALLED);
 }
 
 // Check if the template exists
 if(!is_readable(WB_PATH.'/languages/'.$file)) {
-	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+	$admin->print_error($oLang->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
 }
 
 // Include the WB functions file
@@ -62,18 +64,18 @@
 
 // Check if the language is in use
 if($code == DEFAULT_LANGUAGE OR $code == LANGUAGE) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE);
 } else {
 	$sql  = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'users` ';
 	$sql .= 'WHERE`language`=\''.$database->escapeString($code).'\'';
 	if( $database->get_one($sql) ) {
-		$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']);
+		$admin->print_error($oLang->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE);
 	}
 }
 
 // Try to delete the language code
 if(!unlink(WB_PATH.'/languages/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_CANNOT_UNINSTALL);
 } else {
 	// Remove entry from DB
 	$sql  = 'DELETE FROM `'.TABLE_PREFIX.'addons` ';
@@ -81,9 +83,9 @@
 	$sql .=   'AND `type`=`type`=\'language\' ';
 	if( $database->query($sql) ) {
         // Print success message
-        $admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
+        $admin->print_success($oLang->MESSAGE_GENERIC_UNINSTALLED);
     } else {
-    	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL'].'<br />'.$database->get_error());
+    	$admin->print_error($oLang->MESSAGE_GENERIC_CANNOT_UNINSTALL.'<br />'.$database->get_error());
     }
 }
 
Index: branches/2.8.x/wb/admin/languages/details.php
===================================================================
--- branches/2.8.x/wb/admin/languages/details.php	(revision 2097)
+++ branches/2.8.x/wb/admin/languages/details.php	(revision 2098)
@@ -20,7 +20,8 @@
 function getInfoFromLanguageFile($sFile)
 {
 	$mRetval = array();
-	$mLang = Translate::getInstance();
+	$oLang = Translate::getInstance();
+    $oLang->enableAddon('admin\\languages');
     $oReg  = WbAdaptor::getInstance();
 	// check for valid language code
 	if(preg_match('/^([A-Z]{2}.php)/', $sFile)) {
@@ -33,13 +34,13 @@
 				$mRetval['VERSION'] = $language_version;
 				$mRetval['DESIGNED_FOR'] = $language_platform;
 			}else {
-				$mRetval = $mLang->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES;
+				$mRetval = $oLang->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES;
 			}
 		}else {
-			$mRetval = $mLang->MESSAGE_GENERIC_NOT_INSTALLED;
+			$mRetval = $oLang->MESSAGE_GENERIC_NOT_INSTALLED;
 		}
 	}else {
-		$mRetval= $mLang->MESSAGE_GENERIC_FORGOT_OPTIONS;
+		$mRetval= $oLang->MESSAGE_GENERIC_FORGOT_OPTIONS;
 	}
 	return $mRetval;
 }
@@ -47,17 +48,17 @@
 // Include the config code
 require('../../config.php');
 // Print admin header
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
+$oLang = Translate::getInstance();
+$oLang->enableAddon('admin\\languages');
 require_once(WB_PATH.'/framework/class.admin.php');
-$admin = new admin('Addons', 'languages_view', false);
 if(!$admin->checkFTAN()) {
 	$admin->print_header();
-	$admin->print_error($mLang->MESSAGE_GENERIC_SECURITY_ACCESS);
+	$admin->print_error($oLang->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
 // Get language code
+$oLang->enableAddon('admin\\languages');
 $sFile = (string)$admin->get_post('code').'.php';
 // Setup template object, parse vars to it, then parse it
 // Create new template object
@@ -65,6 +66,7 @@
 // $template->debug = true;
 $template->set_file('page', 'languages_details.htt');
 $template->set_block('page', 'main_block', 'main');
+$template->set_var($oLang->getLangArray());
 //getinfo
 $aValues = getInfoFromLanguageFile($sFile);
 if(!is_array($aValues)) {
@@ -77,7 +79,7 @@
 // Insert values
 $template->set_var($aValues);
 /*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
+$template->set_var($oLang->getLangArray());
 
 // Parse language object
 $template->parse('main', 'main_block', false);
Index: branches/2.8.x/wb/admin/languages/install.php
===================================================================
--- branches/2.8.x/wb/admin/languages/install.php	(revision 2097)
+++ branches/2.8.x/wb/admin/languages/install.php	(revision 2098)
@@ -36,6 +36,8 @@
 	header("Location: index.php");
 	exit(0);
 }
+$oLang = Translate::getInstance();
+$oLang->enableAddon('admin\\languages');
 
 // Include the WB functions file
 require_once(WB_PATH.'/framework/functions.php');
@@ -59,18 +61,18 @@
 // Check if language dir is writable
 if(!is_writable(WB_PATH.'/languages/')) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC_BAD_PERMISSIONS']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_BAD_PERMISSIONS);
 }
 
 // Try to upload the file to the temp dir
 if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UPLOAD']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_CANNOT_UPLOAD);
 }
 
 // Check if uploaded file is a valid language file (no binary file etc.)
 $content = file_get_contents($temp_file);
-if (strpos($content, '<?php') === false) $admin->print_error($MESSAGE['GENERIC_INVALID_LANGUAGE_FILE']);
+if (strpos($content, '<?php') === false) $admin->print_error($oLang->MESSAGE_GENERIC_INVALID_LANGUAGE_FILE);
 
 // Remove any vars with name "language_code"
 unset($language_code);
@@ -87,7 +89,7 @@
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
 	// Restore to correct language
 	require(WB_PATH.'/languages/'.LANGUAGE.'.php');
-	$admin->print_error($MESSAGE['GENERIC_INVALID_LANGUAGE_FILE']);
+	$admin->print_error($oLang->MESSAGE_GENERIC_INVALID_LANGUAGE_FILE);
 }
 
 // Set destination for language file
@@ -100,7 +102,7 @@
 	if (versionCompare($language_version, $new_language_version, '>=')) {
 		// Restore to correct language
 		require(WB_PATH . '/languages/' . LANGUAGE . '.php');
-		$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
+		$admin->print_error($oLang->MESSAGE_GENERIC_ALREADY_INSTALLED);
 	}
 	$action="upgrade";
 	unlink($language_file);
@@ -119,9 +121,9 @@
 
 // Print success message
 if ($action=="install") {
-	$admin->print_success($MESSAGE['GENERIC_INSTALLED']);
+	$admin->print_success($oLang->MESSAGE_GENERIC_INSTALLED);
 } else {
-	$admin->print_success($MESSAGE['GENERIC_UPGRADED']);
+	$admin->print_success($oLang->MESSAGE_GENERIC_UPGRADED);
 }
 
 // Print admin footer
Index: branches/2.8.x/wb/admin/languages/index.php
===================================================================
--- branches/2.8.x/wb/admin/languages/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/languages/index.php	(revision 2098)
@@ -27,9 +27,13 @@
 // $template->debug = true;
 $template->set_file('page', 'languages.htt');
 $template->set_block('page', 'main_block', 'main');
+$oLang = Translate::getInstance();
+$oLang->enableAddon('admin\\languages');
 
 // Insert values into language list
 $template->set_block('main_block', 'language_list_block', 'language_list');
+/*-- insert all needed vars from language files ----------------------------------------*/
+$template->set_var($oLang->getLangArray());
 $result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by directory");
 if($result->numRows() > 0) {
 	while($addon = $result->fetchRow()) {
@@ -50,13 +54,6 @@
 	$template->set_var('DISPLAY_LIST', 'hide');
 }
 
-//$mLang = ModLanguage::getInstance();
-//$mLang->setLanguage(ADMIN_PATH.'/addons/languages/', LANGUAGE, DEFAULT_LANGUAGE);
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
-
-/*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
 // insert urls
 $template->set_var(array(
 				'ADMIN_URL' => ADMIN_URL,
@@ -67,11 +64,11 @@
 		);
 // Insert language text and messages
 $template->set_var(array(
-	'URL_ADVANCED' => '<b>'.$mLang->TEXT_ADVANCED.'</b>' ,
+	'URL_ADVANCED' => '<b>'.$oLang->TEXT_ADVANCED.'</b>' ,
 	'URL_MODULES' => $admin->get_permission('modules') ?
-		'<a href="' . ADMIN_URL . '/modules/index.php">' . $mLang->MENU_MODULES . '</a>' : '<b>'.$mLang->MENU_MODULES.'</b>',
+		'<a href="' . ADMIN_URL . '/modules/index.php">' . $oLang->MENU_MODULES . '</a>' : '<b>'.$oLang->MENU_MODULES.'</b>',
 	'URL_TEMPLATES' => $admin->get_permission('templates') ?
-		'<a href="' . ADMIN_URL . '/templates/index.php">' . $mLang->MENU_TEMPLATES . '</a>' : '<b>'.$mLang->MENU_TEMPLATES.'</b>',
+		'<a href="' . ADMIN_URL . '/templates/index.php">' . $oLang->MENU_TEMPLATES . '</a>' : '<b>'.$oLang->MENU_TEMPLATES.'</b>',
 	'HEADING_CHANGE_TEMPLATE_NOTICE' => ''
 	)
 );
@@ -79,6 +76,6 @@
 // Parse template object
 $template->parse('main', 'main_block', false);
 $template->pparse('output', 'page');
-$mLang->disableAddon();
+$oLang->disableAddon();
 // Print admin footer
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/login/forgot/index.php
===================================================================
--- branches/2.8.x/wb/admin/login/forgot/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/login/forgot/index.php	(revision 2098)
@@ -21,99 +21,69 @@
 {
 	require_once($config_file);
 }
-// Include the language file
-require(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php');
-
-// Include the database class file and initiate an object
-//if(!class_exists('frontend', false)){ require_once(WB_PATH.'/framework/class.frontend.php'); }
-//$admin = new frontend();
-if(!class_exists('admin', false)){ require_once(WB_PATH.'/framework/class.admin.php'); }
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
 $admin = new admin('Start', 'start', false, false);
-
-// Get the website title
-$results = $database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name = 'title'");
-$results = $results->fetchRow(MYSQL_ASSOC);
-$website_title = $results['value'];
-
 // Check if the user has already submitted the form, otherwise show it
-
 if(isset($_POST['email']) && is_string($_POST['email']) && $_POST['email'] != "") {
-
 	$email = htmlspecialchars($_POST['email'],ENT_QUOTES);
-
 	// Check if the email exists in the database
-	$query = "SELECT user_id,username,display_name,email,last_reset,password FROM ".TABLE_PREFIX."users WHERE email = '".$admin->add_slashes($_POST['email'])."'";
-	$results = $database->query($query);
-	if($results->numRows() > 0) {
-
+	$sql = 'SELECT `user_id`, `username`, `display_name`, `email`, `last_reset`, `password` '
+         . 'FROM `'.$oDb->TablePrefix.'users` '
+         . 'WHERE `email`=\''.$admin->add_slashes($_POST['email']).'\'';
+	$results = $oDb->doQuery($sql);
+    if (($results_array = $results->fetchRow(MYSQL_ASSOC))) {
 		// Get the id, username, email, and last_reset from the above db query
-		$results_array = $results->fetchRow(MYSQL_ASSOC);
-
 		// Check if the password has been reset in the last 2 hours
 		$last_reset = $results_array['last_reset'];
-		$time_diff = time()-$last_reset; // Time since last reset in seconds
-		$time_diff = $time_diff/60/60; // Time since last reset in hours
+		$time_diff = (time()-$last_reset) / (60 * 60); // Time since last reset in hours
 		if($time_diff < 2) {
-
 			// Tell the user that their password cannot be reset more than once per hour
-			$message = $MESSAGE['FORGOT_PASS_ALREADY_RESET'];
-
+			$message = $oTrans->MESSAGE_FORGOT_PASS_ALREADY_RESET;
 		} else {
-
 			$old_pass = $results_array['password'];
-
 			// Generate a random password then update the database with it
-			$new_pass = '';
-			$salt = "abchefghjkmnpqrstuvwxyz0123456789";
-			srand((double)microtime()*1000000);
-			$i = 0;
-			while ($i <= 7) {
-				$num = rand() % 33;
-				$tmp = substr($salt, $num, 1);
-				$new_pass = $new_pass . $tmp;
-				$i++;
-			}
-
-			$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".md5($new_pass)."', last_reset = '".time()."' WHERE user_id = '".$results_array['user_id']."'");
-
-			if($database->is_error()) {
-				// Error updating database
-				$message = $database->get_error();
-			} else {
+            $oPassword = new Password();
+            $new_pass = $oPassword->createNew(8, Password::PW_USE_ALL);
+			$sql = 'UPDATE `'.$oDb->TablePrefix.'users` '
+                 . 'SET `password`=\''.md5($new_pass).'\', '
+                 .     '`last_reset`='.time().' '
+                 . 'WHERE `user_id`='.(int)$results_array['user_id'];
+			if ($oDb->doQuery($sql)) {
 				// Setup email to send
 				$mail_to = $email;
-				$mail_subject = $MESSAGE['SIGNUP2_SUBJECT_LOGIN_INFO'];
-
+				$mail_subject = $oTrans->MESSAGE_SIGNUP2_SUBJECT_LOGIN_INFO;
 				// Replace placeholders from language variable with values
 				$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
 				$replace = array($results_array['display_name'], WEBSITE_TITLE, $results_array['username'], $new_pass);
-				$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2_BODY_LOGIN_FORGOT']);
-
+				$mail_message = str_replace($search, $replace, $oTrans->MESSAGE_SIGNUP2_BODY_LOGIN_FORGOT);
 				// Try sending the email
 				if($admin->mail(SERVER_EMAIL,$mail_to,$mail_subject,$mail_message)) {
-					$message = $MESSAGE['FORGOT_PASS_PASSWORD_RESET'];
+					$message = $oTrans->MESSAGE_FORGOT_PASS_PASSWORD_RESET;
 					$display_form = false;
 				} else {
-					$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".$old_pass."' WHERE user_id = '".$results_array['user_id']."'");
-					$message = $MESSAGE['FORGOT_PASS_CANNOT_EMAIL'];
+					$sql = 'UPDATE `'.$oDb->TablePrefix.'users` '
+                         . 'SET `password`=\''.$old_pass.'\' '
+                         . 'WHERE `user_id`='.(int)$results_array['user_id'];
+					$oDb->doQuery($sql);
+					$message = $oTrans->MESSAGE_FORGOT_PASS_CANNOT_EMAIL;
 				}
-			}
-
+			} else {
+				// Error updating database
+				$message = $oDb->getError();
+            }
 		}
-
 	} else {
 		// Email doesn't exist, so tell the user
-		$message = $MESSAGE['FORGOT_PASS_EMAIL_NOT_FOUND'];
+		$message = $oTrans->MESSAGE_FORGOT_PASS_EMAIL_NOT_FOUND;
 		// and delete the wrong Email
 		$email = '';
 	}
-
 } else {
 	$email = '';
 }
-
 if(!isset($message)) {
-	$message = $MESSAGE['FORGOT_PASS_NO_DATA'];
+	$message = $oTrans->MESSAGE_FORGOT_PASS_NO_DATA;
 	$message_color = '000000';
 } else {
 	$message_color = 'FF0000';
@@ -130,42 +100,32 @@
 	$template->set_var('ACTION_URL', 'index.php');
 }
 $template->set_var('EMAIL', $email);
-
+$template->set_var($oTrans->getLangArray());
 if(isset($display_form)) {
 	$template->set_var('DISPLAY_FORM', 'display:none;');
 }
-
 $template->set_var(array(
-				'SECTION_FORGOT' => $MENU['FORGOT'],
-				'MESSAGE_COLOR' => $message_color,
-				'MESSAGE' => $message,
-				'WEBSITE_TITLE' => WEBSITE_TITLE,
-				'TEXT_ADMINISTRATION' => $TEXT['ADMINISTRATION'],
-				'ADMIN_URL' => ADMIN_URL,
-				'WB_URL' => WB_URL,
-				'URL_VIEW' => WB_URL,
-				'THEME_URL' => THEME_URL,
-				'VERSION' => VERSION,
-				'SP' => (defined('SP') ? SP : ''),
-				'REVISION' => REVISION,
-				'LANGUAGE' => strtolower(LANGUAGE),
-				'TEXT_EMAIL' => $TEXT['EMAIL'],
-				'TEXT_SEND_DETAILS' => $TEXT['SEND_DETAILS'],
-				'TEXT_LOGIN' => $TEXT['LOGIN'],
-				'TITLE_LOGOUT' => $MENU['LOGIN'],
-				'TEXT_RESET' => $TEXT['RESET'],
-				'TEXT_HOME' => $TEXT['HOME'],
-				'TITLE_VIEW' => $TEXT['WEBSITE'],
-				'LOGIN_ICON' => 'login',
-				'LOGIN_LINK' => $_SERVER['SCRIPT_NAME'],
-				'START_ICON' => 'blank',
-				'LOGIN_DISPLAY_HIDDEN' => !$admin->is_authenticated() ? 'hidden' : '',
-				'LOGIN_DISPLAY_NONE' => !$admin->is_authenticated() ? 'none' : '',
-				'URL_HELP' => 'http://www.websitebaker.org/',
-				'URL' => ADMIN_URL."/start/index.php",
-				'TEXT_NEED_TO_LOGIN' => $TEXT['NEED_TO_LOGIN']
-				)
-		);
+        'SECTION_FORGOT'       => $oTrans->MENU_FORGOT,
+        'MESSAGE_COLOR'        => $message_color,
+        'MESSAGE'              => $message,
+        'WEBSITE_TITLE'        => WEBSITE_TITLE,
+        'ADMIN_URL'            => ADMIN_URL,
+        'WB_URL'               => WB_URL,
+        'URL_VIEW'             => WB_URL,
+        'THEME_URL'            => THEME_URL,
+        'VERSION'              => VERSION,
+        'SP'                   => (defined('SP') ? SP : ''),
+        'REVISION'             => REVISION,
+        'LANGUAGE'             => strtolower(LANGUAGE),
+        'LOGIN_ICON'           => 'login',
+        'LOGIN_LINK'           => $_SERVER['SCRIPT_NAME'],
+        'START_ICON'           => 'blank',
+        'LOGIN_DISPLAY_HIDDEN' => !$admin->is_authenticated() ? 'hidden' : '',
+        'LOGIN_DISPLAY_NONE'   => !$admin->is_authenticated() ? 'none' : '',
+        'URL_HELP'             => 'http://www.websitebaker.org/',
+        'URL'                  => ADMIN_URL."/start/index.php"
+    )
+);
 
 if(defined('FRONTEND')) {
 	$template->set_var('LOGIN_URL', WB_URL.'/account/login.php');
Index: branches/2.8.x/wb/admin/login/index.php
===================================================================
--- branches/2.8.x/wb/admin/login/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/login/index.php	(revision 2098)
@@ -17,14 +17,12 @@
 
 // Include the configuration file
 $config_file = realpath('../../config.php');
-if(file_exists($config_file) && !defined('WB_URL'))
-{
+if(file_exists($config_file) && !defined('WB_URL')) {
 	require_once($config_file);
 }
+//if(!class_exists('login', false)){ require_once(WB_PATH.'/framework/class.login.php'); }
+//if(!class_exists('frontend', false)){ require_once(WB_PATH.'/framework/class.frontend.php'); }
 
-if(!class_exists('login', false)){ require_once(WB_PATH.'/framework/class.login.php'); }
-if(!class_exists('frontend', false)){ require_once(WB_PATH.'/framework/class.frontend.php'); }
-
 if(defined('SMART_LOGIN') AND SMART_LOGIN == 'enabled') {
 	// Generate username field name
 	$username_fieldname = 'username_';
@@ -43,33 +41,29 @@
 	$username_fieldname = 'username';
 	$password_fieldname = 'password';
 }
-
 $admin = new frontend();
-
 $WarnUrl = str_replace(WB_PATH,WB_URL,$admin->correct_theme_source('warning.html'));
-
 $LoginTpl = 'loginBox.htt';
 $ThemePath = dirname($admin->correct_theme_source('loginBox.htt'));
-
 $thisApp = new Login( array(
-					'MAX_ATTEMPS' => "3",
-					'WARNING_URL' => $WarnUrl,
-					'INFO_URL' => '##',
-					'INFO_TEXT' => 'News',
-					'USERNAME_FIELDNAME' => $username_fieldname,
-					'PASSWORD_FIELDNAME' => $password_fieldname,
-					'REMEMBER_ME_OPTION' => SMART_LOGIN,
-					'MIN_USERNAME_LEN' => "2",
-					'MIN_PASSWORD_LEN' => "2",
-					'MAX_USERNAME_LEN' => "30",
-					'MAX_PASSWORD_LEN' => "30",
-					'LOGIN_URL' => ADMIN_URL."/login/index.php",
-					'DEFAULT_URL' => ADMIN_URL."/start/index.php",
-					'TEMPLATE_DIR' => $ThemePath,
-					'TEMPLATE_FILE' => $LoginTpl,
-					'FRONTEND' => false,
-					'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php",
-					'USERS_TABLE' => TABLE_PREFIX."users",
-					'GROUPS_TABLE' => TABLE_PREFIX."groups",
-			)
-		);
+        'MAX_ATTEMPS'           => '3',
+        'WARNING_URL'           => $WarnUrl,
+        'INFO_URL'              => '##',
+        'INFO_TEXT'             => 'News',
+        'USERNAME_FIELDNAME'    => $username_fieldname,
+        'PASSWORD_FIELDNAME'    => $password_fieldname,
+        'REMEMBER_ME_OPTION'    => SMART_LOGIN,
+        'MIN_USERNAME_LEN'      => '2',
+        'MIN_PASSWORD_LEN'      => '6',
+        'MAX_USERNAME_LEN'      => '30',
+        'MAX_PASSWORD_LEN'      => '30',
+        'LOGIN_URL'             => ADMIN_URL."/login/index.php",
+        'DEFAULT_URL'           => ADMIN_URL."/start/index.php",
+        'TEMPLATE_DIR'          => $ThemePath,
+        'TEMPLATE_FILE'         => $LoginTpl,
+        'FRONTEND'              => false,
+        'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php",
+        'USERS_TABLE'           => TABLE_PREFIX."users",
+        'GROUPS_TABLE'          => TABLE_PREFIX."groups",
+    )
+);
Index: branches/2.8.x/wb/admin/modules/uninstall.php
===================================================================
--- branches/2.8.x/wb/admin/modules/uninstall.php	(revision 2097)
+++ branches/2.8.x/wb/admin/modules/uninstall.php	(revision 2098)
@@ -17,17 +17,20 @@
 
 // Setup admin object
 require('../../config.php');
-require_once(WB_PATH.'/framework/class.admin.php');
+//require_once(WB_PATH.'/framework/class.admin.php');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\modules');
+
 $admin = new admin('Addons', 'modules_uninstall', false);
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
-	$admin->print_error($MESSAGE['GENERIC_FORGOT_OPTIONS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS);
 } else {
 	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
 }
@@ -34,12 +37,12 @@
 
 // Check if the template exists
 if(!is_dir(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_NOT_INSTALLED']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_NOT_INSTALLED);
 }
 
 // Check if the template exists
 if(!is_readable(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES']);
+	$admin->print_error($oTrans->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
 }
 
 /*
@@ -80,13 +83,13 @@
 	/**
 	*	Modul is in use, so we have to warn the user
 	*/
-	if (!array_key_exists("CANNOT_UNINSTALL_IN_USE_TMPL", $MESSAGE['GENERIC'])) {
+    if (!isset($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL)) {
 		$add = $info->numRows() == 1 ? "this page" : "these pages";
 		$msg_template_str  = "<br /><br />{{type}} <b>{{type_name}}</b> could not be uninstalled because it is still in use on {{pages}}";
 		$msg_template_str .= ":<br /><i>click for editing.</i><br /><br />";
 	} else {
-		$msg_template_str = $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL'];
-		$temp = explode(";",$MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES']);
+		$msg_template_str = $oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL;
+		$temp = explode(";",$oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE_TMPL_PAGES);
 		$add = $info->numRows() == 1 ? $temp[0] : $temp[1];
 	}
 	/**
@@ -115,12 +118,12 @@
 	/**
 	*	Printing out the error-message and die().
 	*/
-	$admin->print_error(str_replace ($TEXT['FILE'], "Modul", $MESSAGE['GENERIC_CANNOT_UNINSTALL_IN_USE']).$msg.$page_names);
+	$admin->print_error(str_replace ($TEXT['FILE'], "Modul", $oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL_IN_USE).$msg.$page_names);
 }
 
 // Check if we have permissions on the directory
 if(!is_writable(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL);
 }
 
 // Run the modules uninstall script if there is one
@@ -130,7 +133,7 @@
 
 // Try to delete the module dir
 if(!rm_full_dir(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNINSTALL']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNINSTALL);
 } else {
 	// Remove entry from DB
 	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'module'");
@@ -137,7 +140,7 @@
 }
 
 // Print success message
-$admin->print_success($MESSAGE['GENERIC_UNINSTALLED']);
+$admin->print_success($oTrans->MESSAGE_GENERIC_UNINSTALLED);
 
 // Print admin footer
 $admin->print_footer();
Index: branches/2.8.x/wb/admin/modules/manual_install.php
===================================================================
--- branches/2.8.x/wb/admin/modules/manual_install.php	(revision 2097)
+++ branches/2.8.x/wb/admin/modules/manual_install.php	(revision 2098)
@@ -24,8 +24,10 @@
  */
 // include WB configuration file and WB admin class
 require_once('../../config.php');
-require_once('../../framework/class.admin.php');
 
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\modules');
+
 // check user permissions for admintools (redirect users with wrong permissions)
 $admin = new admin('Admintools', 'admintools', false, false);
 
@@ -36,7 +38,7 @@
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$js_back);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS, $js_back);
 }
 
 if ($admin->get_permission('admintools') == false) { die(header('Location: ../../index.php')); }
@@ -53,8 +55,8 @@
 // include WB functions file
 require_once(WB_PATH . '/framework/functions.php');
 
-// load WB language file
-require_once(WB_PATH . '/languages/' . LANGUAGE .'.php');
+//// load WB language file
+//require_once(WB_PATH . '/languages/' . LANGUAGE .'.php');
 
 // create Admin object with admin header
 $admin = new admin('Addons', '', true, false);
@@ -70,7 +72,7 @@
 if (!file_exists($mod_path . '/' . $_POST['action'] . '.php'))
 {
 	$admin->print_header();
-    $admin->print_error($TEXT['NOT_FOUND'].': <tt>"'.htmlentities(basename($mod_path)).'/'.$_POST['action'].'.php"</tt> ', $js_back);
+    $admin->print_error($oTrans->TEXT_NOT_FOUND.': <tt>"'.htmlentities(basename($mod_path)).'/'.$_POST['action'].'.php"</tt> ', $js_back);
 }
 
 // include modules install.php script
@@ -78,7 +80,7 @@
 
 // load module info into database and output status message
 load_module($mod_path, false);
-$msg = $TEXT['EXECUTE'] . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt>';
+$msg = $oTrans->TEXT_EXECUTE . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt>';
 
 switch ($_POST['action'])
 {
Index: branches/2.8.x/wb/admin/modules/details.php
===================================================================
--- branches/2.8.x/wb/admin/modules/details.php	(revision 2097)
+++ branches/2.8.x/wb/admin/modules/details.php	(revision 2098)
@@ -17,8 +17,8 @@
 
 // Include the config file
 require('../../config.php');
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\modules');
 require_once(WB_PATH .'/framework/functions.php');
 require_once(WB_PATH.'/framework/class.admin.php');
 // No print admin header
@@ -26,13 +26,13 @@
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($mLang->MESSAGE_GENERIC_SECURITY_ACCESS);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
 
 if(!isset($_POST['file']) OR $_POST['file'] == "") {
-	$admin->print_error($mLang->MESSAGE_GENERIC_FORGOT_OPTIONS);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_FORGOT_OPTIONS);
 } else {
 	$file = preg_replace('/[^a-z0-9_-]/i', "", $_POST['file']);  // fix secunia 2010-92-2
 }
@@ -39,12 +39,12 @@
 
 // Check if the template exists
 if(!is_dir(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($file.'::'.$mLang->MESSAGE_GENERIC_NOT_INSTALLED);
+	$admin->print_error($file.'::'.$oTrans->MESSAGE_GENERIC_NOT_INSTALLED);
 }
 
 // Check if the template exists
 if(!is_readable(WB_PATH.'/modules/'.$file)) {
-	$admin->print_error($mLang->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
+	$admin->print_error($oTrans->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES);
 }
 // Setup template object, parse vars to it, then parse it
 // Create new template object
@@ -52,7 +52,7 @@
 // $template->debug = true;
 $template->set_file('page', 'modules_details.htt');
 $template->set_block('page', 'main_block', 'main');
-
+$template->set_var($oTrans->getLangArray());
 // Insert values
 $module = false;
 $sql = 'SELECT * FROM  `'.TABLE_PREFIX.'addons` '
@@ -61,9 +61,9 @@
 if( ($result = $database->query($sql)) ){
 	$module = $result->fetchRow(MYSQL_ASSOC);
 }
-if(!$module) { $admin->print_error($mLang->MESSAGE_GENERIC_NOT_INSTALLED); }
+if(!$module) { $admin->print_error($oTrans->MESSAGE_GENERIC_NOT_INSTALLED); }
 /*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
+$template->set_var($oTrans->getLangArray());
 
 // check if a module description exists for the displayed backend language
 $tool_description = false;
@@ -98,28 +98,28 @@
 
 switch ($module['function']) {
 	case NULL:
-		$type_name = $mLang->TEXT_UNKNOWN;
+		$type_name = $oTrans->TEXT_UNKNOWN;
 		break;
 	case 'page':
-		$type_name = $mLang->TEXT_PAGE;
+		$type_name = $oTrans->TEXT_PAGE;
 		break;
 	case 'wysiwyg':
-		$type_name = $mLang->TEXT_WYSIWYG_EDITOR;
+		$type_name = $oTrans->TEXT_WYSIWYG_EDITOR;
 		break;
 	case 'tool':
-		$type_name = $mLang->TEXT_ADMINISTRATION_TOOL;
+		$type_name = $oTrans->TEXT_ADMINISTRATION_TOOL;
 		break;
 	case 'admin':
-		$type_name = $mLang->TEXT_ADMIN;
+		$type_name = $oTrans->TEXT_ADMIN;
 		break;
 	case 'administration':
-		$type_name = $mLang->TEXT_ADMINISTRATION;
+		$type_name = $oTrans->TEXT_ADMINISTRATION;
 		break;
 	case 'snippet':
-		$type_name = $mLang->TEXT_CODE_SNIPPET;
+		$type_name = $oTrans->TEXT_CODE_SNIPPET;
 		break;
 	default:
-		$type_name = $mLang->TEXT_UNKNOWN;
+		$type_name = $oTrans->TEXT_UNKNOWN;
 }
 $template->set_var('TYPE', $type_name);
 
Index: branches/2.8.x/wb/admin/modules/install.php
===================================================================
--- branches/2.8.x/wb/admin/modules/install.php	(revision 2097)
+++ branches/2.8.x/wb/admin/modules/install.php	(revision 2098)
@@ -26,12 +26,13 @@
 	require($config_file);
 }
 
-//require_once(WB_PATH.'/framework/class.admin.php');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\modules');
 $admin = new admin('Addons', 'modules_install', false);
 if( !$admin->checkFTAN() )
 {
 	$admin->print_header();
-	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_SECURITY_ACCESS);
 }
 // After check print the header
 $admin->print_header();
@@ -54,7 +55,7 @@
 	// Try to upload the file to the temp dir
 	if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file))
 	{
-		$admin->print_error($MESSAGE['GENERIC_BAD_PERMISSIONS']);
+		$admin->print_error($oTrans->MESSAGE_GENERIC_BAD_PERMISSIONS);
 	}
 } else {
     $iErrorMessage = ( isset($_FILES['userfile']['error']) && ( $_FILES['userfile']['error'] > 0 ) ? $_FILES['userfile']['error'] : UNKNOW_UPLOAD_ERROR );
@@ -85,8 +86,7 @@
         default:
             $key = 'UNKNOW_UPLOAD_ERROR';
     }
-
-	$admin->print_error($MESSAGE[$key].'<br />'.$MESSAGE['GENERIC_CANNOT_UPLOAD']);
+    $admin->print_error($oTrans->{'MESSAGE_'.$key}.'<br />'.$oTrans->MESSAGE_GENERIC_CANNOT_UPLOAD);
 }
 
 // Include the PclZip class file (thanks to
@@ -103,7 +103,7 @@
 // Check if uploaded file is a valid Add-On zip file
 if (!($list && file_exists($temp_unzip . 'index.php')))
 {
-  $admin->print_error($MESSAGE['GENERIC_INVALID_ADDON_FILE']);
+  $admin->print_error($oTrans->MESSAGE_GENERIC_INVALID_ADDON_FILE);
 }
 
 // Include the modules info file
@@ -119,7 +119,7 @@
 if(!isset($module_directory))
 {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC_INVALID']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_INVALID);
 }
 
 // Check if this module is already installed
@@ -136,7 +136,7 @@
         {
 
 			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-			$admin->print_error($MESSAGE['GENERIC_ALREADY_INSTALLED']);
+			$admin->print_error($oTrans->MESSAGE_GENERIC_ALREADY_INSTALLED);
 		}
 
 		$action="upgrade";
@@ -148,7 +148,7 @@
 if(!is_writable(WB_PATH.'/modules/'))
 {
 	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
-	$admin->print_error($MESSAGE['GENERIC_BAD_PERMISSIONS']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_BAD_PERMISSIONS);
 }
 
 // Set module directory
@@ -166,7 +166,7 @@
 
 if(!$list)
 {
-	$admin->print_error($MESSAGE['GENERIC_CANNOT_UNZIP']);
+	$admin->print_error($oTrans->MESSAGE_GENERIC_CANNOT_UNZIP);
 }
 /*
 
@@ -200,12 +200,12 @@
 {
 	// Load module info into DB
 	load_module(WB_PATH.'/modules/'.$module_directory, false);
-	$admin->print_success($MESSAGE['GENERIC_INSTALLED']);
+	$admin->print_success($oTrans->MESSAGE_GENERIC_INSTALLED);
 } elseif ($action=="upgrade")
 {
 
 	upgrade_module($module_directory, false);
-	$admin->print_success($MESSAGE['GENERIC_UPGRADED']);
+	$admin->print_success($oTrans->MESSAGE_GENERIC_UPGRADED);
 }
 
 // Print admin footer
Index: branches/2.8.x/wb/admin/modules/index.php
===================================================================
--- branches/2.8.x/wb/admin/modules/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/modules/index.php	(revision 2098)
@@ -27,8 +27,8 @@
 // Make news post access files dir
 if(!function_exists('get_variable_content')) {require($oReg->AppPath.'framework/functions.php');}
 $oReg->getWbConstants();
-$mLang = Translate::getInstance();
-$mLang->enableAddon('admin\addons');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\modules');
 
 // Setup template object, parse vars to it, then parse it
 // Create new template object
@@ -36,7 +36,7 @@
 // $template->debug = true;
 $template->set_file('page', 'modules.htt');
 $template->set_block('page', 'main_block', 'main');
-
+$template->set_var($oTrans->getLangArray());
 // Insert values into module list
 $template->set_block('main_block', 'module_list_block', 'module_list');
 $aAddonsList = array();
@@ -121,9 +121,6 @@
 	$template->set_var('DISPLAY_MANUAL_INSTALL', 'hide');
 }
 
-/*-- insert all needed vars from language files ----------------------------------------*/
-$template->set_var($mLang->getLangArray());
-
 // insert urls
 $template->set_var(array(
 /** @todo the following 3 rtrims can be removed, after using of WB_PATH/s.o is changed in templates **/
@@ -136,14 +133,14 @@
 // Insert language text and messages
 $template->set_var(array(
 	'URL_TEMPLATES' => $admin->get_permission('templates')
-	                   ? '<a href="'.$oReg->AcpUrl.'templates/index.php">'.$mLang->MENU_TEMPLATES.'</a>'
-	                   : '<b>'.$mLang->MENU_TEMPLATES.'</b>',
+	                   ? '<a href="'.$oReg->AcpUrl.'templates/index.php">'.$oTrans->MENU_TEMPLATES.'</a>'
+	                   : '<b>'.$oTrans->MENU_TEMPLATES.'</b>',
 	'URL_LANGUAGES' => $admin->get_permission('languages') 
-	                   ? '<a href="'.$oReg->AcpUrl.'languages/index.php">'.$mLang->MENU_LANGUAGES.'</a>'
-	                   : '<b>'.$mLang->MENU_LANGUAGES.'</b>',
+	                   ? '<a href="'.$oReg->AcpUrl.'languages/index.php">'.$oTrans->MENU_LANGUAGES.'</a>'
+	                   : '<b>'.$oTrans->MENU_LANGUAGES.'</b>',
 	'URL_ADVANCED'  => $admin->get_permission('modules_advanced') 
-	                   ? '<a href="' . $oReg->AcpUrl.'modules/index.php?advanced">'.$mLang->TEXT_ADVANCED.'</a>'
-	                   : '<b>'.$mLang->TEXT_ADVANCED.'</b>', 'HEADING_CHANGE_TEMPLATE_NOTICE' => ''
+	                   ? '<a href="' . $oReg->AcpUrl.'modules/index.php?advanced">'.$oTrans->TEXT_ADVANCED.'</a>'
+	                   : '<b>'.$oTrans->TEXT_ADVANCED.'</b>', 'HEADING_CHANGE_TEMPLATE_NOTICE' => ''
 	)
 );
 
Index: branches/2.8.x/wb/admin/addons/reload.php
===================================================================
--- branches/2.8.x/wb/admin/addons/reload.php	(revision 2097)
+++ branches/2.8.x/wb/admin/addons/reload.php	(revision 2098)
@@ -59,6 +59,9 @@
 	$aErrors = array();
 // check user permissions for admintools (redirect users with wrong permissions)
 	$admin = new admin('Admintools', 'admintools', false, false);
+    $oTrans = Translate::getInstance();
+    $oTrans->enableAddon('admin\\addons');
+
 	if ($admin->get_permission('admintools'))
 	{
 		require_once(WB_PATH . '/framework/functions.php');
@@ -79,7 +82,7 @@
 				if($ct->isError()) {
 					$aErrors[] = $ct->getError();
 				}else {
-					$aMsg[] = $TEXT['THEME_COPY_CURRENT'].' :: '.$MESSAGE['GENERIC_COMPARE'];
+					$aMsg[] = $oTrans->TEXT_THEME_COPY_CURRENT.' :: '.$oTrans->MESSAGE_GENERIC_COMPARE;
 				}
 				unset($ct);
 		// ---------------------------
@@ -89,7 +92,7 @@
 				require(dirname(__FILE__).'/CopyThemeHtt.php');
 				$x = CopyThemeHtt::doImport($aFileList);
 				if(is_null($x)) {
-					$aMsg[] = $TEXT['THEME_IMPORT_HTT'].' :: '.$MESSAGE['GENERIC_COMPARE'];
+					$aMsg[] = $oTrans->TEXT_THEME_IMPORT_HTT.' :: '.$oTrans->MESSAGE_GENERIC_COMPARE;
 				}else {
 					$aErrors = array_merge($aErrors, $x);
 				}
@@ -105,25 +108,25 @@
 						case 'language':
 						// reload all addons from given type
 							if(ReloadAddonLoop($sType)) {
-								$aMsg[] = $MESSAGE['ADDON_'.strtoupper($sType).'S_RELOADED'];
+                                $aMsg[] = $oTrans->{'MESSAGE_ADDON_'.strtoupper($sType).'S_RELOADED'};
 							}else {
-								$aErrors[] = $MESSAGE['ADDON_ERROR_RELOAD'];
+								$aErrors[] = $oTrans->MESSAGE_ADDON_ERROR_RELOAD;
 							}
 							break;
 						default:
-							$aErrors[] = $MESSAGE['GENERIC_NOT_COMPARE'].' ['.$sType.']';
+							$aErrors[] = $oTrans->MESSAGE_GENERIC_NOT_COMPARE.' ['.$sType.']';
 							break;
 					}
 				}
 			}else {
 		// ---------------------------
-				$aErrors[] = $MESSAGE['ADDON_ERROR_RELOAD'];
+				$aErrors[] = $oTrans->MESSAGE_ADDON_ERROR_RELOAD;
 			}
 		}else { // invalid FTAN
-			$aErrors[] = $MESSAGE['GENERIC_SECURITY_ACCESS'];
+			$aErrors[] = $oTrans->MESSAGE_GENERIC_SECURITY_ACCESS;
 		}
 	}else { // no permission
-		$aErrors[] = $MESSAGE['ADMIN_INSUFFICIENT_PRIVELLIGES'];
+		$aErrors[] = $oTrans->MESSAGE_ADMIN_INSUFFICIENT_PRIVELLIGES;
 	}
 	if(sizeof($aErrors) > 0)  {
 // output error message
Index: branches/2.8.x/wb/admin/addons/index.php
===================================================================
--- branches/2.8.x/wb/admin/addons/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/addons/index.php	(revision 2098)
@@ -24,12 +24,15 @@
 $template = new Template(dirname($admin->correct_theme_source('addons.htt')));
 $template->set_file('page', 'addons.htt');
 $template->set_block('page', 'main_block', 'main');
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\addons');
+$template->set_var($oTrans->getLangArray());
 
 // Insert values into the template object
 $template->set_var(array(
 		'ADMIN_URL' => ADMIN_URL,
 		'THEME_URL' => THEME_URL,
-		'WB_URL' => WB_URL
+		'WB_URL'    => WB_URL
 	)
 );
 
@@ -58,24 +61,24 @@
  *	Insert section names and descriptions
  */
 $template->set_var(array(
-	'ADDONS_OVERVIEW' => $MENU['ADDONS'],
-	'FTAN'=> $admin->getFTAN(),
-	'MODULES' => $MENU['MODULES'],
-	'TEMPLATES' => $MENU['TEMPLATES'],
-	'LANGUAGES' => $MENU['LANGUAGES'],
-	'MODULES_OVERVIEW' => $OVERVIEW['MODULES'],
-	'TEMPLATES_OVERVIEW' => $OVERVIEW['TEMPLATES'],
-	'LANGUAGES_OVERVIEW' => $OVERVIEW['LANGUAGES'],
-	'TXT_ADMIN_SETTINGS' => $TEXT['ADMIN'] . ' ' . $TEXT['SETTINGS'],
-	'MESSAGE_RELOAD_ADDONS' => $MESSAGE['ADDON_RELOAD'],
-	'TEXT_RELOAD' => $TEXT['RELOAD'],
+	'ADDONS_OVERVIEW'       => $oTrans->MENU_ADDONS,
+	'FTAN'                  => $admin->getFTAN(),
+	'MODULES'               => $oTrans->MENU_MODULES,
+	'TEMPLATES'             => $oTrans->MENU_TEMPLATES,
+	'LANGUAGES'             => $oTrans->MENU_LANGUAGES,
+	'MODULES_OVERVIEW'      => $oTrans->OVERVIEW_MODULES,
+	'TEMPLATES_OVERVIEW'    => $oTrans->OVERVIEW_TEMPLATES,
+	'LANGUAGES_OVERVIEW'    => $oTrans->OVERVIEW_LANGUAGES,
+	'TXT_ADMIN_SETTINGS'    => $oTrans->TEXT_ADMIN . ' ' . $oTrans->TEXT_SETTINGS,
+	'MESSAGE_RELOAD_ADDONS' => $oTrans->MESSAGE_ADDON_RELOAD,
+	'TEXT_RELOAD'           => $oTrans->TEXT_RELOAD,
 
-	'RELOAD_URL' => ADMIN_URL . '/addons/reload.php',
-	'URL_ADVANCED' => $admin->get_permission('modules_advanced')
-                ? '<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $TEXT['ADVANCED'] . '</a>' : '',
-	'ADVANCED_URL' => $admin->get_permission('modules_advanced') ? ADMIN_URL . '/addons/index.php' : '',
-    'TEXT_ADVANCED' => $TEXT['ADVANCED'],
-    'TEXT_EMPTY' => '&nbsp;',
+	'RELOAD_URL'            => ADMIN_URL . '/addons/reload.php',
+	'URL_ADVANCED'          => $admin->get_permission('modules_advanced')
+                               ? '<a href="' . ADMIN_URL . '/addons/index.php?advanced">' . $oTrans->TEXT_ADVANCED . '</a>' : '',
+	'ADVANCED_URL'          => $admin->get_permission('modules_advanced') ? ADMIN_URL . '/addons/index.php' : '',
+    'TEXT_ADVANCED'         => $oTrans->TEXT_ADVANCED,
+    'TEXT_EMPTY'            => '&nbsp;',
 	)
 );
 
@@ -88,19 +91,14 @@
 // start advanced block
 if ( isset($_GET['advanced']) AND $admin->get_permission('modules_advanced') == true) {
 	$template->set_var(array(
-		'TXT_THEME_COPY_CURRENT'  => $TEXT['THEME_COPY_CURRENT'],
-		'TXT_THEME_NEW_NAME'      => $TEXT['THEME_NEW_NAME'],
-		'TXT_THEME_CURRENT'       => $TEXT['THEME_CURRENT'],
-		'TXT_THEME_START_COPY'    => $TEXT['THEME_START_COPY'],
-		'TXT_THEME_IMPORT_HTT'    => $TEXT['THEME_IMPORT_HTT'],
-		'TXT_THEME_SELECT_HTT'    => $TEXT['THEME_SELECT_HTT'],
-		'TXT_THEME_NOMORE_HTT'    => $TEXT['THEME_NOMORE_HTT'],
-		'TXT_THEME_START_IMPORT'  => $TEXT['THEME_START_IMPORT'],
-		'MESSAGE_THEME_COPY_CURRENT'               => $MESSAGE['THEME_COPY_CURRENT'],
-		'MESSAGE_THEME_ALREADY_EXISTS'             => $MESSAGE['THEME_ALREADY_EXISTS'],
-		'MESSAGE_THEME_INVALID_SOURCE_DESTINATION' => $MESSAGE['THEME_INVALID_SOURCE_DESTINATION'],
-		'MESSAGE_THEME_DESTINATION_READONLY'       => $MESSAGE['THEME_DESTINATION_READONLY'],
-		'MESSAGE_THEME_IMPORT_HTT'                 => $MESSAGE['THEME_IMPORT_HTT'],
+		'TXT_THEME_COPY_CURRENT'  => $oTrans->TEXT_THEME_COPY_CURRENT,
+		'TXT_THEME_NEW_NAME'      => $oTrans->TEXT_THEME_NEW_NAME,
+		'TXT_THEME_CURRENT'       => $oTrans->TEXT_THEME_CURRENT,
+		'TXT_THEME_START_COPY'    => $oTrans->TEXT_THEME_START_COPY,
+		'TXT_THEME_IMPORT_HTT'    => $oTrans->TEXT_THEME_IMPORT_HTT,
+		'TXT_THEME_SELECT_HTT'    => $oTrans->TEXT_THEME_SELECT_HTT,
+		'TXT_THEME_NOMORE_HTT'    => $oTrans->TEXT_THEME_NOMORE_HTT,
+		'TXT_THEME_START_IMPORT'  => $oTrans->TEXT_THEME_START_IMPORT,
 		)
 	);
 // start copy current theme
@@ -122,7 +120,7 @@
 			$sOptionList .= '<option value="'.$val.'">'.$key.'</option>'."\n";
 		}
 	}else {
-		$sOptionList = '<option value="none">'.$TEXT['THEME_NOMORE_HTT'].'</option>'."\n";
+		$sOptionList = '<option value="none">'.$oTrans->TEXT_THEME_NOMORE_HTT.'</option>'."\n";
 	}
 	$template->set_var('THEME_TEMPLATE_LIST', $sOptionList);
 // end template import
Index: branches/2.8.x/wb/admin/logout/index.php
===================================================================
--- branches/2.8.x/wb/admin/logout/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/logout/index.php	(revision 2098)
@@ -20,8 +20,11 @@
 // delete remember key of current user from database
 if (isset($_SESSION['USER_ID']) && isset($database)) {
 	$table = TABLE_PREFIX . 'users';
-	$sql = "UPDATE `$table` SET `remember_key` = '' WHERE `user_id` = '" . (int) $_SESSION['USER_ID'] . "'";
-	$database->query($sql);
+    $oDb = WbDatabase::getInstance();
+	$sql = 'UPDATE `'.$oDb->TablePrefix.'users` '
+         . 'SET `remember_key`=\'\' '
+         . 'WHERE `user_id`='.(int)$_SESSION['USER_ID'];
+	$oDb->doQuery($sql);
 }
 
 // delete remember key cookie if set
Index: branches/2.8.x/wb/admin/admintools/tool.php
===================================================================
--- branches/2.8.x/wb/admin/admintools/tool.php	(revision 2097)
+++ branches/2.8.x/wb/admin/admintools/tool.php	(revision 2098)
@@ -25,6 +25,9 @@
     include(WB_PATH.'/framework/class.admin.php');
     $admin = new admin('Admintools','admintools',false);
 }
+$oDb = WbDatabase::getInstance();
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\admintools');
 
 require_once(WB_PATH.'/framework/functions.php');
 
@@ -35,10 +38,10 @@
 // test for valid tool name
 	if(preg_match('/^[a-z][a-z_\-0-9]{2,}$/i', $toolDir)) {
 	// Check if tool is installed
-		$sql = 'SELECT `name` FROM `'.TABLE_PREFIX.'addons` '.
+		$sql = 'SELECT `name` FROM `'.$oDb->TablePrefix.'addons` '.
 		       'WHERE `type`=\'module\' AND `function`=\'tool\' '.
 		              'AND `directory`=\''.$toolDir.'\'';
-		if(($toolName = $database->get_one($sql))) {
+		if(($toolName = $oDb->getOne($sql))) {
 		// create admin-object and print header if FTAN is NOT supported AND function 'save' is requested
 			$admin_header = !(is_file(WB_PATH.'/modules/'.$toolDir.'/FTAN_SUPPORTED') && $doSave);
 			$admin = new admin('admintools', 'admintools', $admin_header );
@@ -45,8 +48,8 @@
 			if(!$doSave) {
 			// show title if not function 'save' is requested
 				print '<h4><a href="'.ADMIN_URL.'/admintools/index.php" '.
-				      'title="'.$HEADING['ADMINISTRATION_TOOLS'].'">'.
-				      $HEADING['ADMINISTRATION_TOOLS'].'</a>'.
+				      'title="'.$oTrans->HEADING_ADMINISTRATION_TOOLS.'">'.
+				      $oTrans->HEADING_ADMINISTRATION_TOOLS.'</a>'.
 					  '&nbsp;&raquo;&nbsp;'.$toolName.'</h4>'."\n";
 			}
 			// include modules tool.php
Index: branches/2.8.x/wb/admin/admintools/index.php
===================================================================
--- branches/2.8.x/wb/admin/admintools/index.php	(revision 2097)
+++ branches/2.8.x/wb/admin/admintools/index.php	(revision 2098)
@@ -35,11 +35,12 @@
 // $template->debug = true;
 $template->set_file('page', 'admintools.htt');
 $template->set_block('page', 'main_block', 'main');
-
+$oTrans = Translate::getInstance();
+$oTrans->enableAddon('admin\\admintools');
+$template->set_var($oTrans->getLangArray());
 // Insert required template variables
 $template->set_var('ADMIN_URL', ADMIN_URL);
 $template->set_var('THEME_URL', THEME_URL);
-$template->set_var('HEADING_ADMINISTRATION_TOOLS', $HEADING['ADMINISTRATION_TOOLS']);
 
 // Insert tools into tool list
 $template->set_block('main_block', 'tool_list_block', 'tool_list');
@@ -78,7 +79,7 @@
 
 }
 
-$template->set_var('TOOL_LIST', ($bHasToolRights==false) ? $TEXT['NONE'].' '.$TEXT['MODULE_PERMISSIONS'] : '&nbsp;');
+$template->set_var('TOOL_LIST', ($bHasToolRights==false) ? $oTrans->TEXT_NONE.' '.$oTrans->TEXT_MODULE_PERMISSIONS : '&nbsp;');
 
 //template->set_var('TOOL_LIST', '<li>&nbsp;</li>');
 // Parse template objects output
Index: branches/2.8.x/wb/framework/class.admin.php
===================================================================
--- branches/2.8.x/wb/framework/class.admin.php	(revision 2097)
+++ branches/2.8.x/wb/framework/class.admin.php	(revision 2098)
@@ -55,9 +55,9 @@
 	public function __construct($section_name= '##skip##', $section_permission = 'start', $auto_header = true, $auto_auth = true)
 	{
 		parent::__construct(SecureForm::BACKEND);
+        $this->_oTrans->enableAddon('templates\\'.$this->_oReg->DefaultTheme);
     	if( $section_name != '##skip##' )
     	{
-    		global $database;
     		// Specify the current applications name
     		$this->section_name = $section_name;
     		$this->section_permission = $section_permission;
@@ -145,7 +145,6 @@
 		$header_template = new Template(dirname($this->correct_theme_source('header.htt')) );
 		$header_template->set_file('page', 'header.htt');
 		$header_template->set_block('page', 'header_block', 'header');
-        $this->_oTrans->enableAddon('templates\\'.$this->_oReg->DefaultTheme);
         $header_template->set_var($this->_oTrans->getLangArray());
 		if(defined('DEFAULT_CHARSET')) {
 			$charset=DEFAULT_CHARSET;
@@ -299,7 +298,6 @@
 		$footer_template = new Template(dirname($this->correct_theme_source('footer.htt')));
 		$footer_template->set_file('page', 'footer.htt');
 		$footer_template->set_block('page', 'footer_block', 'header');
-        $this->_oTrans->enableAddon('templates\\'.$this->_oReg->DefaultTheme);
         $footer_template->set_var($this->_oTrans->getLangArray());
 		$footer_template->set_var(array(
 						'BACKEND_BODY_MODULE_JS' => $this->register_backend_modfiles_body('js'),
