Index: /trunk/blocks/widget_block.php
===================================================================
--- /trunk/blocks/widget_block.php	(revision 136)
+++ /trunk/blocks/widget_block.php	(revision 136)
@@ -0,0 +1,68 @@
+<?php
+if( ! defined( 'XOOPS_ROOT_PATH' ) ) exit ;
+$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+
+eval( '
+function b_'.$mydirname.'_widget_show($options){
+	return _b_widget_show($options) ;
+}
+function b_'.$mydirname.'_widget_edit($options){
+	return _b_widget_edit($options) ;
+}
+' ) ;
+
+if( ! defined( 'XPRESS_TAG_CLOUD_BLOCK_INCLUDED' ) ) {
+	define( 'XPRESS_TAG_CLOUD_BLOCK_INCLUDED' , 1 ) ;
+	
+	function _b_widget_edit($options)
+	{
+		$mydirname = empty( $options[0] ) ? 'xpress' : $options[0] ;
+		$this_template = empty( $options[1] ) ? 'db:'.$mydirname.'_block_widget.html' : trim( $options[1] );
+    	$selected = array_slice($options,2); // get allowed cats
+		
+		global $table_prefix,$wpdb,$xoops_db;
+		require_once(XOOPS_ROOT_PATH.'/modules/'.$mydirname.'/wp-load.php');	
+		global $wp_registered_sidebars, $wp_registered_widgets;
+		
+		require_once(XOOPS_ROOT_PATH.'/modules/'.$mydirname.'/blocks/block_common.php');
+
+		$form  = "MyDirectory <input type='text' name='options[0]' value='" . $mydirname . "' /><br />";
+	    $form .= "<input type='hidden' name='options[1]' id='this_template' value='".htmlspecialchars($this_template,ENT_QUOTES)."' /><br />";
+		$form .= "<br />";
+		$form .= _MB_XPRESS_SELECT_WIDGET .":<br />\n";
+		$form .= "&nbsp;&nbsp;&nbsp;<select name='options[]' multiple=\"multiple\">\n";
+		$sidebars_widgets = wp_get_sidebars_widgets();
+		foreach($wp_registered_sidebars as $sidebar){
+			$sidebar_id = $sidebar['id'];
+			$widgets = $sidebars_widgets[$sidebar_id];
+			foreach($widgets as $widget){
+				if (empty($wp_registered_widgets[$widget])) continue;
+				$widget_str = $sidebar_id . '::' . $widget;
+				if (in_array($widget_str, $selected))
+					$form .=  "<option value='" .  $widget_str . "' selected='selected'>" . $widget_str;
+				else
+					$form .=  "<option value='" . $widget_str . "'>" . $widget_str;
+			}
+		}
+		$form .=  "</select><br/>\n";
+		return $form;
+	}
+	
+	function _b_widget_show($options)
+	{
+		$mydirname = empty( $options[0] ) ? 'xpress' : $options[0] ;
+		$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
+		$block_function_name = basename( __FILE__ );
+		
+		require_once $mydirpath.'/include/xpress_block_render.php';
+		return xpress_block_render($mydirname,$block_function_name,$options);
+	}
+	
+	function sidebar_select($wp_registered_sidebars,$option_name,$option_value)
+	{
+		
+	}
+	
+}
+
+?>
Index: /trunk/language/ja_utf8/blocks.php
===================================================================
--- /trunk/language/ja_utf8/blocks.php	(revision 135)
+++ /trunk/language/ja_utf8/blocks.php	(revision 136)
@@ -121,6 +121,6 @@
 	define("_MB_XPRESS_META_CH_STYLE","表示モード切替を表示");
 
-	
-
+// meta 
+	define("_MB_XPRESS_SELECT_WIDGET","表示するウィジェットを選択 (複数選択可)");
 }
 ?>
Index: /trunk/language/ja_utf8/modinfo.php
===================================================================
--- /trunk/language/ja_utf8/modinfo.php	(revision 135)
+++ /trunk/language/ja_utf8/modinfo.php	(revision 136)
@@ -30,4 +30,5 @@
 	define("_MI_XPRESS_BLOCK_META","メタ情報");
 	define("_MI_XPRESS_BLOCK_SIDEBAR","サイドバー");
+	define("_MI_XPRESS_BLOCK_WIDGET","ウィジェット");
 	
 	// Notify Categories
