如何在Silverstripe 3中的指定日期取消发布页面?

时间:2019-04-07 22:39:02

标签: silverstripe

我希望将页面设置为在Silverstripe 3上的指定日期自动取消发布。

我在网上看到了多种解决方案,主要是使用某些模块,但是这些模块都不与silverstripe 3兼容,许多模块说它们现在已经被废弃,如果不这样做,我在作曲家中会遇到以下错误< / p>

[InvalidArgumentException]                                                                                                        
  Could not find a matching version of package xxxxxxxx. Check the package spelling, your version constr  
  aint and that the package is available in a stability which matches your minimum-stability (dev).

有人对Silverstripe 3有完整的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找的最有可能是禁运模块(https://github.com/silverstripe-terraformers/silverstripe-embargo-expiry)。与计划的作业的queuedjobs模块(https://github.com/symbiote/silverstripe-queuedjobs)结合使用,可以计划数据对象(例如页面)的发布和取消发布。

您可以通过以下方式安装模块:

composer require silverstripe-terraformers/embargo-expiry symbiote/silverstripe-queuedjobs

并将配置添加到SiteTree:

SiteTree:
  extensions:
    - SilverStripe\Versioned\Versioned
    - Terraformers\EmbargoExpiry\Extension\EmbargoExpiryExtension

随后运行dev / build,您应该可以在CMS中设置日期。

在生产环境中,您需要确保配置类似于以下内容的cronjob:

*/1 * * * * php /path/to/silverstripe-project/framework/cli-script.php dev/tasks/ProcessJobQueueTask

对于本地测试,您应该可以运行:

php ./framework/cli-script.php dev/tasks/ProcessJobQueueTask

通过上述步骤,您应该可以在SilverStripe 3.x中设置页面到期。

干杯, 彼得