Fal*_*ude 6 javascript php silverstripe
此问题与更改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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
删除"if"意味着它总是被改变.
将其添加_config/config.yml到链接扩展名:
SiteTree:
extensions:
- AutoURLSync
Run Code Online (Sandbox Code Playgroud)