XPressME Integration Kit

Trac


Ignore:
Timestamp:
Nov 13, 2009, 6:38:28 PM (14 years ago)
Author:
toemon
Message:

ブロックオプション、カテゴリのマルチセレクトをカンマ区切りデータとして格納するようにした。 #243

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/xpressme_integration_kit/blocks/block_common.php

    r63 r435  
    6969endif; 
    7070 
     71if(!function_exists("categorie_select")): 
     72function categorie_select($option_name = '',$value='',$row_num=0 ,$sort_column = 'ID', $sort_order = 'asc') 
     73{ 
     74    $mydirpath = dirname(dirname(__FILE__)); 
     75        $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ; 
     76        if ($mydirname == 'wordpress'){ 
     77                $wp_prefix = 'wp_'; 
     78        } else { 
     79                $wp_prefix = $mydirname . '_'; 
     80        } 
     81        $xoopsDB =& Database::getInstance(); 
     82        $myts =& MyTextSanitizer::getInstance(); 
     83    $selected = explode(',' , $value); 
     84        $isAll = (count($selected)==0||empty($selected[0]))?true:false; 
     85    $sort_column = 'cat_'.$sort_column; 
     86    if (empty($row_num)) $size = ''; else $size = 'size="' . $row_num . '"'; 
     87        include $mydirpath.'/wp-includes/version.php'; 
     88        if ($wp_db_version < 6124) { 
     89                $db_xpress_categories = $xoopsDB->prefix($wp_prefix . 'categories'); 
     90                $query = " 
     91                SELECT cat_ID, cat_name, category_nicename,category_parent  
     92                FROM $db_xpress_categories  
     93                WHERE cat_ID > 0  
     94                "; 
     95                $query .= " ORDER BY $sort_column $sort_order"; 
    7196 
     97    } else { 
     98        $db_xpress_terms = $xoopsDB->prefix($wp_prefix . 'terms'); 
     99        $db_xpress_term_taxonomy = $xoopsDB->prefix($wp_prefix . 'term_taxonomy'); 
     100        $query = " 
     101                        SELECT $db_xpress_terms.term_id as cat_ID , $db_xpress_terms.name as cat_name , $db_xpress_term_taxonomy.taxonomy  
     102                        FROM $db_xpress_terms LEFT JOIN $db_xpress_term_taxonomy ON $db_xpress_terms.term_id = $db_xpress_term_taxonomy.term_id  
     103                        WHERE $db_xpress_term_taxonomy.taxonomy = 'category'  
     104        "; 
     105                $query .= " ORDER BY $sort_column $sort_order"; 
     106    } 
     107        $res =  $xoopsDB->query($query, 0, 0); 
     108        $option = "\t<option value=\"0\" "; 
     109        if ($isAll) $option .= " selected=\"selected\""; 
     110        $option .= ">"._MB_XP2_ALL ."</option>\n"; 
     111 
     112    if ($res !== false){ 
     113                while($row = $xoopsDB->fetchArray($res)){ 
     114            $cat_name = $row['cat_name']; 
     115            $cat_ID = $row['cat_ID']; 
     116            $option .= "\t<option value=\"".$cat_ID."\""; 
     117            if (in_array($cat_ID, $selected)) 
     118                $option .= ' selected="selected"'; 
     119            $option .= '>'; 
     120            $option .= $myts->htmlspecialchars($cat_name); 
     121            $option .= "</option>\n"; 
     122        } 
     123    } 
     124    $output = _MB_XP2_CATS_SELECT ."<br />\n"; 
     125    $output .=  "<input type='hidden' name='$option_name' value='$value' />\n"; 
     126    $output .= '&nbsp;&nbsp;<select name="categorie" '.$size.' multiple="multiple" onclick="CatSelect()">' ."\n"; 
     127    $output .= $option; 
     128    $output .= '</select><br />'; 
     129    $output .= ' 
     130<script type="text/javascript"> 
     131    function CatSelect(){ 
     132        var idx=new Array(); 
     133        var sel=document.forms["blockform"].elements["categorie"].options; 
     134        for(var i=0, n=0; i<sel.length; i++){ 
     135            if(sel[i].selected){ idx[n++]=sel[i].value; } 
     136        } 
     137        if(idx.length>0){ 
     138                document.forms["blockform"].elements["' .$option_name . '"].value = idx; 
     139                } 
     140    } 
     141</script> 
     142'; 
     143     
     144    return $output; 
     145 
     146} 
     147endif; 
    72148 
    73149?> 
Note: See TracChangeset for help on using the changeset viewer.