Index: trunk/include/oninstall.php
===================================================================
--- trunk/include/oninstall.php	(revision 8)
+++ trunk/include/oninstall.php	(revision 8)
@@ -0,0 +1,147 @@
+<?php
+$mydirpath = dirname(dirname(__FILE__));
+$mydirname = basename($mydirpath);
+$lang = @$GLOBALS["xoopsConfig"]['language'];
+global $wp_db_version;
+include_once $mydirpath .'/wp-includes/version.php' ;
+
+// language file (modinfo.php)
+
+if( file_exists( $mydirpath .'/language/'.$lang.'/modinfo.php' ) ) {
+	include_once $mydirpath .'/language/'.$lang.'/modinfo.php' ;
+} else if( file_exists(  $mydirpath .'/language/english/modinfo.php' ) ) {
+	include_once $mydirpath .'/language/english/modinfo.php' ;
+}
+
+
+eval( ' function xoops_module_install_'.$mydirname.'( $module ) { return xpress_oninstall_base( $module , "'.$mydirname.'" ) ; } ' ) ;
+
+
+if( ! function_exists( 'xpress_oninstall_base' ) ) :
+function xpress_oninstall_base( $module , $mydirname )
+{
+	// transations on module install
+
+	global $ret ; // TODO :-D
+
+	// for Cube 2.1
+	if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
+		$root =& XCube_Root::getSingleton();
+		$root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Success' , 'xpress_message_append_oninstall' ) ;
+		$ret = array() ;
+	} else {
+		if( ! is_array( $ret ) ) $ret = array() ;
+	}
+
+	$db =& Database::getInstance() ;
+	$mid = $module->getVar('mid') ;
+
+//xpress
+	global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query;
+	define("WP_INSTALLING", true);
+	$site_url= XOOPS_URL."/modules/".$mydirname;
+	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+	$path = $mydirpath . '/';
+	if (file_exists($path . 'wp-load.php')) {
+		require_once $path . 'wp-load.php';
+	} else {
+		require_once $path . 'wp-config.php';
+	}
+	include_once($mydirpath . '/wp-admin/upgrade-functions.php');
+	wp_cache_flush();
+	make_db_current_silent();
+	
+	$option_desc = __('WordPress web address');
+	$wpdb->query("INSERT INTO $wpdb->options (option_id, blog_id, option_name,option_value, autoload) VALUES ('1', '0', 'siteurl','$site_url', 'yes')");	
+	$wpdb->query("INSERT INTO $wpdb->options (option_id, blog_id, option_name,option_value, autoload) VALUES ('1', '0', 'home','$site_url', 'yes')");
+
+	populate_options();
+	populate_roles();
+	
+// Rewrite Option for Xpress
+//	update_option("blog_charset", wp_blog_charset());
+	update_option('blogname', ucfirst($mydirname) . ' ' . _MI_XPRESS_NAME );	
+	update_option('blogdescription', 'WordPress for XOOPS');
+	update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
+	update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
+	update_option("home", $site_url);
+	update_option("siteurl", $site_url);
+//	update_option("template", "xpress_st");
+//	update_option("stylesheet", "xpress_st");
+	update_option("what_to_show", "posts");
+
+	/* add new option for uploads */
+//	update_option('uploads_use_yearmonth_folders', 1);
+//	update_option('upload_path', $module->getVar("dirname"));
+	
+	/* activate the tag plugin */
+//	$plugin_current = "terong_related.php";
+//	update_option('active_plugins', array($plugin_current));
+//	include(dirname(__FILE__) . '/../wp-content/plugins/'.$plugin_current);
+//	do_action('activate_'.$plugin_current);
+		
+// Admin User Data write
+	// Change uid field
+	$wpdb->query("ALTER TABLE $wpdb->posts CHANGE `post_author` `post_author` mediumint(8) NOT NULL DEFAULT '0'");
+	$ID = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uid"):1;
+   	require_once($mydirpath . '/include/user_sync.php');
+	xpress_user_sync($ID);
+
+	// Set Default data
+		wp_install_defaults($ID);
+//	    generate_page_uri_index();
+
+	        
+	// create views table
+	$xp_prefix = $mydirname;
+	if ($xp_prefix == 'wordpress'){
+ 		$xp_prefix = 'wp';
+	}
+	$views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
+
+	$charset_collate = '';
+	if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
+		if ( ! empty($wpdb->charset) )
+			$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
+		if ( ! empty($wpdb->collate) )
+			$charset_collate .= " COLLATE $wpdb->collate";
+	}
+	$views_queries ="CREATE TABLE $views_table (
+  		post_id bigint(20) unsigned NOT NULL default '0',
+  		post_views bigint(20) unsigned NOT NULL default '0',
+  		KEY post_id (post_id)
+		)$charset_collate;";
+
+	dbDelta($views_queries);
+	
+	$d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
+	$views_queries ="CREATE TABLE $d3forum_link (
+  		comment_ID bigint(20) unsigned NOT NULL default '0',
+  		post_id int(10) unsigned NOT NULL default '0' ,
+  		wp_post_ID bigint(20) unsigned NOT NULL default '0',
+  		KEY post_id (post_id)
+		)$charset_collate;";
+	dbDelta($views_queries);
+		
+	// make templates
+//	include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates.php' ;
+//	$ret = xpress_install_templates($mid,$mydirname);
+
+	return true ;
+}
+endif;
+
+if( ! function_exists( 'xpress_message_append_oninstall' ) ) :
+function xpress_message_append_oninstall( &$module_obj , &$log )
+{
+	if( is_array( @$GLOBALS['ret'] ) ) {
+		foreach( $GLOBALS['ret'] as $message ) {
+			$log->add( strip_tags( $message ) ) ;
+		}
+	}
+
+	// use mLog->addWarning() or mLog->addError() if necessary
+}
+endif;
+
+?>
Index: trunk/include/onuninstall.php
===================================================================
--- trunk/include/onuninstall.php	(revision 8)
+++ trunk/include/onuninstall.php	(revision 8)
@@ -0,0 +1,78 @@
+<?php
+$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+
+eval( ' function xoops_module_uninstall_'.$mydirname.'( $module ) { return xpress_onuninstall_base( $module , "'.$mydirname.'" ) ; } ' ) ;
+
+
+if( ! function_exists( 'xpress_onuninstall_base' ) ) {
+
+function xpress_onuninstall_base( $module , $mydirname )
+{
+	// transations on module uninstall
+
+	global $ret ; // TODO :-D
+
+	// for Cube 2.1
+	if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
+		$root =& XCube_Root::getSingleton();
+		$root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleUninstall.' . ucfirst($mydirname) . '.Success' , 'xpress_message_append_onuninstall' ) ;
+		$ret = array() ;
+	} else {
+		if( ! is_array( $ret ) ) $ret = array() ;
+	}
+
+	$db =& Database::getInstance() ;
+	$mid = $module->getVar('mid') ;
+/*
+	// TABLES (loading mysql.sql)
+	$sql_file_path = dirname(__FILE__).'/sql/mysql.sql' ;
+	$prefix_mod = $db->prefix() . '_' . $mydirname ;
+	if( file_exists( $sql_file_path ) ) {
+		$ret[] = "SQL file found at <b>".htmlspecialchars($sql_file_path)."</b>.<br  /> Deleting tables...<br />";
+		$sql_lines = file( $sql_file_path ) ;
+		foreach( $sql_lines as $sql_line ) {
+			if( preg_match( '/^CREATE TABLE \`?([a-zA-Z0-9_-]+)\`? /i' , $sql_line , $regs ) ) {
+				$sql = 'DROP TABLE '.$prefix_mod.'_'.$regs[1] ;
+				if (!$db->query($sql)) {
+					$ret[] = '<span style="color:#ff0000;">ERROR: Could not drop table <b>'.htmlspecialchars($prefix_mod.'_'.$regs[1]).'<b>.</span><br />';
+				} else {
+					$ret[] = 'Table <b>'.htmlspecialchars($prefix_mod.'_'.$regs[1]).'</b> dropped.<br />';
+				}
+			}
+		}
+	}
+*/
+	// TEMPLATES (Not necessary because modulesadmin removes all templates)
+	/* $tplfile_handler =& xoops_gethandler( 'tplfile' ) ;
+	$templates =& $tplfile_handler->find( null , 'module' , $mid ) ;
+	$tcount = count( $templates ) ;
+	if( $tcount > 0 ) {
+		$ret[] = 'Deleting templates...' ;
+		for( $i = 0 ; $i < $tcount ; $i ++ ) {
+			if( ! $tplfile_handler->delete( $templates[$i] ) ) {
+				$ret[] = '<span style="color:#ff0000;">ERROR: Could not delete template '.$templates[$i]->getVar('tpl_file','s').' from the database. Template ID: <b>'.$templates[$i]->getVar('tpl_id','s').'</b></span><br />';
+			} else {
+				$ret[] = 'Template <b>'.$templates[$i]->getVar('tpl_file','s').'</b> deleted from the database. Template ID: <b>'.$templates[$i]->getVar('tpl_id','s').'</b><br />';
+			}
+		}
+	}
+	unset($templates); */
+
+
+	return true ;
+}
+
+function xpress_message_append_onuninstall( &$module_obj , &$log )
+{
+	if( is_array( @$GLOBALS['ret'] ) ) {
+		foreach( $GLOBALS['ret'] as $message ) {
+			$log->add( strip_tags( $message ) ) ;
+		}
+	}
+
+	// use mLog->addWarning() or mLog->addError() if necessary
+}
+
+}
+
+?>
Index: trunk/include/onupdate.php
===================================================================
--- trunk/include/onupdate.php	(revision 8)
+++ trunk/include/onupdate.php	(revision 8)
@@ -0,0 +1,211 @@
+<?php
+$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+
+eval( ' function xoops_module_update_'.$mydirname.'( $module ) { return xpress_onupdate_base( $module , "'.$mydirname.'" ) ; } ' ) ;
+
+
+if( ! function_exists( 'xpress_onupdate_base' ) ) :
+function xpress_onupdate_base( $module , $mydirname )
+{
+	// transations on module update
+
+	global $msgs ; // TODO :-D
+
+	// for Cube 2.1
+	if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
+		$root =& XCube_Root::getSingleton();
+		$root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleUpdate.' . ucfirst($mydirname) . '.Success', 'xpress_message_append_onupdate' ) ;
+		$msgs = array() ;
+	} else {
+		if( ! is_array( $msgs ) ) $msgs = array() ;
+	}
+
+	$db =& Database::getInstance() ;
+	$mid = $module->getVar('mid') ;
+
+//XPress TABLE UPGRADE
+	global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles,$wp_query;
+	define('WP_INSTALLING', true);
+	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+	$path = $mydirpath . '/';
+	if (file_exists($path . 'wp-load.php')) {
+		require_once $path . 'wp-load.php';
+	} else {
+		require_once $path . 'wp-config.php';
+	}
+	require_once($mydirpath . '/wp-admin/upgrade-functions.php');
+
+	if ( get_db_version($mydirname) != $wp_db_version ){
+		if( function_exists( 'wp_upgrade' ) )	{	
+			wp_upgrade();
+		} else {
+			wp_cache_flush();
+			make_db_current_silent();
+			upgrade_all();
+			wp_cache_flush();
+		}				
+	}
+//	update_option("blog_charset", wp_blog_charset());
+	$xpress_version = $module->modinfo['version'];
+	
+	if (! enhanced_table_check($mydirname,'views')){
+		$xp_prefix = $mydirname;
+		if ($xp_prefix == 'wordpress'){
+	 		$xp_prefix = 'wp';
+		}
+		
+		$charset_collate = '';
+		if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
+			if ( ! empty($wpdb->charset) )
+			$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
+			if ( ! empty($wpdb->collate) )
+			$charset_collate .= " COLLATE $wpdb->collate";
+		}
+		$views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
+		$views_queries ="CREATE TABLE $views_table (
+  		post_id bigint(20) unsigned NOT NULL default '0',
+  		post_views bigint(20) unsigned NOT NULL default '0',
+  		KEY post_id (post_id)
+		)$charset_collate;";
+
+		dbDelta($views_queries);
+	}
+	
+	if (! enhanced_table_check($mydirname,'d3forum_link')){
+		$xp_prefix = $mydirname;
+		if ($xp_prefix == 'wordpress'){
+	 		$xp_prefix = 'wp';
+		}
+		
+		$charset_collate = '';
+		if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
+			if ( ! empty($wpdb->charset) )
+			$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
+			if ( ! empty($wpdb->collate) )
+			$charset_collate .= " COLLATE $wpdb->collate";
+		}
+	
+		$d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
+		$queries ="CREATE TABLE $d3forum_link (
+	  		comment_ID bigint(20) unsigned NOT NULL default '0',
+	  		post_id int(10) unsigned NOT NULL default '0' ,
+	  		wp_post_ID bigint(20) unsigned NOT NULL default '0',
+	  		KEY post_id (post_id)
+			)$charset_collate;";
+		dbDelta($queries);
+	}
+	
+	clean_template($mydirname,$xpress_version);
+
+	// update templates
+//	include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates.php' ;
+//	$msgs = xpress_update_templates($mid,$mydirname);
+	
+	return true ;
+}
+endif;
+
+if( ! function_exists( 'xpress_message_append_onupdate' ) ) :
+function xpress_message_append_onupdate( &$module_obj , &$log )
+{
+	if( is_array( @$GLOBALS['msgs'] ) ) {
+		foreach( $GLOBALS['msgs'] as $message ) {
+			$log->add( strip_tags( $message ) ) ;
+		}
+	}
+
+	// use mLog->addWarning() or mLog->addError() if necessary
+}
+endif;
+
+if( ! function_exists( 'get_db_version' ) ) :
+function get_db_version($mydirname){
+		global $xoopsModule;
+		$wp_prefix = $mydirname;
+		if ($wp_prefix == 'wordpress'){
+			$wp_prefix = 'wp';
+		}
+		$xoopsDB =& Database::getInstance();
+		$db_xpress_option = $xoopsDB->prefix($wp_prefix . '_options');
+
+		$sql = "SELECT option_value FROM $db_xpress_option WHERE option_name = 'db_version'";
+		$res = $xoopsDB->query($sql, 0, 0);
+		if ($res === false){
+			return false;
+		} else {
+			$row = $xoopsDB->fetchArray($res);
+			return $row['option_value'];
+		}
+}
+endif;
+
+if( ! function_exists( 'clean_template' ) ) :
+function clean_template($mydirname,$xpress_ver){
+		global $xoopsModule;
+		
+		$var = floatval($xpress_ver);
+		switch ($var){
+			case ($var >= 0.62):
+				$temp_file = "'". $mydirname . "_home.html','" . $mydirname. "_index.html','" . $mydirname . "_search.html','" . $mydirname . "_single.html'";
+				break;
+			case ($var >= 0.60):
+				$temp_file = "'xpress_header.html','xpress_home.html','xpress_index.html','xpress_search.html','xpress_sidebar.html'";
+				break;
+			default:
+				$temp_file = 'all';
+		}
+		
+		if ($temp_file != 'all'){			
+			$xoopsDB =& Database::getInstance();
+			$db_tplfile = $xoopsDB->prefix('tplfile');
+			$db_tplsource = $xoopsDB->prefix('tplsource');
+
+			$sql = "SELECT * FROM $db_tplfile WHERE tpl_module = '$mydirname' AND NOT tpl_file IN($temp_file)";
+			$res = $xoopsDB->query($sql, 0, 0);
+			if ($res === false){
+				return false;
+			} else {
+				$del_array = '';
+				$i=0;
+				while($row = $xoopsDB->fetchArray($res)){
+					if (!empty($del_array))
+					$del_array .= ',';
+					$del_array .= $row['tpl_id'];
+				}
+				if(!empty($del_array)){
+					$del_tplfile  = "DELETE FROM $db_tplfile WHERE tpl_id IN ($del_array)";
+					$result = $xoopsDB->query($del_tplfile, 0, 0);
+					$del_tplsource  = "DELETE FROM $del_tplsource WHERE tpl_id IN ($del_array)";
+					$result = $xoopsDB->query($del_tplfile, 0, 0);
+				}
+			}
+		}
+}
+endif;
+
+if( ! function_exists( 'enhanced_table_check' ) ) :
+function enhanced_table_check($mydirname,$table_name){
+		global $xoopsModule;
+		
+		$xoopsDB =& Database::getInstance();
+		if ($mydirname == 'wordpress'){
+			$xpress_prefix=  $xoopsDB->prefix('wp_');
+		} else {
+			$xpress_prefix=  $xoopsDB->prefix($mydirname . '_');
+		}
+		$db_enhanced = $xpress_prefix . $table_name;
+
+		$sql = "show tables like '$db_enhanced'";
+		$res = $xoopsDB->query($sql, 0, 0);
+		if ($res === false){
+			return false;
+		} else {
+			if ($xoopsDB->getRowsNum($res)  > 0)
+				return true;
+			else
+				return false;
+		}
+}
+endif;
+
+?>
Index: trunk/include/user_sync.php
===================================================================
--- trunk/include/user_sync.php	(revision 8)
+++ trunk/include/user_sync.php	(revision 8)
@@ -0,0 +1,532 @@
+<?php
+/**
+ * XPressME - WordPress for XOOPS
+ *
+ *
+ * @copyright	XPressME Project http://www.toemon.com
+ * @license		http://www.fsf.org/copyleft/gpl.html GNU public license
+ * @author		toemon
+ * @since		2.04
+ * @version		$Id$
+ * @package		module::xpress
+ */
+
+
+//
+// wordpress user data vs xoops user data
+// wordpress database info from http://adiary.blog.abk.nu/080
+//
+//	wordpress									xpress
+//------------------------------------------------------------------------------------------
+//	users.ID [bigint(20)]						users.uid [mediumint(8)]
+//	users.user_login [varchar(60)]				users.uname [varchar(60)]
+//	users.user_pass [varchar(64)]				users.pass [varchar(32)]
+//	users.user_email [varchar(100)]				users.email [varchar(60)]
+//	users.user_url[varchar(100)]				users.url [varchar(100)]
+//	users.dateYMDhour [datetime]				
+//	users.user_nicename [varchar(50)]			users.uname [varchar(60)]
+//	users.user_registerd [datetime]				date('Y-m-d H:i:s' , users.regdate[int(10)])
+//	users.user_activation_key [varchar(60)]		null
+//	users.user_status	[int(11)]				0
+//	users.display_name [varchar(250)]			empty(users.name) ? users.uname :users.name
+//
+//	usermeta[meta_key]							get_xpress_user_level(uid);
+//		user_level	10:admim
+//					7: editor
+//					2: auther
+//					1: contributor
+//					0: subscriber							
+//		nickname								users.name [varchar(25)]
+//		capabillities
+//			at user_level	10:admim			'a:1:{s:13:"administrator";b:1;}'		
+//							7: editor			'a:1:{s:6:"editor";b:1;}'
+//							2: auther			'a:1:{s:6:"author";b:1;}'
+//							1: contributor		'a:1:{s:11:"contributor";b:1;}'
+//							0: subscriber		'a:1:{s:10:"subscriber";b:1;}'
+//					
+//		first_name
+//		last_name								
+//		description
+//		jabber
+//		aim										users.user_aim
+//		yim										users.user_yim
+//		
+//
+
+	include_once dirname( __FILE__ ).'/../../../mainfile.php';
+	$path = dirname(dirname(__FILE__)) . '/';
+	if (file_exists($path . 'wp-load.php')) {
+		require_once $path . 'wp-load.php';
+	} else {
+		require_once $path . 'wp-config.php';
+	}
+
+//if( ! function_exists( 'get_xpress_mid' ) ) :
+	function get_xpress_mid($mydirname){
+		$xoopsDB =& Database::getInstance();
+		$module_tbl = $xoopsDB->prefix('modules');		
+		$module_dir = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+		$module_id = 0;
+
+		$sql = "SELECT mid FROM $module_tbl WHERE dirname LIKE '$mydirname'";
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($xoopsDB->getRowsNum($result)  > 0){
+			$row = $xoopsDB->fetchArray($result);
+			$module_id = $row['mid'];
+		}
+		return $module_id;
+	}
+//endif;		
+
+
+//if( ! function_exists( 'get_xpress_user_level' ) ) :
+	function get_xpress_user_level($mydirname , $uid=0){
+		if ($uid == 0){
+			return 0;
+		}
+
+		global $xoopsModule;
+		$xoopsDB =& Database::getInstance();
+		$db_groups_users_link = $xoopsDB->prefix('groups_users_link');
+		$db_group_permission = $xoopsDB->prefix('group_permission');
+		$module_tbl = $xoopsDB->prefix('modules');
+		
+		$module_id = get_xpress_mid($mydirname);
+		$sql = "SELECT uid FROM $db_groups_users_link WHERE groupid = 1 AND uid = $uid";
+	
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($xoopsDB->getRowsNum($result)  > 0){
+				return 5;
+		}
+		
+		$sql  = "SELECT Max($db_group_permission.gperm_itemid) AS user_level ,$db_groups_users_link.uid ";
+		$sql .= "FROM $db_groups_users_link LEFT JOIN $db_group_permission ON $db_groups_users_link.groupid = $db_group_permission.gperm_groupid ";
+		$sql .= "WHERE $db_group_permission.gperm_modid = $module_id ";
+		$sql .= "GROUP BY $db_groups_users_link.uid ";
+		$sql .= "HAVING $db_groups_users_link.uid = $uid";
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($result === false){
+			return 0;
+		}else{
+			if ($xoopsDB->getRowsNum($result)  > 0){
+				$row = $xoopsDB->fetchArray($result);	
+				$level =  $row['user_level'];
+				return $level;
+			} else { 
+				return 0;
+			}
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'get_now_user_level' ) ) :
+	function get_now_user_level(){
+
+		global $xoopsModule;
+
+		if(empty($GLOBALS['user_level'])){
+			return 0;		
+		} else {
+			//$user_id =  $GLOBALS["xoopsUser"]->getVar("uid");
+			//$level = xpress2wp_user_level(get_xpress_user_level($mydirname , $user_id));
+			//$level = get_wp_user_level($mydirname,$user_id);
+			$level = $GLOBALS['user_level'];
+			return $level;
+		}		
+	}
+//endif;
+
+//if( ! function_exists( 'get_wp_user_leve' ) ) :
+	function get_wp_user_level($mydirname,$uid=0){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();		
+		$db_xpress_usermeta = $xoopsDB->prefix($wp_prefix . 'usermeta');
+		$meta_key_str = $xoopsDB->prefix($wp_prefix . 'user_level');
+		$sql = "SELECT meta_value FROM $db_xpress_usermeta WHERE (user_id = $uid) AND (meta_key = $meta_key)";
+		$res =  $xoopsDB->query($sql, 0, 0);
+		if ($res === false){
+			return 0;
+		}else{
+			if ($xoopsDB->getRowsNum($res)  > 0){
+				$row = $xoopsDB->fetchArray($res);	
+				$level =  $row['meta_value'];
+				return $level;
+			} else { 
+				return 0;
+			}
+		}
+		
+	}
+//endif;		
+
+//if( ! function_exists( 'get_xpress_prefix' ) ) :
+	function get_xpress_prefix($mydirname){
+		global $xoopsModule;
+		if ($mydirname == 'wordpress'){
+			return 'wp_';
+		} else {
+			return $mydirname . '_';
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'xpress_user_found' ) ) :
+	function xpress_user_found($mydirname, $uid){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();
+		$db_xpress_users = $xoopsDB->prefix($wp_prefix . 'users');
+
+		$sql = "SELECT ID FROM $db_xpress_users WHERE ID = $uid";
+		$res = $xoopsDB->query($sql, 0, 0);
+		if ($res === false){
+			return false;
+		} else {
+			if ($xoopsDB->getRowsNum($res)  > 0){
+				return true;
+			} else {
+				return false;
+			}
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'xpress2wp_user_level' ) ) :
+	function xpress2wp_user_level($level){
+		switch($level) {
+			case 5:
+				return 10;
+			case 4:
+				return 7;
+			case 3:
+				return 2;
+			case 2:
+				return 1;
+			case 1:
+				return 0;
+			default:
+				return 0;
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'get_capabillities_name' ) ) :
+	function get_capabillities_name($level){
+		switch($level) {
+			case 10:
+				return 'administrator';
+			case 7:
+				return 'editor';
+			case 2:
+				return 'author';
+			case 1:
+				return 'contributor';
+			case 0:
+				return 'subscriber';
+			default:
+				return 'subscriber';
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'xpress_usermeta_sync' ) ) :
+	function xpress_usermeta_sync($mydirname , $uid,$meta_key,$meta_value){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();		
+		$db_xpress_usermeta = $xoopsDB->prefix($wp_prefix . 'usermeta');
+		$sql = "SELECT user_id FROM $db_xpress_usermeta WHERE (user_id = $uid) AND (meta_key = $meta_key)";
+		$res =  $xoopsDB->query($sql, 0, 0);
+
+		if ($res === false){
+			$sql2 = "INSERT INTO $db_xpress_usermeta (user_id,meta_key,meta_value) VALUES ($uid,$meta_key,$meta_value)";
+		}else {
+			if ($xoopsDB->getRowsNum($res)  > 0){
+				
+				$sql2 = "UPDATE $db_xpress_usermeta SET meta_value = $meta_value WHERE (user_id = $uid) AND (meta_key = $meta_key)";
+			} else {
+				$sql2 = "INSERT INTO $db_xpress_usermeta (user_id,meta_key,meta_value) VALUES ($uid,$meta_key,$meta_value)";
+			}
+		}
+		$res = $xoopsDB->queryF($sql2, 0, 0);
+		if ($res === false) {
+			$ret = "...ERR($sql2)";
+			return $ret;
+		} else {
+			return '';
+		}
+
+	}
+//endif;
+
+//if( ! function_exists( 'sql_str' ) ) :
+	function sql_str($text = ''){
+		return "'" . $text . "'";
+	}
+//endif;
+	
+//if( ! function_exists( 'xpress_user_sync' ) ) :
+	function xpress_user_sync($sync_uid = 0){
+		$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+
+		if( is_object( @$GLOBALS["xoopsModule"] ) ) {
+			$wp_prefix = get_xpress_prefix($mydirname);
+			$xoopsDB =& Database::getInstance();
+			$db_xoops_users = $xoopsDB->prefix('users');
+			$db_xpress_users = $xoopsDB->prefix($wp_prefix . 'users');
+
+			$ret_str = 'Do Sync';
+		
+			if ($sync_uid == 0) {
+				$xu_sql  = "SELECT uid ,name ,uname ,pass ,email, url, user_regdate, user_aim, user_yim FROM $db_xoops_users";
+			} else {
+				$xu_sql  = "SELECT uid ,name ,uname ,pass ,email, url, user_regdate, user_aim, user_yim FROM $db_xoops_users WHERE uid = $sync_uid";
+			}	
+
+			$xu_res =  $xoopsDB->query($xu_sql, 0, 0);
+			if ($xu_res === false){
+				$ret_str .= '...ERR ('. $xu_sql . ')';
+				return $ret_str;
+			}else {
+				while($xu_row = 	$xoopsDB->fetchArray($xu_res)){
+					$xpress_user_level = get_xpress_user_level($mydirname , $xu_row['uid']);
+					if ($xpress_user_level < 1){
+						$ret_str .= "...PASS '" . $xu_row['uname'] ."'[uid=".$xu_row['uid'] ."](not xpress user)";
+						if ($sync_uid != 0){
+							$ret_str .= '...NOT XPRESS USER ' . $xu_row['uname'];
+							return $ret_str;
+						}
+					} else {
+						$user_ID = 			$xu_row['uid'];
+						$user_level = xpress2wp_user_level($xpress_user_level);
+						if ($user_level == 10 ){
+							$capabillities_name = 'administrator';
+						}else {
+							if (!empty($GLOBALS["xoopsModuleConfig"]["use_wp_userlevel"])){
+								$capabillities_name = get_option('default_role');		
+							}else {
+								$capabillities_name = get_capabillities_name($user_level);
+							}
+						}
+						$user_login_name = 	sql_str($xu_row['uname']);
+						$user_pass_md5 = 	sql_str( $xu_row['pass']);
+						$user_email = 		sql_str( $xu_row['email']);
+						$user_url = 		sql_str( $xu_row['url']);
+						$user_regist_time = sql_str(date('Y-m-d H:i:s' , $xu_row['user_regdate']));
+						$user_nicename =	sql_str( $xu_row['uname']);
+						$user_status = 0;
+						$user_display_name =sql_str( empty($xu_row['name']) ? $xu_row['uname'] :$xu_row['name'] );
+						$user_nickname =	sql_str( empty($xu_row['name']) ? $xu_row['uname'] :$xu_row['name'] );
+						$user_aim =			sql_str( $xu_row['user_aim']);
+						$user_yim =			sql_str( $xu_row['user_yim']);
+						$user_first_name = 	sql_str( $xu_row['uname']);
+						$user_last_name = 	sql_str('');
+						$user_description = sql_str('');
+						$user_jabber = 		sql_str('');
+						$user_rich_editing = sql_str('true');
+
+						$is_update = false;
+						
+//						$capabillities = sql_str(get_capabillities($user_level));
+		
+						if (xpress_user_found($mydirname, $user_ID)){
+							$wu_sql  = 	"UPDATE $db_xpress_users ";
+							$wu_sql .= 	'SET ';
+							$wu_sql .=		"user_login  = $user_login_name, ";
+							$wu_sql .=		"user_pass  = $user_pass_md5, ";
+							$wu_sql .=		"user_email = $user_email, ";
+							$wu_sql .=		"user_url = $user_url, ";
+							$wu_sql .=		"user_nicename = $user_nicename, ";
+							$wu_sql .=		"user_registered = $user_regist_time, ";
+							$wu_sql .=		"user_status = 0 ";
+							$wu_sql .=	"WHERE (ID = $user_ID )";
+							if (!empty($GLOBALS["xoopsModuleConfig"]["use_wp_userlevel"])){
+								$ret_str .= '...UPDATE ' . $user_login_name . '(Level Not Change)';
+							} else {
+								$ret_str .= '...UPDATE ' . $user_login_name . '(' . $capabillities_name . ')';
+							}
+							$is_update = true;
+						}else{
+							$wu_sql  =	"INSERT INTO $db_xpress_users ";
+							$wu_sql .=  	"(ID , user_login , user_pass ,user_email , user_url , user_nicename " ;
+							$wu_sql .=		" , user_registered , user_status , display_name) ";
+							$wu_sql .=	"VALUES ";
+							$wu_sql .=		"($user_ID, $user_login_name, $user_pass_md5, $user_email, $user_url, $user_nicename ";
+							$wu_sql .=		" , $user_regist_time, $user_status, $user_display_name)";
+							if (!empty($GLOBALS["xoopsModuleConfig"]["use_wp_userlevel"])){
+								$ret_str .= '...INSERT ' . $user_login_name . '(' . $capabillities_name . '-WP Default)';
+							} else {
+								$ret_str .= '...INSERT ' . $user_login_name . '(' . $capabillities_name . ')';
+							}
+						}
+		
+						$wu_res = $xoopsDB->queryF($wu_sql, 0, 0);
+		
+						if ($wu_res === false){
+							$ret_str .= '...ERR(' . $wu_sql . ')';
+							return $ret_str;
+						}
+								
+						if (!empty($GLOBALS["xoopsModuleConfig"]["use_wp_userlevel"])){
+							if (!$is_update){
+								$sycc_user = new WP_User($user_ID);
+								$sycc_user->set_role($capabillities_name);
+							}
+						} else {
+							$sycc_user = new WP_User($user_ID);
+							$sycc_user->set_role($capabillities_name);						
+						}
+
+						if( $is_update === false){
+							$meta_key = sql_str('nickname');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_nickname);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+							$meta_key = sql_str('first_name');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_first_name);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+							$meta_key = sql_str('last_name');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_last_name);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+							$meta_key = sql_str('description');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_description);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+							$meta_key = sql_str('jabber');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_jabber);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+						}
+						$meta_key = sql_str('aim');
+						$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_aim);
+						if(!empty($ans)){
+							$ret_str .= $ans;
+							return $ret_str;
+						}
+						$meta_key = sql_str('yim');
+						$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_yim);
+						if(!empty($ans)){
+							$ret_str .= $ans;
+							return $ret_str;
+						}
+						if ($is_update === false ) {
+							$meta_key = sql_str('rich_editing');
+							$ans =xpress_usermeta_sync($mydirname, $user_ID,$meta_key,$user_rich_editing);
+							if(!empty($ans)){
+								$ret_str .= $ans;
+								return $ret_str;
+							}
+						}					
+					}
+				}
+			}
+			$ret_str .= "...END";
+			return $ret_str;
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'check_user_role_prefix' ) ) :
+	function check_user_role_prefix($mydirname){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();		
+		$db_xpress_usermeta = $xoopsDB->prefix($wp_prefix . 'usermeta');
+		$user_meta_prefix =$xoopsDB->prefix($wp_prefix);
+		
+		$sql = "SELECT * FROM $db_xpress_usermeta WHERE meta_key LIKE '%_" . $wp_prefix . "user_level' OR meta_key LIKE '%_" . $wp_prefix . "capabilities' OR meta_key LIKE '%_" . $wp_prefix . "autosave_draft_ids'";
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($result === false){
+			return -1;
+		}else{
+			$i=0;
+			while($row = $xoopsDB->fetchArray($result)){
+				$meta_key = $row['meta_key'];
+				if (strpos($meta_key,$user_meta_prefix) === false) {
+					$i++;
+				}
+			}
+			return $i;
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'same_metakey_delete' ) ) :
+	function same_metakey_delete($mydirname,$metakey){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();		
+		$db_xpress_usermeta = $xoopsDB->prefix($wp_prefix . 'usermeta');
+		$user_meta_prefix =$xoopsDB->prefix($wp_prefix);
+		
+		$sql = "DELETE FROM $db_xpress_usermeta WHERE meta_key LIKE '$metakey'";
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($result === false){
+			return false;
+		}else{
+			return true;
+		}
+	}
+//endif;
+
+//if( ! function_exists( 'repair_user_role_prefix' ) ) :
+	function repair_user_role_prefix($mydirname){
+		$wp_prefix = get_xpress_prefix($mydirname);
+		$xoopsDB =& Database::getInstance();		
+		$db_xpress_usermeta = $xoopsDB->prefix($wp_prefix . 'usermeta');
+		$user_meta_prefix =$xoopsDB->prefix($wp_prefix);
+		$ret = '';
+		
+		$sql = "SELECT * FROM $db_xpress_usermeta WHERE meta_key LIKE '%_" . $wp_prefix . "user_level' OR meta_key LIKE '%_" . $wp_prefix . "capabilities' OR meta_key LIKE '%_" . $wp_prefix . "autosave_draft_ids'";
+		$result =  $xoopsDB->queryF($sql, 0, 0);
+		if ($result === false){
+			return -1;
+		}else{
+			$i=0;
+			while($row = $xoopsDB->fetchArray($result)){
+				$meta_key = $row['meta_key'];
+				$umeta_id = $row['umeta_id'];
+				if (strpos($meta_key,$user_meta_prefix) === false) {
+					$new_meta_key = '';
+					if (strpos($meta_key,$wp_prefix.'user_level')){
+						$new_meta_key = $xoopsDB->prefix($wp_prefix . 'user_level');
+					}
+					
+					if (strpos($meta_key,$wp_prefix.'capabilities')){
+						$new_meta_key = $xoopsDB->prefix($wp_prefix . 'capabilities');
+					}
+					
+					if (strpos($meta_key,$wp_prefix.'autosave_draft_ids')){
+						$new_meta_key = $xoopsDB->prefix($wp_prefix . 'autosave_draft_ids');
+					}
+					
+					if (!empty($new_meta_key)){
+						same_metakey_delete($mydirname,$new_meta_key);
+
+						$repair_sql  = 	"UPDATE $db_xpress_usermeta ";
+						$repair_sql .= 	'SET ';
+						$repair_sql .=	"meta_key = '$new_meta_key' ";
+						$repair_sql .=	"WHERE (umeta_id = $umeta_id )";
+						$repair_res = $xoopsDB->queryF($repair_sql, 0, 0);
+						if ($repair_res === false){
+							$ret .= '...ERR(' . $meta_key . '->' . $new_meta_key . ')<br>';
+						} else {
+							$ret .= '...DO(' . $meta_key . '->' . $new_meta_key . ')<br>';
+						}
+					}
+				}
+			}
+		}
+		return $ret;
+	}
+//endif;		
+
+?>
Index: trunk/include/xoops_include.php
===================================================================
--- trunk/include/xoops_include.php	(revision 8)
+++ trunk/include/xoops_include.php	(revision 8)
@@ -0,0 +1,47 @@
+<?php
+/*
+ * XPressME - WordPress for XOOPS
+ *
+ * @copyright	XPressME Project http://www.toemon.com
+ * @license		http://www.fsf.org/copyleft/gpl.html GNU public license
+ * @author		toemon
+ * @package		module::xpress
+ */
+
+/* 
+ *	The module loads the XOOPS system only at the time of reading to route index.php. 
+ *
+ *	When "Media up-loading" is executed, WordPress calls the SWFUpload script. 
+ *	After completing up-loading
+ *	The SWFUpload script executes wp-admin/async-upload.php. 
+ *	At this time, session ID is not succeeded to. 
+ *	And, admin/async-upload.php becomes an access inhibit when wordpress is under the management of XOOPS. 
+ */
+
+function is_root_index_page_call(){
+	$xpress_root_index = basename(dirname(dirname( __FILE__ ))) . '/index.php';
+	$php_script_name = $_SERVER['SCRIPT_NAME'];
+	$php_query_string = $_SERVER['QUERY_STRING'];
+	if (strstr($php_script_name,$xpress_root_index) !== false) {
+		if (strstr($php_query_string,'preview') === false) return true; else return false;;
+	} else  {
+		return false;
+	}
+}
+
+function is_admin_page_call(){
+	$xpress_root_index = basename(dirname(dirname( __FILE__ ))) . '/wp-admin';
+	$php_script_name = $_SERVER['SCRIPT_NAME'];
+	if (strstr($php_script_name,$xpress_root_index) !== false) return true; else  return false;
+}
+
+if (is_admin_page_call()){
+	if ( !defined("XOOPS_ROOT_PATH") ) {	
+		define('_LEGACY_PREVENT_LOAD_CORE_', 1);		//Module process will not load any XOOPS Cube classes.
+		include_once dirname( __FILE__ ).'/../../../mainfile.php';
+	}
+} else {
+	// index page is load xoops
+	require dirname( __FILE__ ).'/../../../mainfile.php' ;
+}
+?>
Index: trunk/include/xpress_render.php
===================================================================
--- trunk/include/xpress_render.php	(revision 8)
+++ trunk/include/xpress_render.php	(revision 8)
@@ -0,0 +1,80 @@
+<?php
+
+//< style >< script >< link > tag is pulled out from the header of html contents. 
+function get_mod_header($contents)
+{
+	$pattern = "<head[^>]*?>(.*)<\/head>";
+	preg_match("/".$pattern."/s",  $contents, $head_matches);
+	$head_str = $head_matches[1];
+	
+	$pattern = "<style[^>]*?>(.*)<\/style>";
+	preg_match("/".$pattern."/s",  $head_str, $style_matches);
+	$style = $style_matches[0];
+ 
+	$pattern = "<link(.*)>";
+	preg_match_all("/".$pattern."/",  $head_str, $link_match,PREG_PATTERN_ORDER);
+	$links = $link_match[0];
+	$link_str ='';
+	foreach ( $links as $link){
+		ob_start();
+			echo $link . "\n";
+			
+			$link_str .= ob_get_contents();
+		ob_end_clean();
+	}
+	
+	$pattern = "<script[^>]*?>(.*)<\/script>";
+	preg_match_all("/".$pattern."/s",  $head_str, $script_match,PREG_PATTERN_ORDER);
+	$scripts = $script_match[0];
+	$script_str ='';
+	foreach ( $scripts as $script){		
+		if (($GLOBALS["xoopsModuleConfig"]['use_d3forum'] != 1) || (strpos($script,'function wpopen') ===false))
+			$script_str .= $script;
+	}
+	return $link_str."\n".$style . "\n" . $script_str ."\n";
+}
+
+// < body > tag is pulled out from the header of html contents. 
+function get_body($contents)
+{
+	$pattern = "<body[^>]*?>(.*)<\/body>";
+	preg_match("/".$pattern."/s",  $contents, $body_matches);
+	$body = $body_matches[1];
+	return $body;
+}
+
+//Making of module header
+function get_xpress_module_header($contents)
+{
+	global $xoopsTpl;
+	if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
+		$preload_make_module_header = $xoopsTpl->get_template_vars('xoops_module_header');
+	} else {
+		$preload_make_module_header = '';
+	}
+	
+	if (! empty($preload_make_module_header)){
+	$preload_make_module_header = '<!-- preload added module header -->
+' . $preload_make_module_header . '
+';
+	}
+	
+	$wp_module_header = '<!-- wordpress  added module header -->
+' . get_mod_header($contents) . '
+<!-- end of wordpress  added module header -->';
+	
+	return $preload_make_module_header . $wp_module_header;
+}
+
+//rendering for the module header and the body
+function xpress_render($contents){
+	global $xoopsTpl;
+	include XOOPS_ROOT_PATH."/header.php";
+	$page_title = $GLOBALS["xoopsModule"]->getVar("name")." ".wp_title('&raquo;', false);	
+	$xoopsTpl->assign('xoops_module_header', get_xpress_module_header($contents));
+	$xoopsTpl->assign('xoops_pagetitle', $page_title);
+	$xoopsTpl->assign('xpress_body_contents', get_body($contents));
+ 	echo get_body($contents);
+}
+
+?>
