如何重写fecshop的appadmin登录界面部分功能

技术分享 · Terry · 于 5年前 发布 · 2742 次阅读

后台登录部分,是库包fecadmin,代码为:https://github.com/fecshop/yii2_fec_admin

fecshop对这个代码进行了重写,详细参看:

@fecshop/app/appadmin/config/modules/Fecadmin.php

'controllerMap' => [
            'login' => [
        		'class' => 'fecshop\app\appadmin\modules\Fecadmin\controllers\LoginController',
        	],

打开:fecshop\app\appadmin\modules\Fecadmin\controllers\LoginController ,即可看到代码内容,这里不粘贴了

本地如何重写?

1.重写view文件,layout文件

直接使用fecshop的多模板机制即可

打开本地模板文件路径:@appadmin/theme/local/theme01/ , 在里面新建相应的view文件即可, 如果重写layout文件,就在 ./layouts 下面新建相同名称的layout文件即可。

fecshop的多模板机制会有限加载本地模板路径的文件。

2.重写controller

后台登录部分的重写,借助于controllerMap来完成

打开配置文件 @appadmin/config/fecshop_local_modules/Fecadmin.php

fecadmin 数组中添加

		'controllerMap' => [
            'login' => [
        		'class' => 'appadmin\local\local_modules\fecadmin\controllers\LoginController',
        	],
        ],

然后新建文件@appadmin\local\local_modules\fecadmin\controllers\LoginController.php

<?php
/**
 * FecShop file.
 *
 * @link http://www.fecshop.com/
 * @copyright Copyright (c) 2016 FecShop Software LLC
 * @license http://www.fecshop.com/license/
 */
namespace appadmin\local\local_modules\fecadmin\controllers;


use Yii;
use yii\helpers\Url;
use fecshop\app\appadmin\modules\AppadminController;
use fecshop\app\appadmin\modules\Fecadmin\controllers\LoginController as FecLoginController;
/**
 * @author Terry Zhao <2358269014@qq.com>
 * @since 1.0
 */
class LoginController extends FecLoginController
{
    public function init()
    {
        parent::init(); 
        Yii::$service->page->theme->layoutFile = 'my.php';
    }
    
    //public function actionIndex()
    //{
		//$this->layout = "my.php";
	//	echo 3;exit;
	//}
	
	
}

Yii::$service->page->theme->layoutFile = 'my.php'; ,代表更改layout文件 ,然后新建这个layout文件即可

共收到 5 条回复
coolhector#15年前 0 个赞

我尝试覆写 appadmin 的 views 中的 Footer, 在appadmin theme 中 加入 Footer,并不生效,看了下代码 应该覆写的 是 dashboard.php 这个文件,在 appadmin 的 theme 中加入后,然后 将 源码中的 use fecadmin\views\layouts\Footer; 更改为 use appadmin\theme\local\theme01\layouts\Footer; 报错。问题应该是我 引用的本地的路径不对,请问 如何正确引用该 Footer ?

Fecmall#25年前 0 个赞

多看源码,自己研究吧

3楼 已删除.
4楼 已删除.

@coolhector #1楼 你的问题解决了吗,我也遇到了,我要改的是Header,也是出错

我的问题解决了,是根据这个贴子搞定的,http://www.fecshop.com/topic/1011

Fecmall#75年前 0 个赞

各位可能重写有点痛苦

如果你不想升级了,直接在vendor/fancyecommerce/fecshop , 下面修改源代码也是可以的,不过一定不要更改fecshop的版本号进行升级,否则将会全部清空你的开发代码。

为了保险,你在开发过程中想要安装新的composer包,请先备份在安装,以免造成问题

一般都有git版本控制,代码在版本库里面有备份。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics