Index: trunk/xpressme_integration_kit/blocks/block_common.php
===================================================================
--- trunk/xpressme_integration_kit/blocks/block_common.php	(revision 232)
+++ trunk/xpressme_integration_kit/blocks/block_common.php	(revision 435)
@@ -69,5 +69,81 @@
 endif;
 
+if(!function_exists("categorie_select")):
+function categorie_select($option_name = '',$value='',$row_num=0 ,$sort_column = 'ID', $sort_order = 'asc')
+{
+    $mydirpath = dirname(dirname(__FILE__));
+	$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
+	if ($mydirname == 'wordpress'){
+		$wp_prefix = 'wp_';
+	} else {
+		$wp_prefix = $mydirname . '_';
+	}
+	$xoopsDB =& Database::getInstance();
+	$myts =& MyTextSanitizer::getInstance();
+    $selected = explode(',' , $value);
+	$isAll = (count($selected)==0||empty($selected[0]))?true:false;
+    $sort_column = 'cat_'.$sort_column;
+    if (empty($row_num)) $size = ''; else $size = 'size="' . $row_num . '"';
+	include $mydirpath.'/wp-includes/version.php';
+	if ($wp_db_version < 6124) {
+		$db_xpress_categories = $xoopsDB->prefix($wp_prefix . 'categories');
+		$query = "
+	    	SELECT cat_ID, cat_name, category_nicename,category_parent 
+	    	FROM $db_xpress_categories 
+	    	WHERE cat_ID > 0 
+	        ";
+		$query .= " ORDER BY $sort_column $sort_order";
 
+    } else {
+    	$db_xpress_terms = $xoopsDB->prefix($wp_prefix . 'terms');
+    	$db_xpress_term_taxonomy = $xoopsDB->prefix($wp_prefix . 'term_taxonomy');
+    	$query = "
+			SELECT $db_xpress_terms.term_id as cat_ID , $db_xpress_terms.name as cat_name , $db_xpress_term_taxonomy.taxonomy 
+			FROM $db_xpress_terms LEFT JOIN $db_xpress_term_taxonomy ON $db_xpress_terms.term_id = $db_xpress_term_taxonomy.term_id 
+			WHERE $db_xpress_term_taxonomy.taxonomy = 'category' 
+        ";
+		$query .= " ORDER BY $sort_column $sort_order";
+    }
+	$res =  $xoopsDB->query($query, 0, 0);
+	$option = "\t<option value=\"0\" ";
+	if ($isAll) $option .= " selected=\"selected\"";
+	$option .= ">"._MB_XP2_ALL ."</option>\n";
+
+    if ($res !== false){
+ 		while($row = $xoopsDB->fetchArray($res)){
+            $cat_name = $row['cat_name'];
+            $cat_ID = $row['cat_ID'];
+            $option .= "\t<option value=\"".$cat_ID."\"";
+            if (in_array($cat_ID, $selected))
+                $option .= ' selected="selected"';
+            $option .= '>';
+            $option .= $myts->htmlspecialchars($cat_name);
+            $option .= "</option>\n";
+        }
+    }
+    $output = _MB_XP2_CATS_SELECT ."<br />\n";
+    $output .= 	"<input type='hidden' name='$option_name' value='$value' />\n";
+    $output .= '&nbsp;&nbsp;<select name="categorie" '.$size.' multiple="multiple" onclick="CatSelect()">' ."\n";
+    $output .= $option;
+    $output .= '</select><br />';
+    $output .= '
+<script type="text/javascript">
+    function CatSelect(){
+        var idx=new Array();
+        var sel=document.forms["blockform"].elements["categorie"].options;
+        for(var i=0, n=0; i<sel.length; i++){
+            if(sel[i].selected){ idx[n++]=sel[i].value; }
+        }
+        if(idx.length>0){
+        	document.forms["blockform"].elements["' .$option_name . '"].value = idx;
+		}
+    }
+</script>
+';
+    
+    return $output;
+
+}
+endif;
 
 ?>
