Index: trunk/wp-content/plugins/xpressme/include/common_functions.php
===================================================================
--- trunk/wp-content/plugins/xpressme/include/common_functions.php	(revision 95)
+++ trunk/wp-content/plugins/xpressme/include/common_functions.php	(revision 95)
@@ -0,0 +1,77 @@
+<?php
+// xoops db
+function get_xpress_dir_path()
+{
+	return ABSPATH;
+}
+
+function get_xpress_dir_name()
+{
+	return basename(ABSPATH);
+}
+
+function get_wp_prefix_only()
+{
+	$dir_name = get_xpress_dir_name();
+	$prefix = $dir_name;
+	if ($prefix == 'wordpress') $prefix = 'wp';
+	
+	$prefix = $prefix . '_';
+	return $prefix;
+}
+
+function get_xoops_prefix()
+{
+	global $xoops_config;
+	$ret =$xoops_config->xoops_db_prefix . '_';
+	return $ret;
+}
+function get_wp_prefix()
+{
+	$prefix = get_xoops_prefix() . get_wp_prefix_only();
+	return $prefix;
+}
+
+function get_xpress_modid()
+{
+	global $xoops_db;
+	
+	$modulename = get_xpress_dir_name();	
+	$sql = "SELECT mid FROM " . get_xoops_prefix() . "modules WHERE dirname = '$modulename'";
+	$mid = $xoops_db->get_var($sql);
+	return $mid;	
+}
+
+function get_xpress_db_version()
+{
+	include get_xpress_dir_path() . '/wp-includes/version.php';
+	return $wp_db_version;
+}
+
+function block_cache_refresh()
+{
+	global $xoops_db;
+	$mid = get_xpress_modid();
+	$sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid";
+	$blocks = $xoops_db->get_results($sql);
+	$mydirname = get_xpress_dir_name();
+	require_once get_xpress_dir_path() . '/include/xpress_block_render.php';
+
+
+	foreach($blocks as $block){
+		$func_file = $block->func_file;
+		$call_theme_function_name = str_replace(".php", "", $func_file);
+		$inc_theme_file_name = str_replace(".php", "", $func_file) . '_theme.php';
+		$cache_title = str_replace(".php", "", $func_file);
+		$blockID = $block->bid;
+		$options = explode("|", $block->options);
+					
+		$block_theme_file = get_block_file_path($mydirname,$inc_theme_file_name);
+		require_once $block_theme_file;
+		$block_render = $call_theme_function_name($options);		//The block name and the called function name should be assumed to be the same name. 			
+		$xml['block'] = $block_render;
+		xpress_block_cache_write($mydirname,$cache_title. $blockID, $xml);
+	}
+}
+
+?>
Index: trunk/wp-content/plugins/xpressme/include/custom_functions.php
===================================================================
--- trunk/wp-content/plugins/xpressme/include/custom_functions.php	(revision 91)
+++ trunk/wp-content/plugins/xpressme/include/custom_functions.php	(revision 95)
@@ -148,71 +148,5 @@
     }
 }
