我需要在我的silverstripe网站合并新闻和公告,新闻和公告都有完全相同的结构,他们都使用https://github.com/nyeholt/silverstripe-news。在html模板中,我有两个部分,一个用于新闻,另一个用于公告。
什么是正确的方法来实现这个:
- 我是否应该复制并通过/news模块文件夹,并使用一个用于新闻,另一个用于公告。
- 或者添加另一个db字段作为标志来指定这是一篇新闻文章还是一篇公告文章,但是在cms中,用户每次都必须检查这个。
- 或者还有什么,我不知道
复制文件夹不会得到您期望的结果,除非您重命名新文件夹中的所有类。
基本上文件夹只是一个存放类的地方,而不是当你请求一篇新闻文章时才会访问的东西,你会使用SilverStripes路由。
静态资源是从模块文件夹中加载的。
向扩展添加新行为的最佳方法是使用DataExtension。
见https://docs.silverstripe.org/en/3.4/developer_guides/extending/extensions/
另一种方法是如果模块使用站点树放置"新闻持有人"。然后你还可以选择创建两个名称不同的持有人,如果你想显示一个特定父级的列表,只需要使用与正确持有人相关的parentId过滤器。
第三种选择是在mysite下添加一个新类,扩展模块的类并只覆盖一些方法来满足您的需求。