private function selecttree($method = 'add', $_arr = array()) { $model = M('arctype'); $list = $model->field("*,concat(path,'-',id) as bpath")->order('bpath')->select(); if ($method == 'add') { foreach ($list as $key => $value) { $list[$key]['count'] = count(explode('-', $value['bpath'])); if ($_arr['id'] == $list[$key]['id']) { $list[$key]['selected'] = " selected='selected'"; } } } elseif ($method == 'edit') { //屏蔽当前栏目和当前栏目子栏目选择 $ids = array(); array_push($ids, $_arr['id']); $pathlist = $model->field('id,path')->select(); foreach ($pathlist as $k => $v) { //file_put_contents('1.txt',substr($v['path'],0,strlen($_arr['path'].'-'.$_arr['id']))); if (substr($v['path'] . '-', 0, strlen($_arr['path'] . '-' . $_arr['id'] . '-')) == $_arr['path'] . '-' . $_arr['id'] . '-') { array_push($ids, $v['id']); } } foreach ($list as $key => $value) { if ($list[$key]['id'] == $_arr['fid']) { $list[$key]['selected'] = " selected='selected'"; } elseif (in_array($list[$key]['id'], $ids)) { $list[$key]['selected'] = " disabled='disabled'"; } else { $list[$key]['selected'] = ''; } $list[$key]['count'] = count(explode('-', $value['bpath'])); } } return sorttree($list); }
protected function selecttree($_arr = array()) { $model = M('arctype'); $list = $model->field("id,modelid,sortrank,modeltype,typename,concat(path,'-',id) as bpath")->order('bpath asc')->select(); foreach ($list as $key => $value) { $list[$key]['count'] = count(explode('-', $value['bpath'])); if ($_arr['id'] == $list[$key]['id']) { $list[$key]['selected'] = " selected='selected'"; } //不显示非当前模型的栏目 if ($_arr['modelid'] != $list[$key]['modelid']) { unset($list[$key]); } //屏蔽所有封面类型栏目,跳转类型栏目,并标注封面 if ($list[$key]['modeltype'] == 1) { $list[$key]['typename'] .= '[封面]'; $list[$key]['selected'] = " disabled='disabled'"; } if ($list[$key]['modeltype'] == 2) { $list[$key]['typename'] .= '[跳转]'; $list[$key]['selected'] = " disabled='disabled'"; } } return sorttree($list); }