Index: trunk/wb/framework/functions.php
===================================================================
--- trunk/wb/framework/functions.php	(revision 164)
+++ trunk/wb/framework/functions.php	(revision 165)
@@ -682,4 +682,69 @@
 	
 }
 
+// Load addons into DB
+function load_addons($search_dir, $install_modules = false) {
+	global $database;
+	if($handle = opendir($search_dir)) {
+		while(false !== ($file = readdir($handle))) {
+			if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') {
+				// Load info file
+				if(file_exists($search_dir.'/'.$file.'/info.php')) {
+					require($search_dir.'/'.$file.'/info.php');
+				} else {
+					require($search_dir.'/'.$file);
+				}
+				// Get addon type
+				if(isset($module_name)) {
+					if(!isset($module_license)) { $module_license = 'GNU General Public License'; }
+					if(!isset($module_platform) AND isset($module_designed_for)) { $module_platform = $module_designed_for; }
+					// Check that it doesn't already exist
+					$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$module_directory."' LIMIT 0,1");
+					if($result->numRows() == 0) {
+						// Load into DB
+						$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+						"(directory,name,description,type,function,version,platform,author,license) ".
+						"VALUES ('$module_directory','$module_name','".addslashes($module_description)."','module',".
+						"'$module_function','$module_version','$module_platform','$module_author','$module_license')";
+						$database->query($query);
+						// Run installation script
+						if($install_modules == true) {
+							require($search_dir.'/'.$file.'/install.php');
+						}
+					}
+				} elseif(isset($template_name)) {
+					if(!isset($template_license)) { $template_license = 'GNU General Public License'; }
+					if(!isset($template_platform) AND isset($template_designed_for)) { $template_platform = $template_designed_for; }
+					// Check that it doesn't already exist
+					$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$template_directory."' LIMIT 0,1");
+					if($result->numRows() == 0) {
+						// Load into DB
+						$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+						"(directory,name,description,type,version,platform,author,license) ".
+						"VALUES ('$template_directory','$template_name','".addslashes($template_description)."','template',".
+						"'$template_version','$template_platform','$template_author','$template_license')";
+						$database->query($query);
+					}
+				} elseif(isset($language_name)) {
+					if(!isset($language_license)) { $language_license = 'GNU General Public License'; }
+					if(!isset($language_platform) AND isset($language_designed_for)) { $language_platform = $language_designed_for; }
+					// Check that it doesn't already exist
+					$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$language_code."' LIMIT 0,1");
+					if($result->numRows() == 0) {
+						// Load into DB
+						$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+						"(directory,name,type,version,platform,author,license) ".
+						"VALUES ('$language_code','$language_name','language',".
+						"'$language_version','$language_platform','$language_author','$language_license')";
+						$database->query($query);
+					}
+				}
+			}
+		}
+		closedir($handle);
+	} else {
+		echo 'Can\'t open '.$search_dir;
+	}
+}
+
 ?>
