1. 二次开发
1.1. 介绍
在实际做项目中拿B2B2C进行二次开发的时候, 通常不希望在标准的产品上进行修改. 因为这样会导致标准产品的补丁包无法升级.
目前系统提供了配置二开目录的方式, 可以在二次开发目录进行开发.虽然此方法仍然无法保证一定可以无缝升级.
注意 此步骤是以下所有二次开发方式的前置条件
1.2. 配置二次开发目录
将config/compatible.php复制到config/production/compatible.php并且修改配置
//二次开发目录设置,`custom`可以替换为自己的二次开发目录
//如果该配置已开启,并且有对应的目录,则表示已经开启二次开发目录
define('CUSTOM_CORE_DIR', ROOT_DIR.'/custom');
新建目录custom,需要和app目录同级
drwxr-xr-x 38 www www 1292 8 5 22:21 app
drwxr-xr-x 7 www www 238 8 24 19:38 bootstrap
drwxrwxrwx 33 www www 1122 8 24 12:00 config
drwxr-xr-x 3 www www 102 8 25 13:57 custom //和app目录同级
1.3. 自定义路由
注意 首先必须设置二次开发目录
路由的使用可以参见:路由使用说明文档
默认的路由文件为bootstrap/routes.php. 在二次开发时可以创建bootstrap/custom_routes.php, 这时系统将不再加载bootstrap/routes.php文件.
因此可以用两种方式进行二次开发
当对路由修改较少的情况
在bootstrp/custom_routes.php中includebootstrap/routes.php, 然后遵循路由的规则进行增量添加就可以了
当对路由进行很大规模的调整
完整的copy bootstrp/routes.php内容到bootstrp/custom_routes.php, 然后在此基础上进行修改
//...
//自定义页面路由
route::group(array(), function(){
route::get('custom-act.html', [ 'uses' => 'topc_ctl_act@index' ]);
});
/*
|--------------------------------------------------------------------------
| 文章相关
|--------------------------------------------------------------------------
*/
route::group(array(), function() {
route::get('content-index.html', [ 'uses' => 'topc_ctl_content@index' ]);
route::get('content-info.html', [ 'uses' => 'topc_ctl_content@getContentInfo' ]);
});
//...
1.4. 自定义控制器
新增控制器文件coutom/controller/act.php
控制器名称根据路由的配置
/**
* ShopEx licence
*
* @copyright Copyright (c) - ShopEx Technologies Inc. ()
* @license / ShopEx License
*/
class topc_ctl_act extends topc_controller {
public function __construct(&$app)
{
parent::__construct();
}
public function index()
{
return $this->page('topc/act/index.html', $pagedata);
}
}
1.5. 自定义视图
新增自定义页面文件custom/topc/view/act/index.html
自定义页面内容
1.6. 模板开发注意事项
注意 当对模板进行二次开发时, 禁止在系统自带的默认模板上进行开发,需要新建模板文件夹开发, 因为补丁包中会有默认模板的升级内容. 如果在默认模板上进行升级, 当更新补丁的时候会导致覆盖您的开发内容,导致问题发生.