2009-06-29 119 views
1

我在SilverStripe论坛中问过这个问题,但一天没有听说过。 http://silverstripe.org/customising-the-cms/show/263604#post263604在SilverStripe中自定义导航菜单

我正在将基于静态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%一样。

我尝试了以下黑客行为,但是我不喜欢它。

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

任何关于如何实现这个更优雅或更好的推荐方式来实现这一点的建议?

维克拉姆

回答

1

我不明白什么是错的,你做了什么...... 其他解决方法是:

  • 添加一个“类型”属性为您SiteTree页面对象,以客户和会员之间分开。
  • 在SiteTree对象的控制器内部,您可以使用接收数组或对象的“自定义”函数,并通过调用控制器内可用的“renderWith”函数来使用模板文件呈现数组/对象(.SS文件)。这样,您的客户和会员的布局将以不同的.SS文件分隔。