1. 二次开发

1.1. 介绍

在实际做项目中拿B2B2C进行二次开发的时候, 通常不希望在标准的产品上进行修改. 因为这样会导致标准产品的补丁包无法升级.

目前系统提供了配置二开目录的方式, 可以在二次开发目录进行开发.虽然此方法仍然无法保证一定可以无缝升级.

注意 此步骤是以下所有二次开发方式的前置条件

1.2. 配置二次开发目录

config/compatible.php复制到config/production/compatible.php并且修改配置

<?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, 然后在此基础上进行修改
<?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 控制器名称根据路由的配置

<?php
/**
 * ShopEx licence
 *
 * @copyright  Copyright (c) 2005-2010 ShopEx Technologies Inc. (http://www.shopex.cn)
 * @license  http://ecos.shopex.cn/ 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

<div class="content" >
  自定义页面内容
</div>

1.6. 模板开发注意事项

注意 当对模板进行二次开发时, 禁止在系统自带的默认模板上进行开发,需要新建模板文件夹开发, 因为补丁包中会有默认模板的升级内容. 如果在默认模板上进行升级, 当更新补丁的时候会导致覆盖您的开发内容,导致问题发生.

results matching ""

    No results matching ""