javascript - 自动更新 URL 段的最简单方法是什么?

标签 javascript php silverstripe

这个问题是关于更改 Page Title 字段值时的 URL 更新功能。该行为被编码到 CMSMain.EditForm.js 中。

enter image description here

我正在对 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/

相关文章:

javascript - 在 Google 地球插件中绘制动画线

php - 访客客户检查 Woocommerce 订单账单电子邮件时可享受首单折扣

silverstripe - 在 SilverStripe 中覆盖丢失的密码表单

SilverStripe 3.1 ListboxField 将数组保存到数据库

javascript - 寻找 Actor JS

javascript - 将 List<string> 插入 javascript 中的字典值

JavaScript 性能问题

PHP/MySQL 处理每行属性发生变化的 XML 数组

java - php 和 java 中需要相同的字符串比较函数

银条 3 : ModelAdmin with DataObject with $has_many to DataObject gives error