首页 > 教程 > 前端技术 > 二开教程

destoon8.0品牌新增分类多选

发布:2023-07-04 来源:原创 作者:模版天下网 浏览:119 次 评论:0
核心提示:刚好需要用到这个功能官方又不出只能自己动手了第一步修改数据库字段及加字段1、在数据库修改分类属性名字类型 长度/值 整理运算符catidint10 = 原品牌字段catidvarchar100utf8_general_ciLIKE修改后的字段

刚好需要用到这个功能官方又不出只能自己动手了

第一步修改数据库字段及加字段

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> &nbsp; <a href="javascript:cate_add(<?php echo $MOD['cate_max'];?>);" class="b">添加</a><?php if($DT['schcate_limit']) { ?> &nbsp; <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('&amp;', '&');
		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])}-->


改造完成,如果不打算升级的可以改,想要升级的每次升级注意修改过的文件。没有数据的那就可以直接复制模块修改就和官方系统没啥冲突了,升级的影响几乎没有了。



 
  • 文本链接:https://mbtxw.com/Course/show.php?itemid=168
  • 文章来源:原创
  • 版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
标签: 品牌 分类多选
  • 我的领地
  • 文章86
  • 人气1
  • 收藏0
  • 粉丝 0