0
嘿...我怎么能覆盖$布局变量。我想添加一些逻辑,所以如果用户登录它显示内容X,如果不是内容Y.我试着在Page.php中定义布局函数,但它不起作用。谢谢。
嘿...我怎么能覆盖$布局变量。我想添加一些逻辑,所以如果用户登录它显示内容X,如果不是内容Y.我试着在Page.php中定义布局函数,但它不起作用。谢谢。
我不认为你真的想覆盖$布局函数...这是用来包含一个适当的模板页面type.e.g.如果您的页面类型为NewsPage类名,则SilverStripe会在模板/ Includes目录中检查NewsPage.ss文件。如果不存在,那么它将使用该目录中的Page.ss文件以及templates目录(具有$ Layout变量)根目录中的Page.ss。请参阅SilverStripe Templates。
如果你想显示不同的内容,那么一种方法是覆盖内容变量。
function index($request) {
if(Member::currentUserID()) {
return array(
'Content' => '<p>My custom content</p>'
);
} else {
return array();
}
}
另一种方法是做到这一点的模板本身是这样的::
<% if CurrentMember %>
<p>Logged in</p>
<% else %>
<p>No logged in</p>
<% end_if %>
你可以通过重写,像这样的指数()函数(它添加到您的控制器)做到这一点