Silverstripe::多站点树

Silverstripe::多站点树,silverstripe,Silverstripe,我们正在重新构建我们的网站。我们有很多页面(很多)跨越5个层次。我们新的用户体验设计师正试图解决这个问题。作为这项工作的一部分,她建议对页面/内容进行重组(重组至少需要6周时间)。该组织承担不起将现场冻结6周的费用。所以我的问题是 是否有任何简单的方法可以在不影响生产现场的情况下修改现场结构…如何处理 我们是否可以创建现有sitetree的副本(即有多个sitetree,一个处于活动状态,另一个处于草稿状态)并在那里进行更改?一旦我们准备好了,我们可以切换吗?(只是一个想法) 请给我一些想法 干

我们正在重新构建我们的网站。我们有很多页面(很多)跨越5个层次。我们新的用户体验设计师正试图解决这个问题。作为这项工作的一部分,她建议对页面/内容进行重组(重组至少需要6周时间)。该组织承担不起将现场冻结6周的费用。所以我的问题是

  • 是否有任何简单的方法可以在不影响生产现场的情况下修改现场结构…如何处理
  • 我们是否可以创建现有sitetree的副本(即有多个sitetree,一个处于活动状态,另一个处于草稿状态)并在那里进行更改?一旦我们准备好了,我们可以切换吗?(只是一个想法)
  • 请给我一些想法
  • 干杯 RD

    1)“重组过程”是否会涉及编码工作?为什么不将数据库和代码复制到另一个主机实例(比如staging.yourdomain.com)并在那里进行增强呢?(此处的任何更改都不会影响当前站点)

    实际上,在大多数开发环境中,通常至少有两个版本的站点在运行,其中一个用于测试/暂存站点,另一个用于 更改在上线前由客户批准

    创建许多未使用的页面或在网络上播放不是一个好的做法 生产现场

    2) 是否希望在生产实例上有两个站点树副本?好的,你可以使用silverstripe copybutton模块来完成,它会制作一个页面的精确副本

    但这不是一件好事。您需要在以后删除很多内容,并且您的数据库可能会增长,因为站点树是一个版本化对象,它将记住以前的修订。此外,如果还需要一些编码工作,您不能在生产站点上真正进行编码,因为这会影响访问者可见的页面

    但是,如果更改仅与页面内容相关,并且您无法拥有单独的站点实例,则可以使用“复制模块”复制页面并在复制的版本中进行更改,然后用新版本替换旧版本

    这不是推荐的方法,你必须非常小心。如果您硬删除任何依赖项,如一个页面使用的另一个对象或图像,它也将从原始版本中删除,因为目标对象不再存在

    3) 请参见上文

    1)在SilverStripe中移动页面不会影响生产站点,假设您这样说是指“实时”站点

    2) 当您在SilverStripe中移动页面时,它将被视为一个“草稿”更改,在获得批准和发布之前不会在“实时”网站上生效。因此,基本上SilverStripe已经按照您希望/需要的方式工作,因为SilverStripe中的“活动”和“草稿”状态已经类似于两个不同的sitetrees。不过,还有一些其他的事情要考虑。如果您在此过程中还需要/希望更改内容,则在保存和发布内容更改时,页面重组将生效。如果你做了一个完整的重组,你可以通过批量操作让一切都活下来

    3) SilverStripe Australia为集成和内容迁移构建了外部内容模块和后续连接器。有一个SilverStripe到SilverStripe的连接器,可以将另一个实例连接到当前系统,并在新系统的管理界面中表示它的sitetree。然后,您可以有选择地将站点移动到新系统中的新结构中