Index: trunk/wb/admin/templates/index.php
===================================================================
--- trunk/wb/admin/templates/index.php	(revision 168)
+++ trunk/wb/admin/templates/index.php	(revision 169)
@@ -33,15 +33,12 @@
 
 // Insert values into template list
 $template->set_block('main_block', 'template_list_block', 'template_list');
-if($handle = opendir(WB_PATH.'/templates/')) {
-	while (false !== ($file = readdir($handle))) {
-		if($file != "." AND $file != ".." AND $file != ".svn" AND is_dir(WB_PATH."/templates/$file") AND file_exists(WB_PATH."/templates/$file/info.php")) {
-			// Include the templates info file
-			require(WB_PATH.'/templates/'.$file.'/info.php');
-			$template->set_var('VALUE', $file);
-			$template->set_var('NAME', $template_name);
-			$template->parse('template_list', 'template_list_block', true);
-		}
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('template_list', 'template_list_block', true);
 	}
 }
 
Index: trunk/wb/admin/pages/settings.php
===================================================================
--- trunk/wb/admin/pages/settings.php	(revision 168)
+++ trunk/wb/admin/pages/settings.php	(revision 169)
@@ -290,26 +290,21 @@
 }
 // Templates list
 $template->set_block('main_block', 'template_list_block', 'template_list');
-if($handle = opendir(WB_PATH.'/templates/')) {
-	while(false !== ($file = readdir($handle))) {
-		if($file != "." AND $file != ".." AND $file != ".svn" AND is_dir(WB_PATH."/templates/$file") AND file_exists(WB_PATH.'/templates/'.$file.'/info.php')) {
-			// Include the templates info file
-			require(WB_PATH.'/templates/'.$file.'/info.php');
-			// Check if the user has perms to use this template
-			if($file == $results_array['template'] OR $admin->get_permission($file, 'template') == true) {
-				$template->set_var('VALUE', $file);
-				$template->set_var('NAME', $template_name);
-				if($file == $results_array['template']) {
-					$template->set_var('SELECTED', ' selected');
-				} else {
-					$template->set_var('SELECTED', '');
-				}
-				$template->parse('template_list', 'template_list_block', true);
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) { 
+		// Check if the user has perms to use this template
+		if($addon['directory'] == $results_array['template'] OR $admin->get_permission($addon['directory'], 'template') == true) {
+			$template->set_var('VALUE', $addon['directory']);
+			$template->set_var('NAME', $addon['name']);
+			if($addon['directory'] == $results_array['template']) {
+				$template->set_var('SELECTED', ' selected');
+			} else {
+				$template->set_var('SELECTED', '');
 			}
+			$template->parse('template_list', 'template_list_block', true);
 		}
 	}
-	// Unset all menu arrays
-	unset($menu);
 }
 
 // Menu list
Index: trunk/wb/admin/pages/sections_save.php
===================================================================
--- trunk/wb/admin/pages/sections_save.php	(revision 168)
+++ trunk/wb/admin/pages/sections_save.php	(revision 169)
@@ -78,8 +78,8 @@
 		$module_path = WB_PATH.'/modules/'.$section['module'].'/info.php';
 		if(file_exists($module_path)) {
 			require($module_path);
-			if(!isset($module_type)) { $module_type = 'unknown'; }
-			if(!is_numeric(array_search($section['module'], $module_permissions)) AND $module_type == 'page') {
+			if(!isset($module_function)) { $module_function = 'unknown'; }
+			if(!is_numeric(array_search($section['module'], $module_permissions)) AND $module_function == 'page') {
 				// Update the section record with properties
 				$section_id = $section['section_id'];
 				$sql = '';
@@ -91,7 +91,7 @@
 					}
 				}
 			}
-			if(isset($module_type)) { unset($module_type); } // Unset module type
+			if(isset($module_function)) { unset($module_function); } // Unset module type
 		}
 	}
 }
Index: trunk/wb/admin/pages/index.php
===================================================================
--- trunk/wb/admin/pages/index.php	(revision 168)
+++ trunk/wb/admin/pages/index.php	(revision 169)
@@ -480,25 +480,22 @@
 $module_permissions = $_SESSION['MODULE_PERMISSIONS'];
 // Modules list
 $template->set_block('main_block', 'module_list_block', 'module_list');
