【问题标题】:Silverstripe 3: Redirecting in cms edit pageSilverstripe 3:在 cms 编辑页面中重定向
【发布时间】: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


【解决方案1】:

通过修复代码解决。

$this->redirect('event-no-longer-available/');

不是必需的。在我的另一个问题Can I set a custom error page in silverstripe for certain page types? 中可以看到替代方案,通过这样做它停止了重定向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多