Index: branches/XPressMU/xpressme_integration_kit/include/onupdate.php
===================================================================
--- branches/XPressMU/xpressme_integration_kit/include/onupdate.php	(revision 428)
+++ branches/XPressMU/xpressme_integration_kit/include/onupdate.php	(revision 488)
@@ -42,6 +42,13 @@
 	$site_url= XOOPS_URL."/modules/".$mydirname;
 	xpress_put_siteurl($mydirname,$site_url);
-	xpress_put_home($mydirname,$site_url);
-
+	$home = get_xpress_option($mydirname,'home');
+	$home_check = 'home option is right';
+	if (strcmp($site_url,$home) !== 0 ){
+		if (!@fclose(@fopen($home . '/xoops_version.php', "r"))){
+			xpress_put_home($mydirname,$site_url);
+			$home_check = 'Change home option $home to $site_url';
+		}
+	}
+	$msgs[] = $home_check;
 // XPressME orignal table update
 	$t_mess = xpress_table_make($module , $mydirname);
@@ -50,6 +57,10 @@
 // make templates
 	include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php' ;
+	$mod_version = $module->getVar('version') ;
+
+	$t_mess = xpress_clean_templates_file($mydirname,$mod_version);
+	$msgs = array_merge($msgs,$t_mess);
+	
 	$t_mess = xpress_templates_make($mid,$mydirname);
-	
 	$msgs = array_merge($msgs,$t_mess);
 
@@ -97,4 +108,24 @@
 endif;
 
+if( ! function_exists( 'get_xpress_option' ) ) {
+	function get_xpress_option($mydirname,$option_name){
+		global $xoopsModule;
+		$wp_prefix = $mydirname;
+		if ($wp_prefix == 'wordpress'){
+			$wp_prefix = 'wp';
+		}
+		$xoopsDB =& Database::getInstance();
+		$option_table = $xoopsDB->prefix($wp_prefix . '_options');
+
+		$sql = "SELECT option_value FROM $option_table WHERE option_name = '" . $option_name . "'";
+		
+		$result =  $xoopsDB->query($sql, 0, 0);
+		if ($xoopsDB->getRowsNum($result)  > 0){
+			$row = $xoopsDB->fetchArray($result);
+			return $row['option_value'];
+		}
+		return 0;
+	}
+}
 
 if( ! function_exists( 'xpress_message_append_onupdate' ) ) :
@@ -190,4 +221,22 @@
 			$db->queryF( $queries ) ;
 			$msgs[] = "$views_table  ADD blog_id .";
+		}
+		
+		// The table is repaired.
+		$non_blogid_sql ="SELECT * FROM $views_table WHERE blog_id IS NULL OR blog_id < 1";
+		$non_blogid_res = $db->query($non_blogid_sql, 0, 0);
+		while($row = $db->fetchArray($non_blogid_res)){
+			$total_view = $row['post_views'];
+			$post_id = $row['post_id'];
+			$new_blogid_sql ="SELECT SUM(post_views) as post_views_sum FROM $views_table WHERE post_id = $post_id AND blog_id = 1 GROUP BY post_id";
+			$new_blogid_res = $db->query($new_blogid_sql, 0, 0);
+			if ($db->getRowsNum($new_blogid_res)  > 0){
+				$new_row = $db->fetchArray($new_blogid_res);
+				$total_view = $total_view + $new_row['post_views_sum'];
+				$del_sql = "DELETE FROM $views_table WHERE post_id = $post_id AND blog_id = 1";
+				$db->queryF( $del_sql ) ;
+			}
+			$update_sql = "UPDATE $views_table SET post_views = $total_view , blog_id = 1 WHERE post_id = $post_id AND (blog_id IS NULL OR blog_id < 1)";
+			$db->queryF( $update_sql ) ;
 		}
 	}
