Silverstripe,将来在特定日期之后隐藏页面

时间:2014-06-10 23:30:21

标签: php datepicker content-management-system admin silverstripe

我希望在某个过期日期创建某种页面(尝试从silverstripe文档中应用日期选择器并不能与我合作)。 那个日期应该在将来,那个日期,我想要隐藏这篇文章。

2 个答案:

答案 0 :(得分:1)

查看silverstripe/advancedworkflow模块 - 这支持禁运/有效期(以及其他事项)。

答案 1 :(得分:0)

这是一个使用CMS控制的ExpiryDate控制是否可以查看页面的简单实现。此解决方案适用于Silverstripe 3.1。

class Page extends SiteTree {

    private static $db = array(
        'ExpiryDate' => 'SS_Datetime'
    );

    public function canView($member = null) {
        if ($this->ExpiryDate) {
            if ($this->obj('ExpiryDate')->InPast()) {
                return false;
            }
        }
        return parent::canView($member);
    }

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Main', $expiryDateField = Datetimefield::create('ExpiryDate', 'Page Expiry Date'), 'Content');
        $expiryDateField->getDateField()->setConfig('showcalendar', true);
        $expiryDateField->getTimeField()->setConfig('timeformat', 'HH:mm:ss');


        return $fields;
    }
}