为什么在银条上使用$LinkingMode?银条的$LinkingMode一次只能有一个值,而它可以同时是一个截面和一个电流,也可以是链接和分段?
发布于 2016-03-23 16:00:49
这是答案和银条专家(wmk,3 3dgo,greg,munomono等)如果我错了,请纠正我。$LinkingMode用于样式设计,请注意示例中的内容。另外,由于$LinkingMode连接到单个菜单和菜单级别(即菜单(1)、菜单(2)...etc),因此只能有一种状态。因此,如果您想设置其他菜单级别的样式,那么在该级别上为该菜单分配一个class=$LinkingMode。Silverstripe是一个比Laravel (目前最流行的)更好的PHP框架,但缺乏文档化。
发布于 2016-04-02 12:16:43
为了对Jonh的答案做一些扩展,LinkingMode是一个公开在从SiteTree继承的所有对象上的函数。正如您在使用它时可能已经注意到的,您有值" current“(如果此对象与当前正在执行的页面相同)、”节“(如果该页是当前执行页的祖先)或"link”(用于其他任何内容)。
虽然Greg在注释中提到的是正确的,但是您确实看到了模板中常用的帮助样式菜单的方法,您可以在代码中的任何地方使用它,而不仅仅是模板。
LinkingMode由SiteTree对象上的另外两个函数isCurrent()和isSection()支持。正如它们的名称所暗示的,您可以直接使用它们来查找与当前执行页面相关的SiteTree对象的状态。
在编写此答案时,这是LinkingMode背后的代码(Silverstripe3.3):
public function LinkingMode() {
if($this->isCurrent()) {
return 'current';
} elseif($this->isSection()) {
return 'section';
} else {
return 'link';
}
}https://stackoverflow.com/questions/36171857
复制相似问题