-// xoops db
-function get_xpress_dir_path()
-{
-	return ABSPATH;
-}
-
-function get_xpress_dir_name()
-{
-	return basename(ABSPATH);
-}
-
-function get_wp_prefix_only()
-{
-	$dir_name = get_xpress_dir_name();
-	$prefix = $dir_name;
-	if ($prefix == 'wordpress') $prefix = 'wp';
-	
-	$prefix = $prefix . '_';
-	return $prefix;
-}
-
-function get_xoops_prefix()
-{
-	$ret =XOOPS_DB_PREFIX . '_';
-	return $ret;
-}
-function get_wp_prefix()
-{
-	$prefix = get_xoops_prefix() . get_wp_prefix_only();
-	return $prefix;
-}
-
-function get_xpress_modid()
-{
-	global $xoops_db;
-	
-	$modulename = get_xpress_dir_name();	
-	$sql = "SELECT mid FROM " . get_xoops_prefix() . "modules WHERE dirname = '$modulename'";
-	$mid = $xoops_db->get_var($sql);
-	return $mid;	
-}
-
-function block_cache_refresh()
-{
-	global $xoops_db;
-	$mid = get_xpress_modid();
-	$sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid";
-	$blocks = $xoops_db->get_results($sql);
-	$mydirname = get_xpress_dir_name();
-	require_once get_xpress_dir_path() . '/include/xpress_block_render.php';
-
-
-	foreach($blocks as $block){
-		$func_file = $block->func_file;
-		$call_theme_function_name = str_replace(".php", "", $func_file);
-		$inc_theme_file_name = str_replace(".php", "", $func_file) . '_theme.php';
-		$cache_title = str_replace(".php", "", $func_file);
-		$blockID = $block->bid;
-		$options = explode("|", $block->options);
-					
-		$block_theme_file = get_block_file_path($mydirname,$inc_theme_file_name);
-		require_once $block_theme_file;
-		$block_render = $call_theme_function_name($options);		//The block name and the called function name should be assumed to be the same name. 			
-		$xml['block'] = $block_render;
-		xpress_block_cache_write($mydirname,$cache_title. $blockID, $xml);
-	}
-}
+
 
 // views count
Index: trunk/wp-content/plugins/xpressme/include/notify_functions.php
===================================================================
--- trunk/wp-content/plugins/xpressme/include/notify_functions.php	(revision 91)
+++ trunk/wp-content/plugins/xpressme/include/notify_functions.php	(revision 95)
@@ -1,8 +1,7 @@
 <?php
-	
+
 function onaction_publish_post_notify($new_status, $old_status, $post)
 {
 	if ($new_status == 'publish'){
-		include_once dirname(__FILE__) . '/notification.inc.sub.php';
 		do_PostNotifications($post->ID,'newpost');
 	}
@@ -11,5 +10,4 @@
 function onaction_edit_post_notify($post_id)
 {
-	include_once ABSPATH . '/include/notification.inc.sub.php';
 	do_PostNotifications($post_id,'editpost');
 }
@@ -21,10 +19,7 @@
 
 	if ($status ==1){
-		include_once ABSPATH . '/include/notification.inc.sub.php';
 		do_CommentNotifications($commentID, $post_id);
 	} else {
-		require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
-		$notification_handler =& xoops_gethandler( 'notification' ) ;
-		$notification_handler->triggerEvent( 'global' , 0 , 'waiting') ;
+		do_CommentWaiting($commentID, $post_id);
 	}
 }
@@ -35,5 +30,4 @@
 	$status = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_ID = $commentID");
 	if(is_null($status)) return;
-	//	$status = wp_get_comment_status($commentID);
 	if ($status == 1){
 			onaction_comment_notify($commentID);
@@ -41,3 +35,146 @@
 }
 
