刚好需要用到这个功能官方又不出只能自己动手了
第一步修改数据库字段及加字段
1、在数据库修改分类属性
名字 类型 长度/值 整理 运算符
catid int 10 = 原品牌
catid varchar 100 utf8_general_ci LIKE 修改后的
数据库修改前后对比
修改前的样子

修改后及新加的字段
修改前

修改后

第二步使用SQL语句添加数据库字段
ALTER TABLE `ncgoods_brand_13` ADD `catids` varchar(100) NOT NULL default '' AFTER `catid` ;
第三步修改PHP发布页面
module/brand/admin/template/edit.tpl.php
1)替换原有分类选项
<tr>
<td class="tl"><span class="f_red">*</span> 主营行业</td>
<td>
<style type="text/css">
#cate-box {width:380px;margin-top:12px;background:#EEEEEE;padding:6px 12px;}
#cate-box div {height:24px;line-height:24px;overflow:hidden;}
#cate-box span {float:right;}
</style>
<div id="catesch"></div>
<span id="cate"><?php echo ajax_category_select('', '请选择行业', 0, 13);?></span> <a href="javascript:cate_add(<?php echo $MOD['cate_max'];?>);" class="b">添加</a><?php if($DT['schcate_limit']) { ?> <a href="javascript:schcate(13);" class="t">搜索</a><?php } ?>
<div id="cate-box">
<div id="cate-tip"<?php if($cates) { ?>style="display:none;"<?php } ?>
>请添加主营行业,最多可添加 <strong class="f_red"><?php echo $MOD['cate_max'];?></strong> 个</div>
<?php if(is_array($cates)) { foreach($cates as $c) { ?>
<div id="cate-<?php echo $c;?>"><span><a href="javascript:cate_del(<?php echo $c;?>);" class="b">删除</a></span><?php echo strip_tags(cat_pos(get_cat($c), '/'));?></div>
<?php } } ?>
</div>
<input type="hidden" name="post[catid]" value="<?php echo $catid;?>" id="catid"/>
<span id="dcatid" class="f_red"></span>
</td>
</tr>
引入JS
function cate_del(id) {
$('#cate-'+id).remove();
var cids = $('#catid').val().replace(','+id+',', ',');
$('#catid').val(cids);
if($('#cate-box').html().indexOf('span') == -1) {
$('#cate-tip').show();
} else {
$('#cate-tip').hide();
}
}
function cate_add(max) {
if($('#cate-box div').length > max) {
Dmsg('最多可以添加'+max+'个行业', 'catid');
return;
}
var cid = $('#catid_1').val();
if(cid == 0) {
Dmsg('请选择行业', 'catid');
return;
}
if($('#cate-box').html().indexOf('cate-'+cid) != -1) {
Dmsg('所选行业已经存在', 'catid');
return;
}
var str = '';
$('#cate option:selected').each(function() {
if($(this).val()) str += $(this).text()+'/';
});
if(str) {
str = str.replace('&', '&');
str = str.replace('请选择行业/', '');
str = str.substring(0, str.length-1);
$('#cate-box').append('<div id="cate-'+cid+'"><span><a href="javascript:cate_del('+cid+');" class="b">删除</a></span>'+str+'</div>');
var cids = $('#catid').val() ? $('#catid').val() +cid+',' : ','+cid+',';
$('#catid').val(cids);
$('#cate-tip').hide();
} else {
Dmsg('请选择行业', 'catid');
}
}
接下来注释掉以下JS或者删除
// f = 'catid_1';
// if(Dd(f).value == 0) {
// Dmsg('请选择所属分类', 'catid', 1);
// return false;
// }
再加一个数量控制,增加分类总数控制module/brand/admin/setting.tpl.php
<tr> <td class="tl">行业最多可选</td> <td> <input type="text" size="3" name="setting[cate_max]" value="<?php echo $cate_max;?>"/> </td> </tr>



第四步module/brand/admin/index.inc.php
1)58行新增删除
删除原有或者注释
if($catid) $condition .= ($CAT['child']) ? " AND catid IN (".$CAT['arrchildid'].")" : " AND catid=$catid";
新增代码以下代码
if($catid) $condition .= " AND catids LIKE '%,".$catid.",%'";

接下来继续修改
125行左右新增查找 $history = history($moduleid, $itemid); 在下面新增以下代码
$cates = $catid ? explode(',', substr($catid, 1, -1)) : array();
第五步module/brand/brand.class.php
在catid后面加一个catids

1)在62行左右下面新增
if($post['catid']) {
$catids = explode(',', substr($post['catid'], 1, -1));
$cids = '';
foreach($catids as $catid) {
$C = get_cat($catid);
if($C) {
$catid = $C['parentid'] ? $C['arrparentid'].','.$catid : $catid;
$cids .= $catid.',';
}
}
$cids = array_unique(explode(',', substr(str_replace(',0,', ',', ','.$cids), 1, -1)));
$post['catids'] = ','.implode(',', $cids).',';
}
继续改直接看图就不上代码了
修复列表分类显示有两部分需要修改
$condition = 'status=3'; 修改为 $condition = "status=3 AND catids like '%,".$catid.",%'";
修改PC端列表
修改移动端61行左右方法和上面是一样的
搜索页面module/brand/search.inc.php
修改2处 原代码注释或者修改
//if($catid) $condition .= ($CAT['child']) ? " AND catid IN (".$CAT['arrchildid'].")" : " AND catid=$catid";
新增
if($catid) $condition .= " AND catids LIKE '%,".$catid.",%'";
第一处修改
第二处要修改的
到此处基本就告一段落 商务中心没有添加可以参考第一步,接下来看看前台展示效果
最后一步了修改楼层展示
这次要动系统函数了include/tag.func.php
第42行及57行
42行
原始
if($moduleid > 4) {
修改为
if($moduleid > 4 && !$moduleid == 13) {
57行
原始
} else if($moduleid == 4) {
修改为
} else if($moduleid == 4 || $moduleid == 13) {
楼层标签改造
原始
<!--{tag("moduleid=$moduleid&condition=status=3&catid=".$c[catid]."&areaid=$cityid&order=".$MOD[order]."&width=150&height=50&lazy=$lazy&pagesize=".$MOD[page_icat])}-->
修改后新增项(condition=status=3 and catids<>'')
<!--{tag("moduleid=$moduleid&condition=status=3 and catids<>''&catid=".$c[catid]."&areaid=$cityid&order=".$MOD[order]."&width=150&height=50&lazy=$lazy&pagesize=".$MOD[page_icat])}-->
改造完成,如果不打算升级的可以改,想要升级的每次升级注意修改过的文件。没有数据的那就可以直接复制模块修改就和官方系统没啥冲突了,升级的影响几乎没有了。


