Index: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	(revision 833)
+++ trunk/CHANGELOG	(revision 834)
@@ -10,10 +10,12 @@
 # = Bugfix
 ! = Update/Change
 
-------------------------------------- 2.7.0 -------------------------------------
-20-Apr-2008 Thomas Hornik
-#	fix: allow external urls for search-results
-17-Apr-2008 Thomas Hornik
+------------------------------------- 2.7.0 -------------------------------------
+21-Apr-2008 Christian Sommer
++	added some basic functions for module developers
+20-Apr-2008 Thomas Hornik
+#	fix: allow external urls for search-results
+17-Apr-2008 Thomas Hornik
 #	fixed jscalendar's language-files
 16-Apr-2008 Christian Sommer
 #	fixed possible clashes with intro page feature and WB core file /pages/index.php
Index: trunk/wb/framework/module.functions.php
===================================================================
--- trunk/wb/framework/module.functions.php	(revision 833)
+++ trunk/wb/framework/module.functions.php	(revision 834)
@@ -24,15 +24,22 @@
 */
 
 /**
-	This file contains the routines to edit the optional module files: frontend.css and backend.css
+	This file contains routines to edit the optional module files: frontend.css and backend.css
 	Mechanism was introduced with WB 2.7 to provide a global solution for all modules
 	To use this function, include this file from your module (e.g. from modify.php)
 	Then simply call the function edit_css('your_module_directory') - thatīs it
+	NOTE: Some functions were added for module developers to make the creation of own module easier
 */
 
 // prevent this file from being accessed directly
 if(!defined('WB_PATH')) die(header('Location: index.php'));  
 
+/*
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+ FUNCTIONS REQUIRED TO EDIT THE OPTIONAL MODULE CSS FILES
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+*/ 
+
 // this function checks the validity of the specified module directory
 if(!function_exists('check_module_dir')) {
 	function check_module_dir($mod_dir) {
@@ -115,4 +122,97 @@
   }
 }
 
+/*
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+ FUNCTIONS WHICH CAN BE USED BY MODULE DEVELOPERS FOR OWN MODULES (E.G. VIEW.PHP, MODIFY.PHP)
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+*/ 
+
+// function to obtain the module language file depending on the backend language of the current user
+if (!function_exists('get_module_language_file')) {
+	function get_module_language_file($mymod_dir) {
+		$mymod_dir = strip_tags($mymod_dir);
+		if(file_exists(WB_PATH .'/modules/' .$mymod_dir .'/languages/' .LANGUAGE .'.php')) {
+			// a module language file exists for the users backend language
+			return (WB_PATH .'/modules/' .$mymod_dir .'/languages/' .LANGUAGE .'.php');
+		} else {
+			// an English module language file must exist in all multi-lingual modules
+			if(file_exists(WB_PATH .'/modules/' .$mymod_dir .'/languages/EN.php')) {
+				return (WB_PATH .'/modules/' .$mymod_dir .'/languages/EN.php');
+			} else {
+				echo '<p><strong>Error: </strong>';
+				echo 'Default language file (EN.php) of module "' .htmlentities($mymod_dir) .'" does not exist.</p><br />';
+				return false;
+			}
+		}
+	}
+}
+
+// function to include module CSS files in <body> (only if WB < 2.6.7 or register_frontend_modfiles('css') not invoked in template)
+if (!function_exists('include_module_css')) {
+	function include_module_css($mymod_dir, $css_file) {
+		if(!in_array(strtolower($css_file), array('frontend.css', 'backend.css'))) return;
+		
+		if($css_file == 'frontend.css') {
+			// check if frontend.css needs to be included into the <body> section
+			if(!((!function_exists('register_frontend_modfiles') || !defined('MOD_FRONTEND_CSS_REGISTERED')) && 
+					file_exists(WB_PATH .'/modules/' .$mymod_dir .'/frontend.css'))) {
+				return false;
+			} 
+		} else {
+			// check if backend.css needs to be included into the <body> section
+			global $admin;
+			if(!(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH .'/modules/' .$mymod_dir .'/backend.css'))) {
+				return false;
+			}
+		}
+		// include frontend.css or backend.css into the <body> section
+		echo "\n".'<style type="text/css">'."\n";
+  	include(WB_PATH .'/modules/' .$mymod_dir .'/' .$css_file);
+  	echo "\n</style>\n";
+		return true;
+	}
+}
+
+// function to check if the optional module Javascript files are loaded into the <head> section
+if (!function_exists('requires_module_js')) {
+	function requires_module_js($mymod_dir, $js_file) {
+		if(!in_array(strtolower($js_file), array('frontend.js', 'backend.js'))) {
+			echo '<strong>Note: </strong>Javascript file "' .htmlentities($js_file) .'" 
+			specified in module "' .htmlentities($mymod_dir) .'" not valid.'; 
+			return false;
+		}
+		
+		if($js_file == 'frontend.js') {
+			// check if frontend.js is included to the <head> section
+			if(!defined('MOD_FRONTEND_JAVASCRIPT_REGISTERED')) {
+				echo '<p><strong>Note:</strong> The module: "' .htmlentities($mymod_dir) .'" requires WB 2.6.7 or higher</p>
+				<p>This module uses Javascript functions contained in frontend.js of the module.<br />
+				Add the code below to the &lt;head&gt; section in the index.php of your template
+				to ensure that module frontend.js files are automatically loaded if required.</p>
+				<code style="color: #800000;">&lt;?php<br />if(function_exists(\'register_frontend_modfiles\')) { <br />
+				&nbsp;&nbsp;register_frontend_modfiles(\'js\');<br />?&gt;</code><br />
+				<p><strong>Tip:</strong> For WB 2.6.7 copy the code above to the index.php of your template. 
+				Then open the view.php of the "' .htmlentities($mymod_dir) .'" module and set the variable 
+				<code>$requires_frontend_js</code> to false. This may do the trick.</p><p>All WB versions below 2.6.7 needs 
+				to be upgraded to work with this module.</p>
+				';
+				return false;
+			}
+		} else {
+			// check if backend.js is included to the <head> section
+			global $admin;
+				if(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH .'/modules/' .$mymod_dir .'/backend.js')) {
+				echo '<p><strong>Note:</strong> The module: "' .htmlentities($mymod_dir) .'" requires WB 2.6.7 or higher</p>
+				<p>This module uses Javascript functions contained in backend.js of the module.<br />
+				You need WB 2.6.7 or higher to ensure that module backend.js files are automatically loaded if required.</p>
+				<p>Sorry, you can not use this tool with your WB installation, please upgrade to the latest WB version available.</p><br />
+				';
+				return false;
+			}
+		}
+		return true;
+	}
+}
+
 ?>
\ No newline at end of file
