我希望将页面设置为在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有完整的解决方案吗?
答案 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中设置页面到期。
干杯, 彼得