+function Notification_triggerEvent($category, $item_id, $event, $extra_tags=array(), $user_list=array(), $omit_user_id=null)
+{
+	global $xoops_db,$xoops_config;
+	//When notifying by a private message, 
+	//it is evaded that the data base becomes read-only as a result of the check on the referrer and the method. 
+	if (is_wp_cron_page_call() ){
+		$_SERVER['HTTP_REFERER'] = 'http://'. $_SERVER[HTTP_HOST]  . $_SERVER['PHP_SELF'];
+		$_SERVER['REQUEST_METHOD'] = 'POST';
+	}
+	if (is_xmlrpc_call() ){
+		$_SERVER['HTTP_REFERER'] = 'http://'. $_SERVER[HTTP_HOST]  . $_SERVER['PHP_SELF'];
+		$_SERVER['REQUEST_METHOD'] = 'POST';
+	}
+	
+	include_once $xoops_config->xoops_mainfile_path;	// load XOOPS System
+	include_once $xoops_config->xoops_root_path . '/include/notification_functions.php' ;
+	$module_id = get_xpress_modid() ;
+	$notification_handler =& xoops_gethandler( 'notification' ) ;
+	$notification_handler->triggerEvent($category, $item_id, $event, $extra_tags, $user_list, $module_id, $omit_user_id);
+}
+
+function do_CommentWaiting($commentID, $comment_post_ID)
+{
+//	global $xoops_config;
+//	require_once $xoops_config->xoops_mainfile_path;
+//	xoops_mainfile_path;
+//	require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
+//	$notification_handler =& xoops_gethandler( 'notification' ) ;
+	Notification_triggerEvent( 'global' , 0 , 'waiting') ;
+}
+
+
+function do_CommentNotifications($commentID, $comment_post_ID)
+{
+	global $xoops_config , $xoops_db;
+
+	$xpress_prefix = get_wp_prefix() ;
+
+	$table_term_relationships = $xpress_prefix .'term_relationships';
+	$table_term_taxonomy = $xpress_prefix .'term_taxonomy';
+	$table_terms = $xpress_prefix .'terms';
+	$table_categories = $xpress_prefix .'categories';
+	$wp_post = $xpress_prefix .'posts';
+	$wp_options = $xpress_prefix .'options';
+	$wp_users  = $xpress_prefix .'users';
+	$wp_comments  = $xpress_prefix .'comments';
+	$post_id = $comment_post_ID;
+
+	$post_title = get_the_title($post_id);
+	$post_url = get_permalink($post_id). '#comment';
+	$blog_name = get_bloginfo('name');
+
+	// query
+	$sql = "SELECT post_author FROM ".$wp_post." WHERE ID=$comment_post_ID ";
+	$post_author = $xoops_db->get_var($sql);
+
+	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
+	$user_name = $xoops_db->get_var($sql);
+
+	$comment_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+	Notification_triggerEvent('global' , 0 , 'comment' , $comment_tags , false);
+	Notification_triggerEvent('author' , $post_author , 'comment' , $comment_tags , false);
+	Notification_triggerEvent('post' , $comment_post_ID , 'comment' , $comment_tags , false);
+
+	// categorie notification
+	if (get_xpress_db_version() < 6124){
+		$sql2 = "SELECT c.cat_ID, c.cat_name FROM ".$table_categories." c, ".$table_post2cat." p2c WHERE c.cat_ID = p2c.category_id AND p2c.post_id=".$comment_post_ID;
+	} else {
+		$sql2  = "SELECT $table_term_relationships.object_id, $table_terms.term_id AS cat_ID, $table_terms.name AS cat_name ";
+		$sql2 .= "FROM $table_term_relationships INNER JOIN ($table_term_taxonomy INNER JOIN $table_terms ON $table_term_taxonomy.term_id = $table_terms.term_id) ON $table_term_relationships.term_taxonomy_id = $table_term_taxonomy.term_taxonomy_id ";
+		$sql2 .= "WHERE ($table_term_relationships.object_id =" . $comment_post_ID.") AND ($table_term_taxonomy.taxonomy='category')";		
+	}
+	$categories = $xoops_db->get_results($sql);
+	foreach($categories as $categorie){
+		$cat_id = $categorie->cat_ID;
+		$cat_name = $categorie->cat_name;
+		$comment_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_CAT_TITLE' => $cat_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+		Notification_triggerEvent('category' , $cat_id , 'comment' , $comment_tags , false);
+
+	}
+}
+
+function do_PostNotifications($post_id,$not_event)
+{
+	global $xoops_config, $xoops_db;
+	xpress_debug();
+	
+
+
+	 // $not_event:		newpost,editpost ; $commentID, $comment_post_ID)
+	 
+	$xpress_prefix = get_wp_prefix() ;
+
+	$table_term_relationships = $xpress_prefix .'term_relationships';
+	$table_term_taxonomy = $xpress_prefix .'term_taxonomy';
+	$table_terms = $xpress_prefix .'terms';
+	$table_categories = $xpress_prefix .'categories';
+	$wp_post = $xpress_prefix .'posts';
+	$wp_options = $xpress_prefix .'options';
+	$wp_users  = $xpress_prefix .'users';
+	$wp_comments  = $xpress_prefix .'comments';
+
+	$post_title = get_the_title($post_id);
+	$post_url = get_permalink($post_id). '#comment';
+	$blog_name = get_bloginfo('name');
+
+	// query
+	$sql = "SELECT post_author FROM ".$wp_post." WHERE ID=$post_id ";
+	$post_author = $xoops_db->get_var($sql);
+
+	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
+	$user_name = $xoops_db->get_var($sql);
+
+	$posts_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+
+	switch ($not_event) {
+		case 'newpost' :
+			Notification_triggerEvent('global' , 0 , 'newpost' , $posts_tags , false);
+			Notification_triggerEvent('author' , $post_author , 'newpost' , $posts_tags , false);
+
+			// categorie notification
+			if (get_xpress_db_version() < 6124){
+				$sql2 = "SELECT c.cat_ID, c.cat_name FROM ".$table_categories." c, ".$table_post2cat." p2c WHERE c.cat_ID = p2c.category_id AND p2c.post_id=".$post_id;
+			} else {
+				$sql2  = "SELECT $table_term_relationships.object_id, $table_terms.term_id AS cat_ID, $table_terms.name AS cat_name ";
+				$sql2 .= "FROM $table_term_relationships INNER JOIN ($table_term_taxonomy INNER JOIN $table_terms ON $table_term_taxonomy.term_id = $table_terms.term_id) ON $table_term_relationships.term_taxonomy_id = $table_term_taxonomy.term_taxonomy_id ";
+				$sql2 .= "WHERE ($table_term_relationships.object_id =" . $post_id.") AND ($table_term_taxonomy.taxonomy='category')";		
+			}
+			$categories = $xoops_db->get_results($sql);
+			foreach($categories as $categorie){
+				$cat_id = $categorie->cat_ID;
+				$cat_name = $categorie->cat_name;
+				$posts_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_CAT_TITLE' => $cat_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+				Notification_triggerEvent('category' , $cat_id , 'newpost' , $posts_tags , false);
+			}
+			break;
+		case 'editpost' :
+			Notification_triggerEvent('post' , $post_id , 'editpost' , $posts_tags , false);
+			break;
+		default :
+	}
+}		
+
 ?>
