opencart中将控制面板世界地图更改为中国地图

在开源商店系统opencart的管理员控制面板上的“整体概要”显示的是一张世界地图,它使用的是jqvmap插件。如图:opencart中将控制面板世界地图更改为中国地图_第1张图片

 

如果你不想使用在国际化,只用在中国,或许就需要将世界地图显示为中国地图,其中的模块为省。如图:

 

具体实现步骤:

 

  1. 下载jqvmap的中国地图内容包,具体查看附件 jquery.vmap.china.rar 中的 query.vmap.china.js 文件。或者你可以从其他地方下载它。 然后将它拷贝到: <opencart path>\admin\view\javascript\jquery\jqvmap\maps\continents\  目录下。
  2. 打开编辑<opencart path>\admin\view\template\dashboard 下的 map.tpl 文件,全文检索 jqvmap,将<script type="text/javascript" src="view/javascript/jquery/jqvmap/maps/continents/jquery.vmap.china.js"></script>  插入到 <script type="text/javascript" src="view/javascript/jquery/jqvmap/jquery.vmap.js"></script>  的下面,现在可以删除已经引用的世界地图 jquery.vmap.world.js。
  3. 然后将 $('#vmap').vectorMap({ map: 'world_en', 改为 map: 'china_zh',   此时你刷新页面,已经可以看到地图已经更改为中国地图了。

 

后面我们要将鼠标移动到上面的订单记录,从以国为单位的修改为以省级为单位的。 首先在系统设置->参数设置->国家设置, 创建一个中国。 

 

然后在系统设置->参数设置->地区设置,增加相应的地区名,所属国家为中国的。 如果你下载的opencart是英文版, 需要手工去添加。 你也可以去opencartcn下载相应的中文版,它已经创建好了。(注:具体地区代码可打开 jquery.vmap.china.js 可以看到代码对应的地区名,你也可以编辑那些代码

 


opencart中将控制面板世界地图更改为中国地图_第2张图片
 

 

将鼠标移动到上面的统计订单记录修改为以省地区为单位的, 首先打开编辑 <opencart path>\admin\model\report 目录下的 sale.php 文件,在 getTotalOrdersByCountry() 方法下创建一个新的方法:

//根据省份地区统计订单
	public function getTotalOrdersByZone() {
		$query = $this->db->query("SELECT COUNT(*) AS total, SUM(o.total) AS amount, c.code AS iso_code_2  FROM `" . DB_PREFIX . "order` o LEFT JOIN `" . DB_PREFIX . "zone` c ON (o.payment_zone_id = c.zone_id) WHERE o.order_status_id > '0' GROUP BY o.payment_zone_id");

		return $query->rows;
	}

 

然后打开编辑 <opencart path>\admin\controller\dashboard\ 目录下的 map.php 文件, 将public function map() 方法修改如下:

public function map() {
		$json = array();
		
		$this->load->model('report/sale');
		
		$results = $this->model_report_sale->getTotalOrdersByZone();
	
		
		foreach ($results as $result) {
			$json[strtoupper($result['iso_code_2'])] = array(
				'total'  => $result['total'],
				'amount' => $this->currency->format($result['amount'], $this->config->get('currency_code'))
			);
		}
	
		$this->response->addHeader('Content-Type: application/json');
		$this->response->setOutput(json_encode($json));
	}

 

这样就所有大功告成了!!!

 

如果还是没有高亮的地区显示订单统计,可能产生的原因:

  1. 没有相关地区的订单记录。
  2. 地图代码有误,请确认地区代码与 jquery.vmap.china.js 中的代码一致。

 

 

你可能感兴趣的:(PHP,opencart)