Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Silverstripe在安全登录页面中获取值_Php_Silverstripe - Fatal编程技术网

Php Silverstripe在安全登录页面中获取值

Php Silverstripe在安全登录页面中获取值,php,silverstripe,Php,Silverstripe,我正在使用SS3.02,并对核心文件进行了大量修改。我面临的问题是,我正在尝试动态设置导航背景的颜色。这适用于安全/登录页面以外的页面。假设我得到$navbgcolor的值,它在主页、关于我们的页面或任何其他页面上都会很好地显示出来。但这不会显示在安全/登录页面上。任何帮助都将不胜感激。谢谢 首先,更改核心文件从来都不是一个好主意,因为这会妨碍您轻松更新SilverStripe的版本。您可能会错过错误修复和重要的安全更新 这在登录页面上不起作用的原因是登录页面是从安全控制器工作的,安全控制器直接

我正在使用SS3.02,并对核心文件进行了大量修改。我面临的问题是,我正在尝试动态设置导航背景的颜色。这适用于安全/登录页面以外的页面。假设我得到$navbgcolor的值,它在主页、关于我们的页面或任何其他页面上都会很好地显示出来。但这不会显示在安全/登录页面上。任何帮助都将不胜感激。谢谢

首先,更改核心文件从来都不是一个好主意,因为这会妨碍您轻松更新SilverStripe的版本。您可能会错过错误修复和重要的安全更新

这在登录页面上不起作用的原因是登录页面是从安全控制器工作的,安全控制器直接扩展控制器。您的代码(可能在Page_Controller中)将被完全绕过

以下是一种将代码应用于所有控制器的方法,无需触及核心:

<?php

class MyControllerExtension extends Extension {

    public function onAfterInit() {
        //... Your code here...
    }

}
如果您正在使用YAML(推荐)


您可以在此处了解有关扩展的更多信息:

首先,更改核心文件从来都不是一个好主意,因为这样会妨碍您轻松更新SilverStripe的版本。您可能会错过错误修复和重要的安全更新

这在登录页面上不起作用的原因是登录页面是从安全控制器工作的,安全控制器直接扩展控制器。您的代码(可能在Page_Controller中)将被完全绕过

以下是一种将代码应用于所有控制器的方法,无需触及核心:

<?php

class MyControllerExtension extends Extension {

    public function onAfterInit() {
        //... Your code here...
    }

}
如果您正在使用YAML(推荐)


您可以在此处了解有关扩展的更多信息:

另外,为了让您知道,您可以通过创建操作子模板为安全登录页面创建特定的模板文件。例如,如果您在主题中创建了一个名为“Security_login.ss”的文件,您可以调用变量、更改标记等

注意,这里的约定是文件名在本例中称为类的名称“Security”,然后是“u”,后面是要由控制器呈现的操作的名称(在本例中为“login”)

正如Michania1所提到的,在SilverStripe开发的黄金法则是

“不要攻击核心或模块!”


正如前面所指出的,使用扩展来修饰类,或者在必要时使用子类。

另外,为了让您知道,您可以通过创建操作子模板为安全登录页面创建特定的模板文件。例如,如果您在主题中创建了一个名为“Security_login.ss”的文件,您可以调用变量、更改标记等

注意,这里的约定是文件名在本例中称为类的名称“Security”,然后是“u”,后面是要由控制器呈现的操作的名称(在本例中为“login”)

正如Michania1所提到的,在SilverStripe开发的黄金法则是

“不要攻击核心或模块!”


正如前面指出的那样,使用扩展来修饰类,或者在必要时使用子类。

navbgcolor从何而来?模型控制器?你能添加一些代码吗?还有,为什么要修改核心文件?$NAVBGCLOR来自控制器。正如我已经提到的,除了安全/登录页面之外,我在其他页面中获得的值都很好。。什么控制器?从下面的答案中可以看出,这一点很重要,因为安全性不是您的平均页面控制器。
$navbgcolor
来自哪里?模型控制器?你能添加一些代码吗?还有,为什么要修改核心文件?$NAVBGCLOR来自控制器。正如我已经提到的,除了安全/登录页面之外,我在其他页面中获得的值都很好。。什么控制器?从下面的答案中可以看出,这一点很重要,因为安全性不是你的平均页面控制器……完全同意——不要弄乱核心。你正在为将来的升级制造麻烦。完全同意-不要弄乱核心。您正在为将来的升级制造麻烦。
Controller:
  extensions: 
    - 'MyControllerExtension'