Index: trunk/wp-content/plugins/xpressme/include/user_sync_xoops.php
===================================================================
--- trunk/wp-content/plugins/xpressme/include/user_sync_xoops.php	(revision 91)
+++ trunk/wp-content/plugins/xpressme/include/user_sync_xoops.php	(revision 95)
@@ -43,10 +43,11 @@
 	$db_groups_users_link = get_xoops_prefix() . 'groups_users_link';
 	$db_group_role = get_wp_prefix() . 'group_role';
+	$db_groups = get_xoops_prefix() . 'groups';
 	
 	$sql  = "SELECT * ";
 	$sql .= "FROM $db_groups_users_link ";
 	$sql .= "LEFT JOIN $db_group_role ON $db_groups_users_link.groupid = $db_group_role.groupid ";
+	$sql .= "LEFT JOIN $db_groups ON $db_groups_users_link.groupid = $db_groups.groupid ";
 	$sql .= "WHERE  uid = $uid";
-
 	$user_groups = $xoops_db->get_results($sql);
 	$ans['capabillities'] = '';
@@ -54,5 +55,11 @@
 	
 	foreach($user_groups as $user_group){
+		if ($user_group->group_type == 'Admin'){
+			$ans['capabillities'] = 'administrator';
+			$ans['allway_update'] = 0;
+			break;
+		}
 		$before_level = get_role_level($ans['capabillities']);
+		
 		$now_level = get_role_level($user_group->role);
 		if ($now_level > $before_level){
@@ -80,99 +87,96 @@
 function user_sync_to_wordpress($sync_uid = 0, &$message){
 	global $xoops_db;
-	global $xoopsModule;
-
-	if( is_object($xoopsModule)) {
-		$db_xoops_users = get_xoops_prefix() . 'users';
-		$db_xpress_users = get_wp_prefix() . 'users';
-
-		$message = '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";
+
+	$db_xoops_users = get_xoops_prefix() . 'users';
+	$db_xpress_users = get_wp_prefix() . 'users';
+
+	$message = '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";
+	}
+
+	$xoops_users = $xoops_db->get_results($xu_sql);
+	if (empty($xoops_users)){
+		$message .= '...ERR ('. $xu_sql . ')';
+		return false;
+	}
+
+	foreach($xoops_users as $xoops_user){
+		$role = get_xoops_group_role($xoops_user->uid);
+		$capabillities_name = $role['capabillities'];
+		$allway_update = $role['allway_update'];
+		if (empty($capabillities_name)){
+				$message .= "...PASS '" . $xoops_user->uname ."'[uid=".$xoops_user->uid ."](not xpress user)";
+			if ($sync_uid != 0){
+				$message .= '...NOT XPRESS USER ' . $xoops_user->uname;
+				return false;
+			}
 		} else {
-			$xu_sql  = "SELECT uid ,name ,uname ,pass ,email, url, user_regdate, user_aim, user_yim FROM $db_xoops_users WHERE uid = $sync_uid";
-		}
-
-		$xoops_users = $xoops_db->get_results($xu_sql);
-		if (empty($xoops_users)){
-			$message .= '...ERR ('. $xu_sql . ')';
-			return false;
-		}
-
-		foreach($xoops_users as $xoops_user){
-			$role = get_xoops_group_role($xoops_user->uid);
-			$capabillities_name = $role['capabillities'];
-			$allway_update = $role['allway_update'];
-			if (empty($capabillities_name)){
-					$message .= "...PASS '" . $xoops_user->uname ."'[uid=".$xoops_user->uid ."](not xpress user)";
-				if ($sync_uid != 0){
-					$message .= '...NOT XPRESS USER ' . $xoops_user->uname;
-					return false;
+			$user_regist_time = date('Y-m-d H:i:s' , $xoops_user->user_regdate);
+			$user_status = 0;
+			$user_display_name =empty($xoops_user->name) ? $xoops_user->uname :$xoops_user->name ;
+
+			$is_update = false;
+			
+			$wp_user_id = get_wp_user_id($xoops_user->uname) ;
+			if ($wp_user_id){
+				$wu_sql  = 	"UPDATE $db_xpress_users ";
+				$wu_sql .= 	'SET ';
+				$wu_sql .=		"user_pass  = '$xoops_user->pass', ";
+				$wu_sql .=		"user_email = '$xoops_user->email', ";
+				$wu_sql .=		"user_url = '$xoops_user->url', ";
+				$wu_sql .=		"user_nicename = '$xoops_user->uname', ";
+				$wu_sql .=		"user_registered = '$user_regist_time', ";
+				$wu_sql .=		"user_status = 0 ";
+				$wu_sql .=	"WHERE (user_login = '$xoops_user->uname' )";
+
+				$xoops_db->query($wu_sql);
+				if ($allway_update){
+					$sycc_user = new WP_User($wp_user_id);
+					$sycc_user->set_role($capabillities_name);
+					$message .= '...UPDATE ' . $user_login_name . '(' . $capabillities_name . ')';
+
+				} else {
+					$message .= '...UPDATE ' . $user_login_name . '(Level Not Change)';
 				}
-			} else {
-				$user_regist_time = date('Y-m-d H:i:s' , $xoops_user->user_regdate);
-				$user_status = 0;
-				$user_display_name =empty($xoops_user->name) ? $xoops_user->uname :$xoops_user->name ;
-
-				$is_update = false;
-				
-				$wp_user_id = get_wp_user_id($xoops_user->uname) ;
-				if ($wp_user_id){
-					$wu_sql  = 	"UPDATE $db_xpress_users ";
-					$wu_sql .= 	'SET ';
-					$wu_sql .=		"user_pass  = '$xoops_user->pass', ";
-					$wu_sql .=		"user_email = '$xoops_user->email', ";
-					$wu_sql .=		"user_url = '$xoops_user->url', ";
-					$wu_sql .=		"user_nicename = '$xoops_user->uname', ";
-					$wu_sql .=		"user_registered = '$user_regist_time', ";
-					$wu_sql .=		"user_status = 0 ";
-					$wu_sql .=	"WHERE (user_login = '$xoops_user->uname' )";
-
-					$xoops_db->query($wu_sql);
-					if ($allway_update){
-						$sycc_user = new WP_User($wp_user_id);
-						$sycc_user->set_role($capabillities_name);
-						$message .= '...UPDATE ' . $user_login_name . '(' . $capabillities_name . ')';
-
-					} else {
-						$message .= '...UPDATE ' . $user_login_name . '(Level Not Change)';
-					}
-				}else{
-					$wu_sql  =	"INSERT INTO $db_xpress_users ";
-					$wu_sql .=  	"(user_login , user_pass ,user_email , user_url , user_nicename " ;
-					$wu_sql .=		" , user_registered , user_status , display_name) ";
-					$wu_sql .=	"VALUES ";
-					$wu_sql .=		"('$xoops_user->uname', '$xoops_user->pass', '$xoops_user->email', '$xoops_user->url', '$xoops_user->uname' ";
-					$wu_sql .=		" , '$user_regist_time', $user_status, '$user_display_name')";
-					$xoops_db->query($wu_sql);
+			}else{
+				$wu_sql  =	"INSERT INTO $db_xpress_users ";
+				$wu_sql .=  	"(user_login , user_pass ,user_email , user_url , user_nicename " ;
+				$wu_sql .=		" , user_registered , user_status , display_name) ";
+				$wu_sql .=	"VALUES ";
+				$wu_sql .=		"('$xoops_user->uname', '$xoops_user->pass', '$xoops_user->email', '$xoops_user->url', '$xoops_user->uname' ";
+				$wu_sql .=		" , '$user_regist_time', $user_status, '$user_display_name')";
+				$xoops_db->query($wu_sql);
 //					$wp_user_id = get_wp_user_id($user_login_name) ;					
- 					$wp_user_id = mysql_insert_id();
-					$sycc_user = new WP_User($wp_user_id);
-					$sycc_user->set_role($capabillities_name);						
-					$message .= '...INSERT ' . $user_login_name . '(' . $capabillities_name . ')';
-				}
-				
-				$user_nickname =	empty($xoops_user->name) ? $xoops_user->uname :$xoops_user->name ;
-				$user_rich_editing = 'true';
-				$user_first_name = 	$xoops_user->uname;
-				$user_last_name = 	'';
-				$user_description = '';
-				$user_jabber = 		'';
-
-				update_usermeta( $wp_user_id,'nickname',$user_nickname);
-				update_usermeta( $wp_user_id,'first_name',$user_first_name);
-				update_usermeta( $wp_user_id,'last_name',$user_last_name);
-				update_usermeta( $wp_user_id,'description',$user_description);
-				update_usermeta( $wp_user_id,'jabber',$user_jabber);
-				update_usermeta( $wp_user_id,'aim',$xoops_user->user_aim);
-				update_usermeta( $wp_user_id,'yim',$xoops_user->user_yim);
-				if ($is_update === false ) {
-					update_usermeta( $wp_user_id,'rich_editing',$user_rich_editing);
-				}			
-			}
-		}
-		$message .= "...END";
-		return true;
-	}
+				$wp_user_id = mysql_insert_id();
+				$sycc_user = new WP_User($wp_user_id);
+				$sycc_user->set_role($capabillities_name);						
+				$message .= '...INSERT ' . $user_login_name . '(' . $capabillities_name . ')';
+			}
+			
+			$user_nickname =	empty($xoops_user->name) ? $xoops_user->uname :$xoops_user->name ;
+			$user_rich_editing = 'true';
+			$user_first_name = 	$xoops_user->uname;
+			$user_last_name = 	'';
+			$user_description = '';
+			$user_jabber = 		'';
+
+			update_usermeta( $wp_user_id,'nickname',$user_nickname);
+			update_usermeta( $wp_user_id,'first_name',$user_first_name);
+			update_usermeta( $wp_user_id,'last_name',$user_last_name);
+			update_usermeta( $wp_user_id,'description',$user_description);
+			update_usermeta( $wp_user_id,'jabber',$user_jabber);
+			update_usermeta( $wp_user_id,'aim',$xoops_user->user_aim);
+			update_usermeta( $wp_user_id,'yim',$xoops_user->user_yim);
+			if ($is_update === false ) {
+				update_usermeta( $wp_user_id,'rich_editing',$user_rich_editing);
+			}			
+		}
+	}
+	$message .= "...END";
+	return true;
 }
 
Index: trunk/wp-content/plugins/xpressme/include/xpress_common_functions.php
===================================================================
--- trunk/wp-content/plugins/xpressme/include/xpress_common_functions.php	(revision 95)
+++ trunk/wp-content/plugins/xpressme/include/xpress_common_functions.php	(revision 95)
@@ -0,0 +1,77 @@
+<?php
+// xoops db
+function get_xpress_dir_path()
+{
+	return ABSPATH;
+}
+
+function get_xpress_dir_name()
+{
+	return basename(ABSPATH);
+}
+
+function get_wp_prefix_only()
+{
+	$dir_name = get_xpress_dir_name();
+	$prefix = $dir_name;
+	if ($prefix == 'wordpress') $prefix = 'wp';
+	
+	$prefix = $prefix . '_';
+	return $prefix;
+}
+
+function get_xoops_prefix()
+{
+	global $xoops_config;
+	$ret =$xoops_config->xoops_db_prefix . '_';
+	return $ret;
+}
+function get_wp_prefix()
+{
+	$prefix = get_xoops_prefix() . get_wp_prefix_only();
+	return $prefix;
+}
+
+function get_xpress_modid()
+{
+	global $xoops_db;
+	
+	$modulename = get_xpress_dir_name();	
+	$sql = "SELECT mid FROM " . get_xoops_prefix() . "modules WHERE dirname = '$modulename'";
+	$mid = $xoops_db->get_var($sql);
+	return $mid;	
+}
+
+function get_xpress_db_version()
+{
+	include get_xpress_dir_path() . '/wp-includes/version.php';
+	return $wp_db_version;
+}
+
+function block_cache_refresh()
+{
+	global $xoops_db;
+	$mid = get_xpress_modid();
+	$sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid";
+	$blocks = $xoops_db->get_results($sql);
+	$mydirname = get_xpress_dir_name();
+	require_once get_xpress_dir_path() . '/include/xpress_block_render.php';
+
+
+	foreach($blocks as $block){
+		$func_file = $block->func_file;
+		$call_theme_function_name = str_replace(".php", "", $func_file);
+		$inc_theme_file_name = str_replace(".php", "", $func_file) . '_theme.php';
+		$cache_title = str_replace(".php", "", $func_file);
+		$blockID = $block->bid;
+		$options = explode("|", $block->options);
+					
+		$block_theme_file = get_block_file_path($mydirname,$inc_theme_file_name);
+		require_once $block_theme_file;
+		$block_render = $call_theme_function_name($options);		//The block name and the called function name should be assumed to be the same name. 			
+		$xml['block'] = $block_render;
+		xpress_block_cache_write($mydirname,$cache_title. $blockID, $xml);
+	}
+}
+
+?>
Index: trunk/wp-content/plugins/xpressme/xpressme.php
===================================================================
--- trunk/wp-content/plugins/xpressme/xpressme.php	(revision 91)
+++ trunk/wp-content/plugins/xpressme/xpressme.php	(revision 95)
@@ -10,5 +10,6 @@
 require_once('xpressme_class.php');
 
-require_once dirname( __FILE__ ).'/include/custom_functions.php' ;
+require_once dirname( __FILE__ ).'/include/custom_functions.php' ;		// XPressME functions for themes
+require_once dirname( __FILE__ ).'/include/xpress_common_functions.php' ;
 
 $xoops_db = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
@@ -55,4 +56,3 @@
 add_action('admin_footer', array(&$XPressME, 'displayDebugLog'));
 add_action('get_footer', array(&$XPressME, 'displayDebugLog'));
-
 ?>
Index: trunk/wp-content/plugins/xpressme/xpressme_class.php
===================================================================
--- trunk/wp-content/plugins/xpressme/xpressme_class.php	(revision 91)
+++ trunk/wp-content/plugins/xpressme/xpressme_class.php	(revision 95)
@@ -120,6 +120,6 @@
 			$insert_sql .= "'" . $groupe->description . "' , ";
 			$insert_sql .= "'" . $groupe->group_type . "' , ";
-			$insert_sql .= "'" . $role . "' , ";
-			$insert_sql .= $login_all . ")";
+			$insert_sql .= "'" . $role . "' , '";
+			$insert_sql .= $login_all . "')";
 			$xoops_db->query($insert_sql);
 		}
