【发布时间】:2019-09-02 15:46:24
【问题描述】:
我在 silverstripe 3 网站上设置了页面重定向。例如。当事件超过其日期时,该页面未发布并且用户重定向到主要事件页面。 - 这是在 init 函数中完成的
public function init()
{
parent::init();
if ($this->ExpiryDate) {
$expiryDate = strtotime($this->ExpiryDate);
$currentDate = strtotime("now");
if ($expiryDate < $currentDate) {
$this->doUnpublish();
$this->redirect('event-no-longer-available/');
}
}
}
但是,当我去编辑 cms 中未发布的页面时,页面仍然被重定向,因此我无法访问该页面进行编辑。
我想在以后更新活动页面并更改详细信息和到期日期,例如.. 当以后再次发生相同的事件时,只需编辑然后重新发布旧页面,而不是创建一个全新的页面.
有没有一种方法可以设置这个页面,以便页面将在网站上重定向,但在我尝试在 cms 中编辑它时不会??
【问题讨论】:
-
该 init() 函数是来自 SiteTree 子类还是控制器?您可以尝试将它放在您的控制器中(我假设它不在控制器中),这不会影响 CMS。请注意,如果您在 CMS 中进行预览,它仍然会这样做,因此您可能还需要添加一些“是 CMS 预览”逻辑以及相关的权限检查
-
@RobbieAverill 是的,那已经在控制器中了。没想到要检查,但是是的
标签: php redirect content-management-system silverstripe