Index: /trunk/include/config_from_xoops.class.php
===================================================================
--- /trunk/include/config_from_xoops.class.php	(revision 94)
+++ /trunk/include/config_from_xoops.class.php	(revision 95)
@@ -26,8 +26,13 @@
 	var $module_path;
 	var $module_url;
+	var $module_db_prefix;
+	var $xoops_upload_path;
+	var $xoops_upload_url;
+	
 	
 	function __constructor()	//for PHP5
     {
         $this->ConfigFromXoops();
+       
     }
 
@@ -89,4 +94,14 @@
 			}
 		}
+		
+		//  define from /settings/definition.inc.php (XCL)  or /include/common.php(2016a-JP)
+		$this->xoops_upload_path = $this->xoops_root_path .'/uploads';
+		$this->xoops_upload_url = $this->xoops_url . '/uploads';
+		
+		if ($this->module_name == 'wordpress')
+			$this->module_db_prefix =  $this->xoops_db_prefix  . '_wp_';
+		else
+			$this->module_db_prefix =  $this->xoops_db_prefix  . '_' . $this->module_name . '_';
+		
     }
     
Index: unk/include/include_xoops_define.php
===================================================================
--- /trunk/include/include_xoops_define.php	(revision 94)
+++ 	(revision )
@@ -1,44 +1,0 @@
-<?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. 
- */
-
-require_once dirname( __FILE__ ).'/specfic_on_call_page.php' ;
-
-
-if (is_wp_cron_call() ){
-	$_SERVER['HTTP_REFERER'] = 'http://'. $_SERVER[HTTP_HOST]  . $_SERVER['PHP_SELF'];
-	$_SERVER['REQUEST_METHOD'] = 'POST';
-}
-
-if (is_media_upload_page_call() ){
-	if ( !defined("XOOPS_ROOT_PATH") ) {
-		//Module process will not load any XOOPS Cube classes.
-		define('_LEGACY_PREVENT_EXEC_COMMON_', 1);		// for XCL
-		$xoopsOption['nocommon'] = 1;					// for XOOPS
-		include_once dirname( __FILE__ ).'/../../../mainfile.php';
-	}
-	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");
-} else {
-	// index page is load xoops
-	require dirname( __FILE__ ).'/../../../mainfile.php' ;
-}
-?>
Index: /trunk/include/notification.inc.php
===================================================================
--- /trunk/include/notification.inc.php	(revision 94)
+++ /trunk/include/notification.inc.php	(revision 95)
@@ -1,12 +1,6 @@
 <?php
