在SilverStripe中自定义导航菜单

时间:2009-06-29 20:39:04

标签: php content-management-system silverstripe

我在SilverStripe论坛上问了这个问题,但一天都没有听到。 http://silverstripe.org/customising-the-cms/show/263604#post263604

我正在将基于静态PHP的站点+ Wordpress迁移到SilverStripe。

在静态页面中,我们自定义标题本身。我们有两种类型的登录。客户和关联公司。

在今天的静态网站中,我们会这样做:

<? require("_header_top.html"); ?> 
<? if (isset($display_affiliate_link) && $display_affiliate_link == true) { 
require("_header_middle_affiliate.html"); 
} else { 
require("_header_middle.html"); 
} ?> 
<? require("_header_bottom.html"); ?> 

这是联盟会员和客户部分之间导航菜单的唯一区别。

我尝试了不同的布局路径。但我不喜欢它,因为除了这个布局外,布局看起来都是99%。

我尝试了以下hack,它有效,但我完全不喜欢它。

<% if MenuTitle = Affiliate %> 
<a href="/affiliate_login>affiliate login</a> 
<% end_if %> 
<a href="/subscriber_login>subscriber login</a> 

有关如何更优雅地实现这一目标或更好地推荐实现此方法的任何建议?

维克拉姆

1 个答案:

答案 0 :(得分:1)

我不明白你做了什么有什么问题...... 其他解决方法是:

  • 为您的SiteTree页面对象添加“类型”属性,以便将客户和关联企业分开。
  • 在SiteTree对象的控制器内部,您可以使用“customize”函数接收数组或对象,并调用“renderWith”函数,该函数也可在控制器内部使用模板文件呈现数组/对象(.SS文件)。这样,您的客户和联盟会员的布局将在不同的.SS文件中分开。