首页 > 其他 > 详细

ShopNC学习笔记七:二次开发之地区开发

时间:2016-01-13 17:49:11      阅读:356      评论:0      收藏:0      [点我收藏+]

最近碰到一个基于ShopNC商城系统二次开发成支持多城市运营的项目,客户其中一个需求就是总平台可以开设各城市分站,IP地址系统自动识别,游客或会员只能查看某一城市分站的商品店铺等信息,而不是全国的信息,各城市分站拥有自己的会员与店铺。开发过程与大家分享一下。

        第1步:搭建一个城市运营商使用的后台

        首先创建一个城市表city,主要字段包括:城市ID(主键),城市名称、城市二级名称、状态、城市管理员登录账号和密码。系统管理员可以对这个表进行CURD操作,也就是管理城市表。

       然后建立各城市分站后台,如命名后台目录为city_manage,复制现有admin目录中的入口文件index.php到city_manage目录,定义项目名称define(‘ProjectName‘,‘city_manage‘);,其它代码不需要改动。然后初化城市后台程序及目录结构(如control、include、language、templates)及所必需的文件(PHP文件、图片、样式文件)。

      然后完成登录、欢迎界面及修改密码功能,这三个功能相关的文件从admin目录复制相关文件稍做修改即可,不需要重新开发。当然城市运营商管员需要管理的信息还有很多,如店铺、商品、会员、订单、结算、统计等,但这些不是本次介绍的重点,不再赘述。

       第2步:IP来源分析与定位

       从网上下载一下较全的IP地址库,笔者这里下载的是QQIP地址库,IP地址信息都存放在qqwry.dat中,可以使用ip.exe工具进行解压为txt文件,查看里面的内容。

      然后使用PHP程序解析qqwry.dat文件,定位到哪个城市,百度一下“php 解析 qqwry.dat”,网上已经有了相关的程序大家可以参考,TP也提供了相关开源的解析IP类,有兴趣的可以学习一下。

      注意:网上下载的qqwry.dat是GBK编码(至少本人下载的是),如果项目中是UTF-8编码,需要进行转码才可以。

对qqwry.dat的解析,网上也已经有了C语言版的php扩展qqwry.so,据说效率比PHP高6到10倍(本人未测试),大家可以尝试一下。具体使用方法百度一下就可以了。

IP分析的程序可以放到入口文件里,也可以放到框架里,程序分析流程如下:

require(BasePath.‘/framework/libraries/iplocation.php‘);

$ip = new IpLocation(BasePath.‘/data/area/qqwry.dat‘);

$area = $ip->getlocation();    //$area内容如:河北省[font=微软雅黑]廊坊[/font]市

$domain = require(BasePath.‘/data/area/domain.php‘);

//如果IP有定位并且该城市已开通,定位到该城市

foreach ($domain as $k=>$v) {

if (strpos($area,$k) !== false){

    $dcity  = $domain[$k];

    define(‘CITY_ID‘,$city[$dcity][‘id‘]);

    break;

}

}

domain.php是已开通城市的数组,内容如:

<?php

//对应关系为 城市名称 => 域名

return array(‘天津‘=>‘tj‘,‘北京‘=>‘bj‘,‘廊坊‘=>‘lf‘);

?>

ShopNC学习笔记七:二次开发之地区开发

原文:http://www.cnblogs.com/zhijiangch/p/5127637.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!