西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > OpenCart教程 >

添加OpenCart商品选择分类插件

时间:2016-02-10 21:05来源:未知 作者:好模板 点击:
OpenCart后台添加产品选择分类太复杂了,于是我这里写了一个JS扩展,希望大家用得上。 提供功能: 1. 搜索功能 2. 显示全部分类功能 3. 批量选择分类功能 这个是做好了的效果图 下面是

OpenCart后台添加产品选择分类太复杂了,于是我这里写了一个JS扩展,希望大家用得上。

提供功能:

1. 搜索功能

2. 显示全部分类功能

3. 批量选择分类功能

这个是做好了的效果图

添加OpenCart商品选择分类插件

下面是安装步骤

1. 下载cCategor.js文件

下载后,把文件放在admin\view\javascript目录下

添加OpenCart商品选择分类插件

2.修改模版文件

修改文件admin\view\template\catalog\product_form.tpl文件,大概在229行的位置。

14

在category输入框后面添加一个按钮,代码如下

<input type=”button” id=”chooseCategory” value=”choose category” />

添加OpenCart商品选择分类插件

还要在该文件(product_form.tpl)底部加载cCategory.js文件,并且给出一些配置,添加代码如下

<!-----------------  多选分类 start---------------->
<script type="text/javascript" src="view/javascript/cCategory.js"></script>
<script type="text/javascript">
$(document).ready(function() {
cCategory.setOptions({
"token":"<?php echo $token; ?>",//管理后台token 没有它不能使用oc后台
"s_id":"chooseCategory",//绑定的ID
"is_mul":true//是否多选 如果是false,那么选择一个后就自动关闭
});
});
<!-----------------  多选分类 end---------------->
</script>

添加代码效果图如下
16

3.  修改CSS文件

修改文件admin\view\stylesheet\stylesheet.css文件最后添加以下代码

/*============= dialog ==========*/
#dialog-form ul{
padding:0px;
}
#dialog-form li{
list-style:none;
padding-right:30px;
 
}
#dialog-form li a{
text-decoration:none;
}

4. 修改程序,添加一个方法

修改文件路径admin\controller\catalog\category.php 在文件的底部添加下面这段代码

public function autocompletedisplayall() {
$json = array();
 
$this->load->model('catalog/category');
 
$data = array();
 
$results = $this->model_catalog_category->getCategories($data);
 
foreach ($results as $result) {
$json[] = array(
'category_id' => $result['category_id'],
'name'        => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8'))
);
}
 
$sort_order = array();
 
foreach ($json as $key => $value) {
$sort_order[$key] = $value['name'];
}
 
array_multisort($sort_order, SORT_ASC, $json);
 
$this->response->setOutput(json_encode($json));
}

添加截图,注意添加的位置

添加OpenCart商品选择分类插件

OK,到这里已经安装成功。

cCategory.js代码:
 

/**
 * jquery-jx 支持ie8+、谷歌、火狐浏览器
 * @arguments  弹出选择分类框
 * @version     1.0
 * @Creator    wytoy <1512390508@qq.com>
 * @Depend     jQuery 1.7+
 * @Date       2013/09/22
 *
 **/
var cCategory = {
	jsObj:"",
	jsonObj:new Array,
	/**
	 * 賦值
	 * @return $this 當前對象
	 **/
	setOptions:function(option) {
		cCategory.options = $.extend({}, cCategory.options, option);

		cCategory.createDialog();

		cCategory.dialog();

		cCategory.clickOpenCategory();

		cCategory.clickChooseCategory();

		cCategory.search();

		cCategory.displayAll();
		
	},

	createDialog:function(){
		
		$("#"+cCategory.options.s_id).after('<div id="dialog-form" title="choose category"><ul></ul></div>');
		$("#dialog-form ul").css({
			"padding":"0px"
		});
		$("#dialog-form li").css({
			"list-style":"none",
			"padding-right":"30px"
		});
	},
	
	dialog:function(){
		$( "#dialog-form" ).dialog({
			autoOpen: false,
			height: 300,
			width: 350,
			modal: true,
			buttons: {
				Cancel: function() {
					$( this ).dialog( "close" );
				}
			},
		});
	},
	
	clickOpenCategory:function(){
		$("#dialog-form").prepend("<input type='text' id='dialog-search' /><input type='button' id='dialog-button' value='search' /><input type='button' id='dialog-display-all' value='Display All' /><br/>");
		$("#"+cCategory.options.s_id).live('click',function(){
			$.ajax({
				url: 'index.php?route=catalog/category/autocompletedisplayall&token='+cCategory.options.token+'&filter_name= ',
				dataType: 'json',
				cache:true,
				success: function(json) {
					cCategory.jsObj = json;
					var content = "";
					$.map(json, function(item) {
						content += "<li><a href='javascript:;' vid='"+item.category_id+"'>"+item.name+"</a></li>";
						
					});	
					$("#dialog-form ul").html(content);
				}
			});
			$( "#dialog-form" ).dialog( "open" );
		});
	},
	clickChooseCategory:function(){
		$( "#dialog-form" ).find("a").live('click',function(){
			var vid = $(this).attr("vid");
			var vlab = $(this).html();
			$('#product-category' + vid).remove();
				
			$('#product-category').append('<div id="product-category' + vid + '">' + vlab + '<img src="view/image/delete.png" alt="" /><input type="hidden" name="product_category[]" value="' + vid + '" /></div>');

			$('#product-category div:odd').attr('class', 'odd');
			$('#product-category div:even').attr('class', 'even');
			
			if (!cCategory.options.is_mul) 
				$( "#dialog-form" ).dialog( "close" );
			
		});
	},
	search:function(){
		$( "#dialog-button" ).live('click',function(){
			var s = $("#dialog-search").val();
			var content = "";
			$(cCategory.jsObj).each(function(index,item){
				if(item.name.indexOf(s)!=-1) {
					content += "<li><a href='javascript:;' vid='"+item.category_id+"'>"+item.name+"</a></li>";
				} 
			});
			$("#dialog-form ul").html(content);
		});
	},
	displayAll:function(){
		
		$( "#dialog-display-all" ).live('click',function(){
			console.log(1);
			var content = "";
			$(cCategory.jsObj).each(function(index,item){
				content += "<li><a href='javascript:;' vid='"+item.category_id+"'>"+item.name+"</a></li>";
			});
			$("#dialog-form ul").html(content);
		});
	}
}


/*
//使用方法
$(document).ready(function() {
	cCategory.setOptions({
		"token":"b9fff97ad60517a892fba91cf4c602bf",//管理后台token 没有它不能使用oc后台
		"s_id":"chooseCategory",//绑定的ID
		"is_mul":true//是否多选 如果是false,那么选择一个后就自动关闭
	});
});
*/




(责任编辑:好模板)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------