-
-function xpress_notify_info( $category , $item_id )
+function xpress_notify( $category , $item_id )
 {
-	$db =& Database::getInstance() ;
 	$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
-
-
-//	$module_handler =& xoops_gethandler( 'module' ) ;
-//	$module =& $module_handler->getByDirname( $mydirname ) ;
 
 	if( $category == 'global' ) {
Index: unk/include/notification.inc.sub.php
===================================================================
--- /trunk/include/notification.inc.sub.php	(revision 94)
+++ 	(revision )
@@ -1,146 +1,0 @@
-<?php
-function do_CommentNotifications($commentID, $comment_post_ID)
-{
-	$xpress_prefix = $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
-	if ($xpress_prefix == 'wordpress') $xpress_prefix = 'wp';
-	$db =& Database::getInstance() ;
-	$myts =& MyTextsanitizer::getInstance() ;
-
-	$table_term_relationships = $db->prefix($xpress_prefix."_term_relationships");
-	$table_term_taxonomy = $db->prefix($xpress_prefix."_term_taxonomy");
-	$table_terms = $db->prefix($xpress_prefix."_terms");
-	$table_categories = $db->prefix($xpress_prefix."_categories");
-	$wp_post = $db->prefix($xpress_prefix."_posts");
-	$wp_options = $db->prefix($xpress_prefix."_options");
-	$wp_users  = $db->prefix($xpress_prefix."_users");
-	$wp_comments  = $db->prefix($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');
-
-	/*
-	$sql = "SELECT option_value  FROM $wp_options WHERE option_name ='blogname'";
-	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
-	if( empty( $blog_row ) ) return false;
-	$blog_name = $blog_row['option_value'];
-	*/								
-	// query
-	$sql = "SELECT * FROM ".$wp_post." WHERE ID=$comment_post_ID ";
-	$post_row = $db->fetchArray( $db->query( $sql ) ) ;
-	if( empty( $post_row ) ) return false;
-	//			$post_title = $post_row['post_title'];
-	$post_author = $post_row['post_author'];
-
-	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
-	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
-	if( empty( $blog_row ) ) return false;
-	$user_name = $blog_row['display_name'];
-
-	require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
-	// non-module integration returns false quickly
-	
-	if( ! is_object($GLOBALS["xoopsModule"]) ) return false ;
-	$not_modid = $GLOBALS["xoopsModule"]->getVar('mid') ;
-
-	$comment_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
-	$notification_handler =& xoops_gethandler( 'notification' ) ;
-	$notification_handler->triggerEvent( 'global' , 0 , 'comment' , $comment_tags , false , $not_modid ) ;
-	$notification_handler->triggerEvent( 'author' , $post_author , 'comment' , $comment_tags , false , $not_modid ) ;
-	$notification_handler->triggerEvent( 'post' , $comment_post_ID , 'comment' , $comment_tags , false , $not_modid ) ;
-
-	// categorie notification
-	include(XOOPS_ROOT_PATH . '/modules/'.$mydirname . '/wp-includes/version.php');
-	if ($wp_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')";		
-	}
-	$res2 = $db->query($sql2);
-	while($row2 = $db->fetchArray($res2)){
-		$cat_id = $row2['cat_ID'];
-		$cat_name = $row2['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_handler->triggerEvent( 'category' , $cat_id , 'comment' , $comment_tags , false , $not_modid ) ;
-	}
-}
-
-function do_PostNotifications($post_id,$not_event)
-{
-	 // $not_event:		newpost,editpost ; $commentID, $comment_post_ID)
-	 
-	$xpress_prefix = $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
-	if ($xpress_prefix == 'wordpress') $xpress_prefix = 'wp';
-	$db =& Database::getInstance() ;
-	$myts =& MyTextsanitizer::getInstance() ;
-
-	$table_term_relationships = $db->prefix($xpress_prefix."_term_relationships");
-	$table_term_taxonomy = $db->prefix($xpress_prefix."_term_taxonomy");
-	$table_terms = $db->prefix($xpress_prefix."_terms");
-	$table_categories = $db->prefix($xpress_prefix."_categories");
-	$wp_post = $db->prefix($xpress_prefix."_posts");
-	$wp_options = $db->prefix($xpress_prefix."_options");
-	$wp_users  = $db->prefix($xpress_prefix."_users");
-	$wp_comments  = $db->prefix($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 * FROM ".$wp_post." WHERE ID=$post_id ";
-	$post_row = $db->fetchArray( $db->query( $sql ) ) ;
-	if( empty( $post_row ) ) return false;
-	//			$post_title = $post_row['post_title'];
-	$post_author = $post_row['post_author'];
-
-	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
-	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
-	if( empty( $blog_row ) ) return false;
-	$user_name = $blog_row['display_name'];
-
-	require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
-	// non-module integration returns false quickly
-	
-	if( ! is_object($GLOBALS["xoopsModule"]) ) return false ;
-	$not_modid = $GLOBALS["xoopsModule"]->getVar('mid') ;
-
-	$posts_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
-
-	$notification_handler =& xoops_gethandler( 'notification' ) ;	
-	switch ($not_event) {
-		case 'newpost' :
-			$notification_handler->triggerEvent( 'global' , 0 , 'newpost' , $posts_tags , false , $not_modid ) ;
-			$notification_handler->triggerEvent( 'author' , $post_author , 'newpost' , $posts_tags , false , $not_modid ) ;
-
-			// categorie notification
-			include(XOOPS_ROOT_PATH . '/modules/'.$mydirname . '/wp-includes/version.php');
-			if ($wp_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')";		
-			}
-			$res2 = $db->query($sql2);
-			while($row2 = $db->fetchArray($res2)){
-				$cat_id = $row2['cat_ID'];
-				$cat_name = $row2['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_handler->triggerEvent( 'category' , $cat_id , 'newpost' , $posts_tags , false , $not_modid ) ;
-			}
-			break;
-		case 'editpost' :
-			$notification_handler->triggerEvent( 'post' , $post_id , 'editpost' , $posts_tags , false , $not_modid ) ;
-			break;
-		default :
-	}
-}		
-
-
-
-	
-?>
Index: /trunk/include/notification.inc.sub.php.delete
===================================================================
--- /trunk/include/notification.inc.sub.php.delete	(revision 95)
+++ /trunk/include/notification.inc.sub.php.delete	(revision 95)
@@ -0,0 +1,153 @@
+<?php
+function Notification_triggerEvent($category, $item_id, $event, $extra_tags=array(), $user_list=array(), $omit_user_id=null)
+{
+	if( ! is_object($GLOBALS["xoopsModule"]) ) return false ;
+	$module_id = $GLOBALS["xoopsModule"]->getVar('mid') ;
+	$notification_handler =& xoops_gethandler( 'notification' ) ;
+	$notification_handler->triggerEvent($category, $item_id, $event, $extra_tags, $user_list, $module_id, $omit_user_id)
+}
+function do_CommentNotifications($commentID, $comment_post_ID)
+{
+	$xpress_prefix = $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+	if ($xpress_prefix == 'wordpress') $xpress_prefix = 'wp';
+	$db =& Database::getInstance() ;
+	$myts =& MyTextsanitizer::getInstance() ;
+
+	$table_term_relationships = $db->prefix($xpress_prefix."_term_relationships");
+	$table_term_taxonomy = $db->prefix($xpress_prefix."_term_taxonomy");
+	$table_terms = $db->prefix($xpress_prefix."_terms");
+	$table_categories = $db->prefix($xpress_prefix."_categories");
+	$wp_post = $db->prefix($xpress_prefix."_posts");
+	$wp_options = $db->prefix($xpress_prefix."_options");
+	$wp_users  = $db->prefix($xpress_prefix."_users");
+	$wp_comments  = $db->prefix($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');
+
+	/*
+	$sql = "SELECT option_value  FROM $wp_options WHERE option_name ='blogname'";
+	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
+	if( empty( $blog_row ) ) return false;
+	$blog_name = $blog_row['option_value'];
+	*/								
+	// query
+	$sql = "SELECT * FROM ".$wp_post." WHERE ID=$comment_post_ID ";
+	$post_row = $db->fetchArray( $db->query( $sql ) ) ;
+	if( empty( $post_row ) ) return false;
+	//			$post_title = $post_row['post_title'];
+	$post_author = $post_row['post_author'];
+
+	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
+	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
+	if( empty( $blog_row ) ) return false;
+	$user_name = $blog_row['display_name'];
+
+	require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
+	// non-module integration returns false quickly
+	
+	if( ! is_object($GLOBALS["xoopsModule"]) ) return false ;
+	$not_modid = $GLOBALS["xoopsModule"]->getVar('mid') ;
+
+	$comment_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+	$notification_handler =& xoops_gethandler( 'notification' ) ;
+	$notification_handler->triggerEvent( 'global' , 0 , 'comment' , $comment_tags , false , $not_modid ) ;
+	$notification_handler->triggerEvent( 'author' , $post_author , 'comment' , $comment_tags , false , $not_modid ) ;
+	$notification_handler->triggerEvent( 'post' , $comment_post_ID , 'comment' , $comment_tags , false , $not_modid ) ;
+
+	// categorie notification
+	include(XOOPS_ROOT_PATH . '/modules/'.$mydirname . '/wp-includes/version.php');
+	if ($wp_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')";		
+	}
+	$res2 = $db->query($sql2);
+	while($row2 = $db->fetchArray($res2)){
+		$cat_id = $row2['cat_ID'];
+		$cat_name = $row2['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_handler->triggerEvent( 'category' , $cat_id , 'comment' , $comment_tags , false , $not_modid ) ;
+	}
+}
+
+function do_PostNotifications($post_id,$not_event)
+{
+	 // $not_event:		newpost,editpost ; $commentID, $comment_post_ID)
+	 
+	$xpress_prefix = $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+	if ($xpress_prefix == 'wordpress') $xpress_prefix = 'wp';
+	$db =& Database::getInstance() ;
+	$myts =& MyTextsanitizer::getInstance() ;
+
+	$table_term_relationships = $db->prefix($xpress_prefix."_term_relationships");
+	$table_term_taxonomy = $db->prefix($xpress_prefix."_term_taxonomy");
+	$table_terms = $db->prefix($xpress_prefix."_terms");
+	$table_categories = $db->prefix($xpress_prefix."_categories");
+	$wp_post = $db->prefix($xpress_prefix."_posts");
+	$wp_options = $db->prefix($xpress_prefix."_options");
+	$wp_users  = $db->prefix($xpress_prefix."_users");
+	$wp_comments  = $db->prefix($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 * FROM ".$wp_post." WHERE ID=$post_id ";
+	$post_row = $db->fetchArray( $db->query( $sql ) ) ;
+	if( empty( $post_row ) ) return false;
+	//			$post_title = $post_row['post_title'];
+	$post_author = $post_row['post_author'];
+
+	$sql = "SELECT display_name  FROM $wp_users WHERE ID ='$post_author'";
+	$blog_row = $db->fetchArray( $db->query( $sql ) ) ;
+	if( empty( $blog_row ) ) return false;
+	$user_name = $blog_row['display_name'];
+
+	require_once XOOPS_ROOT_PATH . '/include/notification_functions.php' ;
+	// non-module integration returns false quickly
+	
+	if( ! is_object($GLOBALS["xoopsModule"]) ) return false ;
+	$not_modid = $GLOBALS["xoopsModule"]->getVar('mid') ;
+	
+	$posts_tags = array( 'XPRESS_AUTH_NAME' =>$user_name,'XPRESS_BLOG_NAME' =>$blog_name,'XPRESS_POST_TITLE' => $post_title , 'XPRESS_POST_URL' => $post_url ) ;
+
+	$notification_handler =& xoops_gethandler( 'notification' ) ;	
+	switch ($not_event) {
+		case 'newpost' :
+			$notification_handler->triggerEvent( 'global' , 0 , 'newpost' , $posts_tags , false , $not_modid ) ;
+			$notification_handler->triggerEvent( 'author' , $post_author , 'newpost' , $posts_tags , false , $not_modid ) ;
+
+			// categorie notification
+			include(XOOPS_ROOT_PATH . '/modules/'.$mydirname . '/wp-includes/version.php');
+			if ($wp_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')";		
+			}
+			$res2 = $db->query($sql2);
+			while($row2 = $db->fetchArray($res2)){
+				$cat_id = $row2['cat_ID'];
+				$cat_name = $row2['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_handler->triggerEvent( 'category' , $cat_id , 'newpost' , $posts_tags , false , $not_modid ) ;
+			}
+			break;
+		case 'editpost' :
+			$notification_handler->triggerEvent( 'post' , $post_id , 'editpost' , $posts_tags , false , $not_modid ) ;
+			break;
+		default :
+	}
+}		
+
+
+
+	
+?>
Index: /trunk/include/request_url.php
===================================================================
--- /trunk/include/request_url.php	(revision 95)
+++ /trunk/include/request_url.php	(revision 95)
@@ -0,0 +1,51 @@
+<?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
+ */
+
+/* 
+ * There is a function that detects the kind of the page that the access is here. 
+ */
+function check_page_call($check_file =''){
+	global $xoops_config;
+	if (empty($check_file)) return false;
+	$xpress_page = 	$xoops_config->module_name . '/' . $check_file;
+	$php_script_name = $_SERVER['SCRIPT_NAME'];
+	$php_query_string = $_SERVER['QUERY_STRING'];
+	if (strstr($php_script_name,$xpress_page) === false) return false;
+	if ($check_file !== 'index.php' ) return true;
+	if (strstr($php_query_string,'preview') === false) return true;
+	return false;
+}
+
+function is_xpress_index_page_call(){
+	return check_page_call('index.php');
+}
+
+function is_admin_page_call(){
+	return check_page_call('wp-admin');
+}
+
+function is_media_upload_page_call(){
+	return check_page_call('wp-admin/async-upload.php');
+}
+
+function is_wp_cron_page_call(){
+	return check_page_call('wp-cron.php');
+}
+
+function is_xmlrpc_call(){
+	$ret =  check_page_call('xmlrpc.php');
+
+	$xmlrpc_debug = 0;
+	if ($xmlrpc_debug && $ret) {
+		xpress_debug_message('is_xmlrpc_call()'. "\n" . sprint_r($_SERVER) );
+	}
+	return $ret;
+}
+?>
Index: /trunk/include/set_cash_cookie_path.php
===================================================================
--- /trunk/include/set_cash_cookie_path.php	(revision 94)
+++ /trunk/include/set_cash_cookie_path.php	(revision 95)
@@ -50,5 +50,5 @@
  */
 if ( !defined('COOKIEPATH') )
-	define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', XOOPS_URL . '/' ) );
+	define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', $xoops_config->xoops_url . '/' ) );
 
 /**
@@ -57,5 +57,5 @@
  */
 if ( !defined('SITECOOKIEPATH') )
-	define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', XOOPS_URL . '/' ) );
+	define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', $xoops_config->xoops_url  . '/' ) );
 
 /**
Index: unk/include/specfic_on_call_page.php
===================================================================
--- /trunk/include/specfic_on_call_page.php	(revision 94)
+++ 	(revision )
@@ -1,74 +1,0 @@
-<?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
- */
-
-/* 
- * There is a function that detects the kind of the page that the access is here. 
- */
-
-function is_xpress_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;
-}
-
-function is_media_upload_page_call(){
-	$xpress_root_indexs[0] = basename(dirname(dirname( __FILE__ ))) . '/wp-admin/async-upload.php';
-	$php_script_name = $_SERVER['SCRIPT_NAME'];
-	foreach ($xpress_root_indexs as $xpress_root_index) {
-		if (strstr($php_script_name,$xpress_root_index) !== false) return true;
-	}
-	return false;
-}
-
-function is_xmlrpc_call(){
-
-	$xpress_root_index = basename(dirname(dirname( __FILE__ ))) . '/xmlrpc.php';
-	$php_script_name = $_SERVER['SCRIPT_NAME'];
-	if(strstr($php_script_name,$xpress_root_index) !== false) $ret = true; else  $ret = false;
-	$xmlrpc_debug = 0;
-	
-
-	if ($xmlrpc_debug) {
-		$_debug_file = './wp-content/debug.log';
-		$log_data = '';
-		$log_data .= 'is_xmlrpc_call()***********************************************************************'. "\n";
-		if ($ret) $ret_val = 'true'; else $ret_val = 'false';
-		$log_data .= 'return value = ' . $ret_val . "\n";
-		
-		foreach($_SERVER as $key => $value){
-			$log_data .= $key . ' = ' . $value . "\n";
-		}
-
-		$_fp = fopen($_debug_file, 'a');
-		fwrite($_fp, $log_data);
-		fwrite($_fp, "\n\n");
-		fclose($_fp);		
-	}
-	return $ret;
-}
-
-function is_wp_cron_call(){
-	$xpress_root_index = basename(dirname(dirname( __FILE__ ))) . '/wp-cron.php';
-	$php_script_name = $_SERVER['SCRIPT_NAME'];
-	if (strstr($php_script_name,$xpress_root_index) !== false) return true; else  return false;
-}
-
-?>
Index: /trunk/include/xpress_block_render.php
===================================================================
--- /trunk/include/xpress_block_render.php	(revision 94)
+++ /trunk/include/xpress_block_render.php	(revision 95)
@@ -62,11 +62,12 @@
 	function get_block_stylesheet_url($mydirname)
 	{
-		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+		global $xoops_config;
+		$mydirpath = $xoops_config->xoops_root_path . '/modules/' . $mydirname;
 		$select_theme = get_xpress_theme_name($mydirname);
 		$style_file = $mydirpath . '/wp-content/themes/' . $select_theme . '/blocks/style.css';
 		if (file_exists($style_file))
-			return XOOPS_URL . '/modules/' .$mydirname . '/wp-content/themes/' . $select_theme . '/blocks/style.css';
+			return $xoops_config->xoops_url . '/modules/' .$mydirname . '/wp-content/themes/' . $select_theme . '/blocks/style.css';
 		else	
-			return XOOPS_URL . '/modules/' .$mydirname . '/wp-content/themes/xpress_default/blocks/style.css';
+			return $xoops_config->xoops_url . '/modules/' .$mydirname . '/wp-content/themes/xpress_default/blocks/style.css';
 	}
 
@@ -88,10 +89,11 @@
 	function get_block_file_path($mydirname,$file_name)
 	{
-		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+		global $xoops_config;
+		$mydirpath = $xoops_config->xoops_root_path . '/modules/' . $mydirname;
 		$select_theme = get_xpress_theme_name($mydirname);
 		$block_file = $mydirpath . '/wp-content/themes/' . $select_theme . '/blocks/' . $file_name;
 
 		if (!file_exists($block_file))
-			$block_file =  XOOPS_ROOT_PATH . '/modules/' .$mydirname . '/wp-content/themes/xpress_default/blocks/' . $file_name;
+			$block_file =  $xoops_config->xoops_root_path . '/modules/' .$mydirname . '/wp-content/themes/xpress_default/blocks/' . $file_name;
 		return $block_file;
 	}
Index: /trunk/include/xpress_cache.php
===================================================================
--- /trunk/include/xpress_cache.php	(revision 94)
+++ /trunk/include/xpress_cache.php	(revision 95)
@@ -4,5 +4,6 @@
     function xpress_cache_read($mydirname,$collation_key)
     {
-		$cache_dir = XOOPS_ROOT_PATH . '/cache/';
+    	global $xoops_config;
+		$cache_dir = $xoops_config->xoops_root_path . '/cache/';
 		$cache_time = 0;
         $filename = $cache_dir .$mydirname . '_' . $collation_key;
@@ -19,5 +20,6 @@
     function xpress_cache_write($mydirname,$collation_key,$content)
     {
-		$cache_dir = XOOPS_ROOT_PATH . '/cache/';
+		global $xoops_config;
+		$cache_dir = $xoops_config->xoops_root_path . '/cache/';
 		$cache_time = 0;
 
@@ -35,5 +37,6 @@
     function xpress_cache_clear($mydirname)
     {
-		$cache_dir = XOOPS_ROOT_PATH . '/cache/';
+		global $xoops_config;
+		$cache_dir = $xoops_config->xoops_root_path . '/cache/';
 		$cache_time = 0;
         if ($dh = opendir($cache_dir)) {
Index: /trunk/include/xpress_debug_log.php
===================================================================
--- /trunk/include/xpress_debug_log.php	(revision 95)
+++ /trunk/include/xpress_debug_log.php	(revision 95)
@@ -0,0 +1,59 @@
+<?php
+if (!function_exists('xpress_debug')) {
+	function xpress_debug($title = '',$ditail_show = false)
+	{
+		$module_dirpath = dirname(dirname(__FILE__));
+		$root_path = dirname(dirname(dirname(dirname(__FILE__))));
+		$_debug_file = $module_dirpath . '/wp-content/xpress_debug.log';
+		$_fp = fopen($_debug_file, 'a');
+		$stamp = date("Y/m/d G:i:s" , time());
+		$backtraces = array_reverse(debug_backtrace());
+		fwrite($_fp, "\n*********************************************************************************************************\n");
+		fwrite($_fp, $title . '(' . $stamp . ")\n");
+		fwrite($_fp, '$_SERVER[]' . "\n");	
+		$srerver = "\t" . str_replace("\n","\n\t",sprint_r($_SERVER));
+		fwrite($_fp, $srerver . "\n\n");
+
+		fwrite($_fp, "BACK TRACE" . "\n");	
+		foreach($backtraces as $backtrace){
+		$trace = $backtrace['file']. "\tLINE(" . $backtrace['line'] . ")\t" . $backtrace['function']  . "()\n";
+		$trace = str_replace($root_path,"",$trace);
+		$trace = str_replace("\\","/",$trace);
+		$trace = str_replace($root_path,"",$trace);
+		$trace = "\t" . $trace;
+
+		$trace_ditail = "\t" . str_replace("\n","\n\t\t",sprint_r($backtrace));
+		if ($ditail_show)
+			fwrite($_fp, $trace . $trace_ditail . "\n");
+		else
+			fwrite($_fp, $trace . "\n");
+		}
+		fclose($_fp);
+	}
+}
+
+if (!function_exists('xpress_debug_message')) {
+	function xpress_debug_message($message = '')
+	{
+		$module_dirpath = dirname(dirname(__FILE__));
+		$root_path = dirname(dirname(dirname(dirname(__FILE__))));
+		$_debug_file = $module_dirpath . '/wp-content/xpress_debug.log';
+		$_fp = fopen($_debug_file, 'a');
+		$stamp = date("Y/m/d G:i:s" , time());
+		fwrite($_fp, "\n*********************************************************************************************************\n");
+		fwrite($_fp, '(' . $stamp . ")\n");
+		fwrite($_fp, $message . "\n");	
+		fclose($_fp);
+	}
+}
+
+if (!function_exists('sprint_r')) {
+    function sprint_r($var) {
+             ob_start();
+             print_r($var);
+             $ret = ob_get_contents();
+             ob_end_clean();
+      return $ret;
+    }
+}
+?>
Index: /trunk/wp-config.php
===================================================================
--- /trunk/wp-config.php	(revision 94)
+++ /trunk/wp-config.php	(revision 95)
@@ -5,6 +5,9 @@
 require_once dirname( __FILE__ ).'/include/set_cash_cookie_path.php' ;
 
-mb_language('Japanese');
-mb_internal_encoding('UTF-8');
+
+if (function_exists("mb_language")) mb_language('Japanese');
+// The setting of mb_internal_encoding might be unnecessary. 
+// Because mb_internal_encoding setting wp-setting.php line 484
+if (function_exists("mb_internal_encoding")) mb_internal_encoding('UTF-8');
 
 // ** MySQL settings ** //
@@ -16,4 +19,6 @@
 define('DB_COLLATE', '');
 
+//define('WP_DEBUG' ,true);
+
 // Change each KEY to a different unique phrase.  You won't have to remember the phrases later,
 // so make them long and complicated.  You can visit http://api.wordpress.org/secret-key/1.1/
@@ -24,9 +29,5 @@
 
 // You can have multiple installations in one database if you give each a unique prefix
-$xp_prefix = basename(dirname(__FILE__));
-if ($xp_prefix == 'wordpress'){
- 	$xp_prefix = 'wp';
-}
-$table_prefix  = $xoops_config->xoops_db_prefix . '_' . $xp_prefix . '_';   // Only numbers, letters, and underscores please!
+$table_prefix  = $xoops_config->module_db_prefix;   // Only numbers, letters, and underscores please!
 
 // Change this to localize WordPress.  A corresponding MO file for the
@@ -40,7 +41,17 @@
 if ( !defined('ABSPATH') )
 	define('ABSPATH', dirname(__FILE__).'/');
-require_once(ABSPATH.'wp-settings.php');
-require dirname( __FILE__ ).'/include/include_xoops_define.php' ;
-if (is_xpress_index_page_call()){
+
+require_once dirname( __FILE__ ).'/include/request_url.php' ;
+if (!is_xpress_index_page_call()){
+//	if ( is_wp_cron_page_call()){
+//		if ( !defined("XOOPS_ROOT_PATH") ) {
+//			require_once $xoops_config->xoops_mainfile_path;
+//		}
+//	}
+	require_once(ABSPATH.'wp-settings.php');
+} else {
+	// If $xoops_config->xoops_mainfile_path is not executed before wp-settings.php is executed, log in cannot be done. 
+	require_once $xoops_config->xoops_mainfile_path;
+	require_once(ABSPATH.'wp-settings.php');
 	// The return to wp-blog-header.php is stolen here
 	wp();
@@ -52,5 +63,5 @@
 	xpress_render($wp_output);
 	require_once( ABSPATH .'/include/xpress_breadcrumbs.php' );
-	include XOOPS_ROOT_PATH . '/footer.php';
+	include $xoops_config->xoops_root_path . '/footer.php';
 	exit();
 }
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 94)
+++ /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 94)
+++ /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 94)
+++ /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 94)
+++ /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 94)
+++ /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 94)
+++ /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 94)
+++ /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;
Index: /trunk/xoops_version.php
===================================================================
--- /trunk/xoops_version.php	(revision 94)
+++ /trunk/xoops_version.php	(revision 95)
@@ -127,5 +127,5 @@
 $modversion['notification'] = array(
 	'lookup_file' => 'include/notification.inc.php' ,
-	'lookup_func' => "{$mydirname}_notify_info" ,
+	'lookup_func' => "xpress_notify" ,
 	'category' => array(
 		array(
