这个问题是关于更改 Page
Title
字段值时的 URL 更新功能。该行为被编码到 CMSMain.EditForm.js 中。
我正在对 CMS 进行精简和定制,以供绝对基本的计算机用户或粗心大意的客户使用,他们很可能会在页面名称更改时跳过按更新 URL 按钮。在这些情况下,如果 URLSegment
能够自动更新,将会非常方便。
问:自动更新 URL 段的最简单方法是什么,IE 模拟结果点击“更新 URL”按钮时出现的结果,之后更改 Title
字段?
最佳答案
您可以对 SiteTree 进行扩展,并像这样包含函数 onBeforeWrite。如果他们更新标题而不是 URL,这将进行更改:
class AutoURLSync extends Extension {
public function onBeforeWrite() {
// If Title is changed, but URLSegment is not,
// then update the URLSegment here
if($this->owner->isChanged('Title',2) && !$this->owner->isChanged('URLSegment',2)) {
$this->owner->URLSegment = $this->owner->generateURLSegment($this->owner->Title);
}
}
}
删除“if”意味着它总是会改变。
将此添加到 _config/config.yml
以链接扩展:
SiteTree:
extensions:
- AutoURLSync
关于javascript - 自动更新 URL 段的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38459162/