Index: /trunk/templates/source/widget_block.html
===================================================================
--- /trunk/templates/source/widget_block.html	(revision 136)
+++ /trunk/templates/source/widget_block.html	(revision 136)
@@ -0,0 +1,13 @@
+<{* **************************  usage ****************************
+ 	The template tag of the following list can be used. 
+		<{$block.err_message}> 					// When the block cannot be displayed, this outputs the reason. Please do not delete it.
+ 		<{$block.widget}>					// Displays Sidebar widget
+   ************************* End of usage ************************ *}>
+<{* Start Template *}>
+
+<div class="xpress_block">
+	<{$block.err_message}>
+	<div class="xpress_widget_block">
+		<{$block.widget}>
+	</div>
+</div>
Index: /trunk/wp-content/themes/xpress_default/blocks/widget_block_theme.php
===================================================================
--- /trunk/wp-content/themes/xpress_default/blocks/widget_block_theme.php	(revision 136)
+++ /trunk/wp-content/themes/xpress_default/blocks/widget_block_theme.php	(revision 136)
@@ -0,0 +1,84 @@
+<?php
+function widget_block($options)
+{
+	$mydirname = empty( $options[0] ) ? 'xpress' : $options[0] ;
+	$this_template = empty( $options[1] ) ? 'db:'.$mydirname.'_block_widget.html' : trim( $options[1] );
+    $selected = array_slice($options,2); // get allowed cats
+
+	$output = '';
+	foreach($selected as $select){
+		$ex = explode('::',$select);
+		$sidebar_id = $ex[0];
+		$widget_id = $ex[1] ;
+	
+		ob_start();
+			render_widget($sidebar_id,$widget_id);
+			$output .= ob_get_contents();
+		ob_end_clean();	
+	}
+//	if (count($selected) > 1)
+		$block['widget'] = "<ul>\n" . $output . "\n</ul>\n";
+//	else
+//		$block['widget'] = $output;								
+	return $block ;	
+}
+
+function render_widget($index = 1, $widget_id) {
+	global $wp_registered_sidebars, $wp_registered_widgets;
+
+	if ( is_int($index) ) {
+		$index = "sidebar-$index";
+	} else {
+		$index = sanitize_title($index);
+		foreach ( (array) $wp_registered_sidebars as $key => $value ) {
+			if ( sanitize_title($value['name']) == $index ) {
+				$index = $key;
+				break;
+			}
+		}
+	}
+
+	$sidebars_widgets = wp_get_sidebars_widgets();
+	$registered_sidebars = $wp_registered_sidebars[$index];
+	$key_exists = array_key_exists($index, $sidebars_widgets);
+	$is_array = is_array($sidebars_widgets[$index]);
+	
+
+	
+	if ( empty($registered_sidebars) || !$key_exists || !$is_array || empty($sidebars_widgets[$index]) )
+		return false;
+
+	$sidebar = $wp_registered_sidebars[$index];
+
+	$did_one = false;
+	foreach ( (array) $sidebars_widgets[$index] as $id ) {
+		if ($id != $widget_id) continue;
+		$params = array_merge(
+			array( array_merge( $sidebar, array('widget_id' => $id, 'widget_name' => $wp_registered_widgets[$id]['name']) ) ),
+			(array) $wp_registered_widgets[$id]['params']
+		);
+
+		// Substitute HTML id and class attributes into before_widget
+		$classname_ = '';
+		foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) {
+			if ( is_string($cn) )
+				$classname_ .= '_' . $cn;
+			elseif ( is_object($cn) )
+				$classname_ .= '_' . get_class($cn);
+		}
+		$classname_ = ltrim($classname_, '_');
+		$params[0]['before_widget'] = sprintf($params[0]['before_widget'], $id, $classname_);
+
+		$params = apply_filters( 'dynamic_sidebar_params', $params );
+
+		$callback = $wp_registered_widgets[$id]['callback'];
+
+		if ( is_callable($callback) ) {
+			call_user_func_array($callback, $params);
+			$did_one = true;
+		}
+	}
+
+	return $did_one;
+}
+?>
Index: /trunk/xoops_version.php
===================================================================
--- /trunk/xoops_version.php	(revision 135)
+++ /trunk/xoops_version.php	(revision 136)
@@ -31,5 +31,5 @@
 $modversion['name'] = ucfirst($mydirname) . ' ' . constant('_MI_XPRESS_NAME') ;
 $modversion['description'] = constant( '_MI_XPRESS_DESC');
-$modversion['version'] = "0.14";
+$modversion['version'] = "0.15";
 $modversion['credits'] = "Wordpress DEV (http://wordpress.org/) XPressME DEV Toemon) (http://www.toemon.com) ;";
 $modversion['author'] = "toemon (http://www.toemon.com)";
@@ -40,5 +40,5 @@
 
 // status
-$modversion['codename'] = "r133";
+$modversion['codename'] = "r136";
 
 // onInstall, onUpdate, onUninstall
@@ -246,4 +246,15 @@
 	'func_num'		=> $b_no,	
 );
+$b_no++;
+$modversion['blocks'][$b_no] = array(
+	'file' 			=> 'widget_block.php' ,
+	'name' 			=> constant('_MI_XPRESS_BLOCK_WIDGET') ,
+	'description'	=> '' ,
+	'show_func' 	=> "b_". $mydirname . "_widget_show" ,
+	'edit_func' 	=> "b_". $mydirname . "_widget_edit" ,
+	'options'		=> $mydirname. '||' ,
+	'can_clone'		=> true ,
+	'func_num'		=> $b_no,	
+);
 
 
