在Concrete5.6.2中重写核心登录控制器


Overriding Core Login controller in Concrete5.6.2

我想在Concrete5最新版本中重写核心登录控制器,而无需编辑核心文件。因为我想在登录控制器的do_login方法中添加额外的功能。我试过了。但这行不通。我已经复制了具体/core/controllers/singlepages/login.php到controllers/login.php中,我在controllers/login.php中添加了一行如下

defined('C5_EXECUTE') or die("Access Denied.");
Loader::library('authentication/open_id');
class LoginController extends Concrete5_Controller_Login { 
}
class Concrete5_Controller_Login extends Controller { 
....
.....
}

你应该只重写Concrete5_Controller_Login,而不是Controller的基类。

defined('C5_EXECUTE') or die("Access Denied.");
Loader::library('authentication/open_id');
class LoginController extends Concrete5_Controller_Login { 
....
.....
}

因此,将您的功能代码从第二个类移到第一个类中,然后从文件中删除第二个类声明。