@@ -331,14 +331,10 @@
 	function xpress_upload_filter($uploads)
 	{
+		global $xoops_config;
 		if ($this->is_use_xoops_upload_path){
-			if (!defined("XOOPS_UPLOAD_PATH"))
-				define("XOOPS_UPLOAD_PATH", XOOPS_ROOT_PATH."/uploads");
-			if (!defined("XOOPS_UPLOAD_URL"))
-				define("XOOPS_UPLOAD_URL", XOOPS_URL."/uploads");
-
 			$wordpress_dir = ABSPATH ;
-			$xoops_dir = XOOPS_UPLOAD_PATH . '/';
+			$xoops_dir = $xoops_config->xoops_upload_path . '/';
 			$wordpress_base_url = get_option( 'siteurl' );
-			$xoops_upload_url = XOOPS_UPLOAD_URL;
+			$xoops_upload_url = $xoops_config->xoops_upload_url;
 			
 			$uploads[path] =  str_replace ($wordpress_dir, $xoops_dir, $uploads[path]);
@@ -355,4 +351,5 @@
 		global $current_user;
 
+		if (!is_object($current_user)) return false;
 		if ($this->is_sql_debug && ($current_user->user_level >= 10))
 			return true;
@@ -377,5 +374,4 @@
 			$content .= '<meta http-equiv="content-language" content="'._LANGCODE.'" />' ;
 			$content .= '<title>XPressME SQL DEBUG</title>' ;
-			$content .= '<link rel="stylesheet" type="text/css" media="all" href="'.getcss($GLOBALS['xoopsConfig']['theme_set']).'" />';
 			$content .= '</head><body>';
 			$content .= $GLOBALS['XPress_SQL_Query'];
Index: trunk/wp-content/themes/xpress_default/blocks/recent_comments_block_theme.php
===================================================================
--- trunk/wp-content/themes/xpress_default/blocks/recent_comments_block_theme.php	(revision 91)
+++ trunk/wp-content/themes/xpress_default/blocks/recent_comments_block_theme.php	(revision 95)
@@ -1,4 +1,4 @@
 <?php
-if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
+//if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
 
 function recent_comments_block($options)
@@ -9,6 +9,6 @@
 	$selected = array_slice($options,3); // get allowed cats
 	$this_template = empty( $options[4] ) ? 'db:'.$mydirname.'_block_comments.html' : trim( $options[4] );
-	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
-	
+//	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+	$mydirpath = get_xpress_dir_path();
 	$this_url = '/modules/'. $mydirname;
 	$call_url = $_SERVER['REQUEST_URI'];
Index: trunk/wp-content/themes/xpress_default/blocks/recent_posts_content_block_theme.php
===================================================================
--- trunk/wp-content/themes/xpress_default/blocks/recent_posts_content_block_theme.php	(revision 91)
+++ trunk/wp-content/themes/xpress_default/blocks/recent_posts_content_block_theme.php	(revision 95)
@@ -1,4 +1,4 @@
 <?php
-if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
+//if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
 
 function recent_posts_content_block($options)
@@ -11,5 +11,6 @@
     $selected = array_slice($options,5); // get allowed cats
 	$this_template = empty( $options[6] ) ? 'db:'.$mydirname.'_block_content.html' : trim( $options[6] );
-	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+//	$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+	$mydirpath = get_xpress_dir_path();
 	
 	$this_url = '/modules/'. $mydirname;
