Silverstripe 中的 $LinkingMode 值
$LinkingMode Values in Silverstripe
为什么在 Silverstripe 中使用 $LinkingMode? Silverstripe 的 $LinkingMode 怎么能一次只有一个值,它可以同时是一个部分和当前,或者 link 和部分?
答案在这里,Silverstripe 专家(wmk、3dgo、greg、munomono 等)在这里,如果我错了,请纠正我。 $LinkingMode 用于样式,请注意示例。此外,$LinkingMode 只能有一个状态,因为它连接到单个菜单和菜单级别(即 menu(1)、menu(2)...等)。因此,如果您想设置其他菜单级别的样式,请将 class=$LinkingMode 分配给该级别中的该菜单。 Silverstripe CMS 是一个很棒的 PHP 框架,比 Laravel(目前最流行的)更好,但缺少它的文档。
进一步扩展 Jonh 的回答,LinkingMode
is a function exposed on all objects inherited from SiteTree
。正如您在使用它时可能已经注意到的那样,您具有值 "current"(如果此对象与当前正在执行的页面相同),"section"(如果该页面是当前正在执行的页面的祖先)或 "link"(对于其他任何内容)。
虽然 Greg 在评论中提到的是真实的,但您确实看到模板中经常使用它来帮助设置菜单样式,您可以在代码中的任何地方使用它,而不仅仅是模板。
LinkingMode
由 SiteTree
对象 isCurrent()
and isSection()
上的另外两个函数支持。顾名思义,您可以直接使用它们来找出 SiteTree
对象相对于当前执行页面的状态。
在撰写此答案时,这是 LinkingMode
(Silverstripe 3.3) 背后的代码:
public function LinkingMode() {
if($this->isCurrent()) {
return 'current';
} elseif($this->isSection()) {
return 'section';
} else {
return 'link';
}
}
为什么在 Silverstripe 中使用 $LinkingMode? Silverstripe 的 $LinkingMode 怎么能一次只有一个值,它可以同时是一个部分和当前,或者 link 和部分?
答案在这里,Silverstripe 专家(wmk、3dgo、greg、munomono 等)在这里,如果我错了,请纠正我。 $LinkingMode 用于样式,请注意示例。此外,$LinkingMode 只能有一个状态,因为它连接到单个菜单和菜单级别(即 menu(1)、menu(2)...等)。因此,如果您想设置其他菜单级别的样式,请将 class=$LinkingMode 分配给该级别中的该菜单。 Silverstripe CMS 是一个很棒的 PHP 框架,比 Laravel(目前最流行的)更好,但缺少它的文档。
进一步扩展 Jonh 的回答,LinkingMode
is a function exposed on all objects inherited from SiteTree
。正如您在使用它时可能已经注意到的那样,您具有值 "current"(如果此对象与当前正在执行的页面相同),"section"(如果该页面是当前正在执行的页面的祖先)或 "link"(对于其他任何内容)。
虽然 Greg 在评论中提到的是真实的,但您确实看到模板中经常使用它来帮助设置菜单样式,您可以在代码中的任何地方使用它,而不仅仅是模板。
LinkingMode
由 SiteTree
对象 isCurrent()
and isSection()
上的另外两个函数支持。顾名思义,您可以直接使用它们来找出 SiteTree
对象相对于当前执行页面的状态。
在撰写此答案时,这是 LinkingMode
(Silverstripe 3.3) 背后的代码:
public function LinkingMode() {
if($this->isCurrent()) {
return 'current';
} elseif($this->isSection()) {
return 'section';
} else {
return 'link';
}
}