-if($handle = opendir(WB_PATH.'/modules/')) {
-	while (false !== ($file = readdir($handle))) {
-		if($file != '.' AND $file != '..' AND $file != '.svn' AND is_dir(WB_PATH."/modules/$file") AND file_exists(WB_PATH."/modules/$file/info.php")) {
-			// Include the modules info file
-			require(WB_PATH.'/modules/'.$file.'/info.php');
-			// Check if user is allowed to use this module
-			if(!isset($module_type)) { $module_type = 'unknown'; }
-			if(!is_numeric(array_search($file, $module_permissions)) AND $module_type == 'page') {
-				$template->set_var('VALUE', $file);
-				$template->set_var('NAME', $module_name);
-				if($file == 'wysiwyg') {
-					$template->set_var('SELECTED', ' selected');
-				} else {
-					$template->set_var('SELECTED', '');
-				}
-				$template->parse('module_list', 'module_list_block', true);
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page'");
+if($result->numRows() > 0) {
+	while ($module = $result->fetchRow()) {
+		// Check if user is allowed to use this module
+		if(!isset($module['function'])) { $module['function'] = 'unknown'; }
+		if(!is_numeric(array_search($module['directory'], $module_permissions))) {
+			$template->set_var('VALUE', $module['directory']);
+			$template->set_var('NAME', $module['name']);
+			if($module['directory'] == 'wysiwyg') {
+				$template->set_var('SELECTED', ' selected');
+			} else {
+				$template->set_var('SELECTED', '');
 			}
-			if(isset($module_type)) { unset($module_type); } // Unset module type
+			$template->parse('module_list', 'module_list_block', true);
 		}
+		if(isset($module_function)) { unset($module_function); } // Unset module type
 	}
 }
 
Index: trunk/wb/admin/pages/sections.php
===================================================================
--- trunk/wb/admin/pages/sections.php	(revision 168)
+++ trunk/wb/admin/pages/sections.php	(revision 169)
@@ -164,8 +164,8 @@
 		$module_path = WB_PATH.'/modules/'.$section['module'].'/info.php';
 		if(file_exists($module_path)) {
 			require($module_path);
-			if(!isset($module_type)) { $module_type = 'unknown'; }
-			if(!is_numeric(array_search($section['module'], $module_permissions)) AND $module_type == 'page') {
+			if(!isset($module_function)) { $module_function = 'unknown'; }
+			if(!is_numeric(array_search($section['module'], $module_permissions)) AND $module_function == 'page') {
 			?>
 			<tr>
 				<td style="width: 250px;"><a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>#<?php echo $section['section_id']; ?>"><?php echo $module_name; ?></a></td>
@@ -204,7 +204,7 @@
 			</tr>
 			<?php
 			}
-			if(isset($module_type)) { unset($module_type); } // Unset module type
+			if(isset($module_function)) { unset($module_function); } // Unset module type
 		}
 	}
 	?>
@@ -236,20 +236,14 @@
 			<select name="module" style="width: 100%;">
 			<?php
 			// Insert module list
-			if($handle = opendir(WB_PATH.'/modules/')) {
-				while (false !== ($file = readdir($handle))) {
-					if($file != '.' AND $file != '..' AND $file != '.svn' AND $file != 'menu_link' AND is_dir(WB_PATH."/modules/$file") AND file_exists(WB_PATH."/modules/$file/info.php")) {
-						// Include the modules info file
-						require(WB_PATH.'/modules/'.$file.'/info.php');
-						// Check if user is allowed to use this module
-						if(!isset($module_type)) { $module_type = 'unknown'; }
-						if(!is_numeric(array_search($file, $module_permissions)) AND $module_type == 'page') {
-							?>
-							<option value="<?php echo $file; ?>"<?php if($file == 'wysiwyg') { echo 'selected'; } ?>><?php echo $module_name; ?></option>
-							<?php
-						}
-						if(isset($module_type)) { unset($module_type); } // Unset module type
-			
+			$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page' AND directory != 'menu_link'");
+			if($result->numRows() > 0) {
+				while($module = $result->fetchRow()) {
+					// Check if user is allowed to use this module
+					if(!is_numeric(array_search($module['directory'], $module_permissions))) {
+						?>
+						<option value="<?php echo $module['directory']; ?>"<?php if($module['directory'] == 'wysiwyg') { echo 'selected'; } ?>><?php echo $module['name']; ?></option>
+						<?php
 					}
 				}
 			}
Index: trunk/wb/admin/languages/index.php
===================================================================
--- trunk/wb/admin/languages/index.php	(revision 168)
+++ trunk/wb/admin/languages/index.php	(revision 169)
@@ -35,18 +35,13 @@
 
 // Insert values into language list
 $template->set_block('main_block', 'language_list_block', 'language_list');
-if ($handle = opendir(WB_PATH.'/languages/')) {
-	while (false !== ($file = readdir($handle))) {
-		if($file != '.' AND $file != '..' AND $file != '.svn' AND $file != 'index.php') {
-			// Include the languages info file
-			require(WB_PATH.'/languages/'.$file);
-			$template->set_var('VALUE', $language_code);
-			$template->set_var('NAME', $language_name.' ('.$language_code.')');
-			$template->parse('language_list', 'language_list_block', true);
-		}
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language'");
+if($result->numRows() > 0) {
+	while ($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name'].' ('.$addon['directory'].')');
+		$template->parse('language_list', 'language_list_block', true);
 	}
-	// Restore language to original file
-	require(WB_PATH.'/languages/'.LANGUAGE.'.php');
 }
 
 // Insert permissions values
Index: trunk/wb/admin/modules/index.php
===================================================================
--- trunk/wb/admin/modules/index.php	(revision 168)
+++ trunk/wb/admin/modules/index.php	(revision 169)
@@ -1,6 +1,6 @@
 <?php
 
-// $Id: index.php,v 1.2 2005/04/02 06:25:37 rdjurovich Exp $
+// $Id$
 
 /*
 
@@ -35,15 +35,12 @@
 
 // Insert values into module list
 $template->set_block('main_block', 'module_list_block', 'module_list');
-if($handle = opendir(WB_PATH.'/modules/')) {
-	while (false !== ($file = readdir($handle))) {
-		if($file != "." AND $file != ".." AND $file != ".svn" AND is_dir(WB_PATH."/modules/$file") AND file_exists(WB_PATH."/modules/$file/info.php")) {
-			// Include the modules info file
-			require(WB_PATH.'/modules/'.$file.'/info.php');
-			$template->set_var('VALUE', $file);
-			$template->set_var('NAME', $module_name);
-			$template->parse('module_list', 'module_list_block', true);
-		}
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module'");
+if($result->numRows() > 0) {
+	while ($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('module_list', 'module_list_block', true);
 	}
 }
 
