silverstripe-australia/silverstripe-multisites

该软件包已被废弃且不再维护。作者建议使用 symbiote/silverstripe-multisites 软件包。
关于该软件包最新版本(5.2.6)没有可用的许可证信息。

允许通过单个站点树管理多个网站。

安装次数: 11,898

依赖关系: 0

建议者: 0

安全: 0

星标: 12

关注者: 5

分支: 28

类型:silverstripe-vendormodule


README

Build Status

概览

允许通过单个站点树管理多个网站。

这是Subsites模块的替代模块;它避免了任何对“当前”网站的会话跟踪,并且在运行时不会执行任何查询修改以更改您执行的查询的“站点”上下文。

与SilverStripe 4.0.x兼容

  • 请参阅4.0.x以了解3.5兼容性
  • 请参阅1.2.x版本以了解3.1兼容性

升级到SS4

以下重要更改已发生

  • 现在必须在项目配置中明确配置主题。在yml配置中设置Site.available_themes。这必须是一个themename: 标签的映射。
  • 由于对资产管理的基本改变,目前不支持特定于站点的资产文件夹。这将在一段时间内进行审查。

要求

安装

  • 添加模块和多值字段模块
  • 运行dev/build

设置站点(以及附加站点)

  • 在CMS中转到页面部分并点击网站
  • 在“主机”字段中输入站点的完整路径,无需http://前缀 - 例如,对于开发站点mysitedomain.comlocalhost/sub/folder
  • 保存
  • 要添加新站点,请点击页面部分;您应该有一个“添加网站”按钮
  • 输入有关新站点的详细信息,其中“主机”字段最为重要

配置

Site:
  available_themes:
    name: Label

要支持级联主题,在配置中提供以逗号分隔的主题名称列表。

资产管理

注意:由于对资产管理层的改变,当前在SS4中不工作。一旦情况明朗,此功能将被重新启用。

您可以选择在每个站点的根assets/目录的子文件夹中管理每个站点的资产。在您的mysite/config.yml文件中添加以下扩展并运行?flush=1。在CMS中编辑站点时,现在可以选择包含该站点所有资产的assets/子文件夹。当保存站点或在cms中访问具有上传字段的页面时,将自动创建此文件夹。

FileField:
  extensions:
    - MultisitesFileFieldExtension

HtmlEditorField_Toolbar:
  extensions:
    - MultisitesHtmlEditorField_ToolbarExtension

通过HTMLEditor上传的文件现在将上传到assets/yoursite/Uploads。但是,如果您在cms中具有自定义上传字段,则必须明确添加以下配置到它们中。

$fields->fieldByName('Root.Main.Image')->setFolderName('images/page-images')->useMultisitesFolder();

上述调用 useMultisitesFolder() 将会改变文件夹名称从 'images/page-images' 到 'currentsitesubfolder/images/page-images'。

已知问题

当链接到属于不同站点的页面时,SiteTree::Link() 会返回一个无效链接,因为它会在前面添加基础 URL。目前解决这个问题最好的方法是,在你的 Page.php(模型类)中实现以下代码。

/**
 * Overrides SiteTree->Link. Adds a check for cases where we are linking to a
   page on a
 * different site in this multisites instance.
 * @return String
 **/
public function Link($action = null) {
	if($this->SiteID && $this->SiteID == Multisites::inst()->getCurrentSiteId()) {
		return parent::Link($action);
	} else {
		return $this->RelativeLink($action);
	}
}