$value)
{
if($value['level'] == 1)
$this->get_cat_tree($value['id']);
}
/*
foreach ($goods_category2 AS $key => $value)
{
$strpad_count = $value['level']*10;
echo str_pad('',$strpad_count,"-",STR_PAD_LEFT);
echo $value['name'];
echo "
";
}*/
return $goods_category2;
}
/**
* 获取指定id下的 所有分类
* @global type $goods_category 所有商品分类
* @param type $id 当前显示的 菜单id
* @return 返回数组 Description
*/
public function get_cat_tree($id)
{
global $goods_category, $goods_category2;
$goods_category2[$id] = $goods_category[$id];
foreach ($goods_category AS $key => $value){
if($value['parent_id'] == $id)
{
$this->get_cat_tree($value['id']);
$goods_category2[$id]['have_son'] = 1; // 还有下级
}
}
}
/**
* 移除指定$parent_id_path 分类以及下的所有分类
* @global type $cat_list 所有商品分类
* @param type $parent_id_path 指定的id
* @return 返回数组 Description
*/
public function remove_cat($cat_list,$parent_id_path)
{
foreach ($cat_list AS $key => $value){
if(strstr($value['parent_id_path'],$parent_id_path))
{
unset($cat_list[$value['id']]);
}
}
return $cat_list;
}
/**
* 改变或者添加分类时 需要修改他下面的 parent_id_path 和 level
* @global type $cat_list 所有商品分类
* @param type $parent_id_path 指定的id
* @return 返回数组 Description
*/
public function refresh_cat($id)
{
$GoodsCategory = M("GoodsCategory"); // 实例化User对象
$cat = $GoodsCategory->where("id", $id)->find(); // 找出他自己
// 刚新增的分类先把它的值重置一下
if($cat['parent_id_path'] == '')
{
($cat['parent_id'] == 0) && DB::execute("UPDATE __PREFIX__goods_category set parent_id_path = '0_$id', level = 1 where id = :id",['id'=>$id]); // 如果是一级分类
DB::execute("UPDATE __PREFIX__goods_category AS a ,__PREFIX__goods_category AS b SET a.parent_id_path = CONCAT_WS('_',b.parent_id_path,'$id'),a.level = (b.level+1) WHERE a.parent_id=b.id AND a.id = :id",['id'=>$id]);
$cat = $GoodsCategory->where("id", $id)->find(); // 从新找出他自己
}
if($cat['parent_id'] == 0) //有可能是顶级分类 他没有老爸
{
$parent_cat['parent_id_path'] = '0';
$parent_cat['level'] = 0;
}
else{
$parent_cat = $GoodsCategory->where("id", $cat['parent_id'])->find(); // 找出他老爸的parent_id_path
}
$replace_level = $cat['level'] - ($parent_cat['level'] + 1); // 看看他 相比原来的等级 升级了多少 ($parent_cat['level'] + 1) 他老爸等级加一 就是他现在要改的等级
$replace_str = $parent_cat['parent_id_path'].'_'.$id;
DB::execute("UPDATE `__PREFIX__goods_category` SET parent_id_path = REPLACE(parent_id_path,'{$cat['parent_id_path']}','$replace_str'), level = (level - $replace_level) WHERE parent_id_path LIKE '{$cat['parent_id_path']}%'");
}
/**
* 动态获取商品属性输入框 根据不同的数据返回不同的输入框类型
* @param int $goods_id 商品id
* @param int $type_id 商品属性类型id
*/
public function getAttrInput($goods_id,$type_id)
{
header("Content-type: text/html; charset=utf-8");
$GoodsAttribute = D('GoodsAttribute');
$attributeList = $GoodsAttribute->where("type_id", $type_id)->select();
foreach($attributeList as $key => $val)
{
$curAttrVal = $this->getGoodsAttrVal(NULL,$goods_id, $val['attr_id']);
//促使他 循环
if(count($curAttrVal) == 0)
$curAttrVal[] = array('goods_attr_id' =>'','goods_id' => '','attr_id' => '','attr_value' => '','attr_price' => '');
foreach($curAttrVal as $k =>$v)
{
$str .= "
{$spec[$v]} | "; } $str .="价格 | 库存 | SKU |
$specItem[$v2] | "; $item_key_name[$v2] = $specItem[$v2]; } ksort($item_key_name); $item_key = implode('_', array_keys($item_key_name)); $item_name = implode('_', $item_key_name); $str .=""; $str .=" | "; $str .=" | "; $str .=" |